2024.2.17发布任务
针对单机版本:
1、功能检测,对于功能检测出错的卡函也需要进行检测,但只记录第一次出错
2、对每一张卡函,如有功能检测出错的需要统计在主界面,关闭软件时需要存储。
3、添加登录界面,密码从文档中读取(防止任意操作员进入操作)
2024.2.17周六
将邮封机的代码拷下来并大致熟悉一下;在WindowMain.ui的右侧添加了表单控件和清空按钮,并在WindowMain.Cpp中的InitWindow()将表头设置好
2024.2.18周日
首先想法是功能检查的各个状态定义好,由于状态不只是一个项目需要,则在全局中定义,即在XwGlobar.h中定义了三个int状态(0为无异常,1为异常),并初始化为0;
然后在XwFuncCheck中device.cpp中的WorkWithInterface()函数修改、称重的device.cpp修改;在功能出错的时候判断,当为0时,则+1,将该状态置为1,并继续向下执行,不跳出;
接着在WindowMain.Cpp中的UpdateStatus()将当前卡的id、功能状态值插入到表中;
接着在XwSmartSys项目中新建XwLogin在中间层copy出来并删除一下不需要的代码。
问题:
1.是否是将功能检查的各个状态值定义在XwGlobar,当前在用这些参数时编译器会不认识;
- 当前只在WorkWithInterface里修改,是因为前两个模式功能是单独的,不连续;是否要在4个模式都要修改;
- 在UpdateStatus()插入时没数据也会一直在插入;
- Copy过来之后在哪个地方调用该窗口。
2024.2.19周一
解决用状态值编译器不认识问题,需要在参数值前加XwGlobal_c::GetInstance()->;
也在WorkWithOutInterface做了同样修改;
需要功能状态值有一个为1的时候,才可以插入;
在XwMainThread_c::Init里的8.login中进行修改,并修改调用函数XwStartInit::XwLoginIn,从而完成了发布任务的第三项。(修改之前的注释在旁)
问题:
各个功能的状态值是否可以这样
if (XwGlobal_c::GetInstance()->_barCodeState == 0)
{
_pGlobal->_nValue[barCodeErrorCnt]++;
_reservedInt[RESERVE_RUN_BAD_CARD_NUM]++;
XwGlobal_c::GetInstance()->_barCodeState = 1;
}
当状态值为0;需要报错时就给它改为1;其他功能状态报错时同理;
- 调试条码和ats过程中总是在第二步workPStartLamp的if (nMode != WORK_STATION_C){break;}里面导致不能继续调试;
宇晚上指导
功能检查的三个状态值不能定义到XwGlobar,将状态值设置到XwCardData.h里的枚举变量ECardStates_e中,说了好几种任务解决方法都不懂,还是选用了刚开始最简单的方式。
2024.2.20周二
(PS:上午帮公司帮东西花了我一上午时间)
根据昨晚的指导修改完之后遇到问题,在WindowMain.cpp应该如何获取到当前卡的id和它的状态呢;于是从其他代码中查查看,查到
XwStartInit* startInit = XwStartInit::GetInstanceStartInit();
XwDataMatrix_c<XwCardData_c> * pDataMatrix = startInit->getDataMatrix();
for (int i = 0; i < pDataMatrix->GetMatrixWidth(); i++)
{
XwCardData_c* pData = pDataMatrix->At(i, 1);
通过pData 可以获取卡的各个状态
于是把这段代码移到了相应位置并稍加修改,看似没啥问题了;
运行后发现表格里的数据中卡的id重复的插入,
于是将插入过id记录下来,下次如果前面有这个id,就不能插入了;
接着就是需要退出的时候,表格中数据要保存下来,通过信号的方式试了试,发现没起作用
想了想还是添加个保存按钮更简单;
到这暂时功能好像都完成了;
问题:当前只有称重报错,条码和ats还不知行不行?
PS:突然想到可以在csdn可以方便记录,之前是用文档记录不方便