程式設計(放棄):
在記憶體頁0x0807e800設定flag
如果是0xff代表是新裝置沒有校準過--此後稱重模組任務掛起直到配置成功才走正常流程
如果是0x5a代表是舊裝置以及校準好--此後走正常流程
說明:人為恢復出廠設定會把flag清為0xff
程式設計(採納):
稱重任務一直走正常流程--當ble/net收到指令的時候跳到校準模式處理完畢在跳回來即可
無需flag 無需設計程式 只需要修改任務流程!
第一步:資料介面
藍芽bm77傳遞過來資料:
typedef struct
else
return urt;
} 第二步:流程處理
case scaleinit: scale.init(); break;
case scaleruning: scale.run(); break;
case scalecalib: scalecalibration(); break;
default: scale.abnormal(); break;
void scalecalibration(void)
else }
第三步:下發指令
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!
業務邏輯處理
功能的實現,都是依靠業務邏輯來完成的,記得看過不能完成業務邏輯的程式設計師都不會成長的,確實是的,最近在完成業務邏輯的時候,程式的業務判斷有很多的,所以開始接觸,設計模式,看到來一些設計模式,看結合專案,確實是可以根據設計模式來改寫的,so,懂得設計模式可以快速的,寫好的 的。關於函式同步和非同步之...
業務邏輯漏洞
業務邏輯漏洞是一類特殊的安全漏洞,業務邏輯漏洞屬於設計漏洞而非實現漏洞,是業務邏輯設計不嚴謹導致的漏洞。大多數業務邏輯漏洞沒有明顯的攻擊特徵,難以通過漏洞掃瞄的方式發現,也難以通過安全裝置來防護。繞過驗證 主要指身份驗證體系設計存在缺陷,可以使用某些技術手段繞過驗證機制冒用他人身份。越權訪問 主要指...
業務邏輯設計
1.action設計 shfwpgdzlbdmanager.copy mannager裡面的相應方法 shfwpgdzlbd.getbdtpid 傳入的引數從哪獲取,型別應和mannager的方法需要的引數型別相同 2.manager設計 設計之前宣告物件 private shfwpgdzlbdda...