程序设计(放弃):
在内存页0X0807E800设置FLAG
如果是0XFF代表是新设备没有校准过--此后称重模块任务挂起直到配置成功才走正常流程
如果是0X5A代表是旧设备以及校准好--此后走正常流程
说明:人为恢复出厂设置会把FLAG清为0XFF
程序设计(采纳):
称重任务一直走正常流程--当BLE/net收到指令的时候跳到校准模式处理完毕在跳回来即可
无需FLAG 无需设计程序 只需要修改任务流程!
第一步:数据接口
蓝牙BM77传递过来数据:
typedef struct
{
uint8_t type;
uint8_t len;
uint8_t value[10];
}BleAppMsgTypeEasy;
W0000过来--执行0点校准
W3100过来--执行输入点长度为3重量是100g
说明:采用的是字符传输 不是十六进制 我需要自己算一算
不是十进制->十六进制 因为数据都是一样的 不用转化!
uint8_t BleDataProcess_easy(BleAppMsgType *msg)
{
BleAppMsgTypeEasy BleAppMsg;
uint8_t i;
uint32_t w=0;
memset(&BleAppMsg , 0x00 , sizeof(BleAppMsgTypeEasy));
memcpy(&BleAppMsg , msg->Data , sizeof(BleAppMsgTypeEasy));
BleAppMsg.len=G_strTobyte(BleAppMsg.len);
if(BleAppMsg.len==0)
{
Set_inputweight(0);
Scale.SetStatus(ScaleCalib);
btModule.send(NULL ,"ZERO-OK",7);
BeepOpen(uRt);
}
else
{
for(i=0;i<BleAppMsg.len;i++)
BleAppMsg.value[i]=G_strTobyte(BleAppMsg.value[i]);
for(i=0;i<BleAppMsg.len;i++)/*十进制我算出数据“100”->100*/
w+=BleAppMsg.value[i]* Power(10,BleAppMsg.len-1);
Set_inputweight(w);
Scale.SetStatus(ScaleCalib);
btModule.send(NULL ,"WEIG-OK",7);
}
return uRt;
}
第二步:流程处理
case ScaleInit: Scale.init(); break;
case ScaleRuning: Scale.run(); break;
case ScaleCalib: ScaleCalibration(); break;
default: Scale.abnormal(); break;
void ScaleCalibration(void)
{
if(Get_inputweight() == 0)
{
ScaleCalibZERO();
Scale.SetStatus(ScaleAbnormal);
}
else
{
ScaleCalib1250(inputweight);
Scale.SetStatus(ScaleInit);
}
}
第三步:下发指令
String2Bytes(Write1250g,tem,strlen((const char*)Write1250g),1);
tem[3] = (Get_inputweight()&0XFF000000)>>24;
tem[4] = (Get_inputweight()&0X00FF0000)>>16;
tem[5] = (Get_inputweight()&0X0000FF00)>>8;
tem[6] = (Get_inputweight()&0X000000FF)>>0;
G_print(tem,MAXCMDLEN,0);
back = usart_send_receive_repeat(tem,strlen((const char*)Write1250g)/2,100,1,&respone);
我在这里好像错误了很多次!!
tem[3] = Get_inputweight()&0XFF000000;
tem[4] = Get_inputweight()&0X00FF0000;
tem[5] = Get_inputweight()&0X0000FF00;
tem[6] = Get_inputweight()&0X000000FF;
随手写bug!
增加ABAC业务逻辑-称重模块校准
猜你喜欢
转载自blog.csdn.net/weixin_42381351/article/details/88813871
今日推荐
周排行