Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: hbCommand.cpp
- Revision:
- 32:7f4145cc3551
- Parent:
- 31:56c554c560c1
- Child:
- 33:eb260dbfc22a
--- a/hbCommand.cpp Wed Dec 19 12:22:22 2018 +0000 +++ b/hbCommand.cpp Thu Dec 20 11:38:09 2018 +0000 @@ -55,54 +55,46 @@ else if (strcmp(g_CmdBuf , "se2" )==0 ){gf_AxReq[1].bf.req=true; gf_AxReq[1].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} else if (strcmp(g_CmdBuf , "sep1" )==0 ){gf_AxReq[0].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} else if (strcmp(g_CmdBuf , "sep2" )==0 ){gf_AxReq[1].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} - else if (strcmp(g_CmdBuf , "sm1" )==0 ){gf_MtReq[0].bf.req=true; gf_MtReq[0].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} - else if (strcmp(g_CmdBuf , "sm2" )==0 ){gf_MtReq[1].bf.req=true; gf_MtReq[1].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} - else if (strcmp(g_CmdBuf , "sm3" )==0 ){gf_MtReq[2].bf.req=true; gf_MtReq[2].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} - else if (strcmp(g_CmdBuf , "sm4" )==0 ){gf_MtReq[3].bf.req=true; gf_MtReq[3].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} + else if (strcmp(g_CmdBuf , "sm1" )==0 ){gf_MtReq[0].req=true; gf_MtReq[0].val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} + else if (strcmp(g_CmdBuf , "sm2" )==0 ){gf_MtReq[1].req=true; gf_MtReq[1].val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} + else if (strcmp(g_CmdBuf , "sm3" )==0 ){gf_MtReq[2].req=true; gf_MtReq[2].val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} + else if (strcmp(g_CmdBuf , "sm4" )==0 ){gf_MtReq[3].req=true; gf_MtReq[3].val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} else if (strcmp(g_CmdBuf , "sm" )==0 ){ for(int i = 0; i < 4; ++i){ - gf_MtReq[i].bf.req=true; - gf_MtReq[i].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]); + gf_MtReq[i].req=true; + gf_MtReq[i].val=(UINT16)atoi(&g_CmdBuf[arg2pos]); } } else if (strcmp(g_CmdBuf , "smf" )==0 ){ - gf_MtReq[0].bf.req=true; - gf_MtReq[0].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]); - gf_MtReq[1].bf.req=true; - gf_MtReq[1].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} + gf_MtReq[0].req=true; + gf_MtReq[0].val=(UINT16)atoi(&g_CmdBuf[arg2pos]); + gf_MtReq[1].req=true; + gf_MtReq[1].val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} else if (strcmp(g_CmdBuf , "smr" )==0 ){ - gf_MtReq[2].bf.req=true; - gf_MtReq[2].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]); - gf_MtReq[3].bf.req=true; - gf_MtReq[3].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]); } - else if (strcmp(g_CmdBuf , "smo1" )==0 ){gf_MtReqOfs[0].bf.req=true; gf_MtReqOfs[0].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} - else if (strcmp(g_CmdBuf , "smo2" )==0 ){gf_MtReqOfs[1].bf.req=true; gf_MtReqOfs[1].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} - else if (strcmp(g_CmdBuf , "smo3" )==0 ){gf_MtReqOfs[2].bf.req=true; gf_MtReqOfs[2].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} - else if (strcmp(g_CmdBuf , "smo4" )==0 ){gf_MtReqOfs[3].bf.req=true; gf_MtReqOfs[3].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} + gf_MtReq[2].req=true; + gf_MtReq[2].val=(UINT16)atoi(&g_CmdBuf[arg2pos]); + gf_MtReq[3].req=true; + gf_MtReq[3].val=(UINT16)atoi(&g_CmdBuf[arg2pos]); } + else if (strcmp(g_CmdBuf , "smo1" )==0 ){gf_MtReqOfs[0].req=true; gf_MtReqOfs[0].val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} + else if (strcmp(g_CmdBuf , "smo2" )==0 ){gf_MtReqOfs[1].req=true; gf_MtReqOfs[1].val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} + else if (strcmp(g_CmdBuf , "smo3" )==0 ){gf_MtReqOfs[2].req=true; gf_MtReqOfs[2].val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} + else if (strcmp(g_CmdBuf , "smo4" )==0 ){gf_MtReqOfs[3].req=true; gf_MtReqOfs[3].val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} else if (strcmp(g_CmdBuf , "smo" )==0 ){ for(int i = 0; i < 4; ++i){ - gf_MtReqOfs[i].bf.req=true; - gf_MtReqOfs[i].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]); + gf_MtReqOfs[i].req=true; + gf_MtReqOfs[i].val=(UINT16)atoi(&g_CmdBuf[arg2pos]); } } else if (strcmp(g_CmdBuf , "smof" )==0 ){ - gf_MtReqOfs[0].bf.req=true; - gf_MtReqOfs[0].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]); - gf_MtReqOfs[1].bf.req=true; - gf_MtReqOfs[1].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} + gf_MtReqOfs[0].req=true; + gf_MtReqOfs[0].val=(UINT16)atoi(&g_CmdBuf[arg2pos]); + gf_MtReqOfs[1].req=true; + gf_MtReqOfs[1].val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} else if (strcmp(g_CmdBuf , "smor" )==0 ){ - gf_MtReqOfs[2].bf.req=true; - gf_MtReqOfs[2].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]); - gf_MtReqOfs[3].bf.req=true; - gf_MtReqOfs[3].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]); } - //else if (strcmp(g_CmdBuf , "smfpga1" )==0 ){gf_MtReqDct[0].bf.req=true; gf_MtReqDct[0].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} - //else if (strcmp(g_CmdBuf , "smfpga2" )==0 ){gf_MtReqDct[1].bf.req=true; gf_MtReqDct[1].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} - //else if (strcmp(g_CmdBuf , "smfpga3" )==0 ){gf_MtReqDct[2].bf.req=true; gf_MtReqDct[2].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} - //else if (strcmp(g_CmdBuf , "smfpga4" )==0 ){gf_MtReqDct[3].bf.req=true; gf_MtReqDct[3].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} - //else if (strcmp(g_CmdBuf , "smfpga5" )==0 ){gf_MtReqDct[4].bf.req=true; gf_MtReqDct[4].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} - //else if (strcmp(g_CmdBuf , "smfpga6" )==0 ){gf_MtReqDct[5].bf.req=true; gf_MtReqDct[5].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} - //else if (strcmp(g_CmdBuf , "smfpga7" )==0 ){gf_MtReqDct[6].bf.req=true; gf_MtReqDct[6].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} - //else if (strcmp(g_CmdBuf , "smfpga8" )==0 ){gf_MtReqDct[7].bf.req=true; gf_MtReqDct[7].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} + gf_MtReqOfs[2].req=true; + gf_MtReqOfs[2].val=(UINT16)atoi(&g_CmdBuf[arg2pos]); + gf_MtReqOfs[3].req=true; + gf_MtReqOfs[3].val=(UINT16)atoi(&g_CmdBuf[arg2pos]); } //キャリブレーション else if (strcmp(g_CmdBuf , "calyaw")==0 ){gf_Cal.bf.yaw=true;}// @@ -171,12 +163,7 @@ else if (strcmp(g_CmdBuf , "rmo2" )==0 ){gf_DbgPrint.bf.mo2=true;}//リードモーターオフセット2 else if (strcmp(g_CmdBuf , "rmo3" )==0 ){gf_DbgPrint.bf.mo3=true;}//リードモーターオフセット3 else if (strcmp(g_CmdBuf , "rmo4" )==0 ){gf_DbgPrint.bf.mo4=true;}//リードモーターオフセット4 - - // else if (strcmp(g_CmdBuf , "op1" )==0 ){gf_MtReqOP[0].req=true; gf_MtReqOP[0].add_end=false; gf_MtReqOP[0].counter = 0; gf_MtReqOP[0].num = atoi(&g_CmdBuf[arg2pos]);}//モーター1一時的噴射 - // else if (strcmp(g_CmdBuf , "op2" )==0 ){gf_MtReqOP[1].req=true; gf_MtReqOP[1].add_end=false; gf_MtReqOP[1].counter = 0; gf_MtReqOP[1].num = atoi(&g_CmdBuf[arg2pos]);}//モーター2一時的噴射 - // else if (strcmp(g_CmdBuf , "op3" )==0 ){gf_MtReqOP[2].req=true; gf_MtReqOP[2].add_end=false; gf_MtReqOP[2].counter = 0; gf_MtReqOP[2].num = atoi(&g_CmdBuf[arg2pos]);}//モーター3一時的噴射 - // else if (strcmp(g_CmdBuf , "op4" )==0 ){gf_MtReqOP[3].req=true; gf_MtReqOP[3].add_end=false; gf_MtReqOP[3].counter = 0; gf_MtReqOP[3].num = atoi(&g_CmdBuf[arg2pos]);}//モーター4一時的噴射 - + //何にも引っ掛からない else {sp.printf("command missmatch\r\n"); }; } else if(gf_State == SLEEP){ @@ -186,54 +173,54 @@ else if (strcmp(g_CmdBuf , "dbg" )==0 ){if(gf_Dbg != true) gf_Dbg = true;}//デバッグタスク起動 else if (strcmp(g_CmdBuf , "stat")==0 ){gf_Print.bf.stat=true;}//ステート表示 else if (strcmp(g_CmdBuf , "sstatf")==0 ){setStateF((enmHbState)atoi(&g_CmdBuf[arg2pos]));}//ステート強制遷移 - else if (strcmp(g_CmdBuf , "sm1" )==0 ){gf_MtReq[0].bf.req=true; gf_MtReq[0].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} - else if (strcmp(g_CmdBuf , "sm2" )==0 ){gf_MtReq[1].bf.req=true; gf_MtReq[1].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} - else if (strcmp(g_CmdBuf , "sm3" )==0 ){gf_MtReq[2].bf.req=true; gf_MtReq[2].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} - else if (strcmp(g_CmdBuf , "sm4" )==0 ){gf_MtReq[3].bf.req=true; gf_MtReq[3].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} + else if (strcmp(g_CmdBuf , "sm1" )==0 ){gf_MtReq[0].req=true; gf_MtReq[0].val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} + else if (strcmp(g_CmdBuf , "sm2" )==0 ){gf_MtReq[1].req=true; gf_MtReq[1].val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} + else if (strcmp(g_CmdBuf , "sm3" )==0 ){gf_MtReq[2].req=true; gf_MtReq[2].val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} + else if (strcmp(g_CmdBuf , "sm4" )==0 ){gf_MtReq[3].req=true; gf_MtReq[3].val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} else if (strcmp(g_CmdBuf , "sm" )==0 ){ for(int i = 0; i < 4; ++i){ - gf_MtReq[i].bf.req=true; - gf_MtReq[i].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]); + gf_MtReq[i].req=true; + gf_MtReq[i].val=(UINT16)atoi(&g_CmdBuf[arg2pos]); } } else if (strcmp(g_CmdBuf , "smf" )==0 ){ - gf_MtReq[0].bf.req=true; - gf_MtReq[0].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]); - gf_MtReq[1].bf.req=true; - gf_MtReq[1].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} + gf_MtReq[0].req=true; + gf_MtReq[0].val=(UINT16)atoi(&g_CmdBuf[arg2pos]); + gf_MtReq[1].req=true; + gf_MtReq[1].val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} else if (strcmp(g_CmdBuf , "smr" )==0 ){ - gf_MtReq[2].bf.req=true; - gf_MtReq[2].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]); - gf_MtReq[3].bf.req=true; - gf_MtReq[3].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]); } - else if (strcmp(g_CmdBuf , "smo1" )==0 ){gf_MtReqOfs[0].bf.req=true; gf_MtReqOfs[0].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} - else if (strcmp(g_CmdBuf , "smo2" )==0 ){gf_MtReqOfs[1].bf.req=true; gf_MtReqOfs[1].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} - else if (strcmp(g_CmdBuf , "smo3" )==0 ){gf_MtReqOfs[2].bf.req=true; gf_MtReqOfs[2].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} - else if (strcmp(g_CmdBuf , "smo4" )==0 ){gf_MtReqOfs[3].bf.req=true; gf_MtReqOfs[3].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} + gf_MtReq[2].req=true; + gf_MtReq[2].val=(UINT16)atoi(&g_CmdBuf[arg2pos]); + gf_MtReq[3].req=true; + gf_MtReq[3].val=(UINT16)atoi(&g_CmdBuf[arg2pos]); } + else if (strcmp(g_CmdBuf , "smo1" )==0 ){gf_MtReqOfs[0].req=true; gf_MtReqOfs[0].val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} + else if (strcmp(g_CmdBuf , "smo2" )==0 ){gf_MtReqOfs[1].req=true; gf_MtReqOfs[1].val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} + else if (strcmp(g_CmdBuf , "smo3" )==0 ){gf_MtReqOfs[2].req=true; gf_MtReqOfs[2].val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} + else if (strcmp(g_CmdBuf , "smo4" )==0 ){gf_MtReqOfs[3].req=true; gf_MtReqOfs[3].val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} else if (strcmp(g_CmdBuf , "smo" )==0 ){ for(int i = 0; i < 4; ++i){ - gf_MtReqOfs[i].bf.req=true; - gf_MtReqOfs[i].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]); + gf_MtReqOfs[i].req=true; + gf_MtReqOfs[i].val=(UINT16)atoi(&g_CmdBuf[arg2pos]); } } else if (strcmp(g_CmdBuf , "smof" )==0 ){ - gf_MtReqOfs[0].bf.req=true; - gf_MtReqOfs[0].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]); - gf_MtReqOfs[1].bf.req=true; - gf_MtReqOfs[1].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} + gf_MtReqOfs[0].req=true; + gf_MtReqOfs[0].val=(UINT16)atoi(&g_CmdBuf[arg2pos]); + gf_MtReqOfs[1].req=true; + gf_MtReqOfs[1].val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} else if (strcmp(g_CmdBuf , "smor" )==0 ){ - gf_MtReqOfs[2].bf.req=true; - gf_MtReqOfs[2].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]); - gf_MtReqOfs[3].bf.req=true; - gf_MtReqOfs[3].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]); } - else if (strcmp(g_CmdBuf , "smfpga1" )==0 ){gf_MtReqDct[0].bf.req=true; gf_MtReqDct[0].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} - else if (strcmp(g_CmdBuf , "smfpga2" )==0 ){gf_MtReqDct[1].bf.req=true; gf_MtReqDct[1].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} - else if (strcmp(g_CmdBuf , "smfpga3" )==0 ){gf_MtReqDct[2].bf.req=true; gf_MtReqDct[2].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} - else if (strcmp(g_CmdBuf , "smfpga4" )==0 ){gf_MtReqDct[3].bf.req=true; gf_MtReqDct[3].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} - else if (strcmp(g_CmdBuf , "smfpga5" )==0 ){gf_MtReqDct[4].bf.req=true; gf_MtReqDct[4].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} - else if (strcmp(g_CmdBuf , "smfpga6" )==0 ){gf_MtReqDct[5].bf.req=true; gf_MtReqDct[5].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} - else if (strcmp(g_CmdBuf , "smfpga7" )==0 ){gf_MtReqDct[6].bf.req=true; gf_MtReqDct[6].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} - else if (strcmp(g_CmdBuf , "smfpga8" )==0 ){gf_MtReqDct[7].bf.req=true; gf_MtReqDct[7].bf.val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} + gf_MtReqOfs[2].req=true; + gf_MtReqOfs[2].val=(UINT16)atoi(&g_CmdBuf[arg2pos]); + gf_MtReqOfs[3].req=true; + gf_MtReqOfs[3].val=(UINT16)atoi(&g_CmdBuf[arg2pos]); } + else if (strcmp(g_CmdBuf , "smfpga1" )==0 ){gf_MtReqDct[0].req=true; gf_MtReqDct[0].val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} + else if (strcmp(g_CmdBuf , "smfpga2" )==0 ){gf_MtReqDct[1].req=true; gf_MtReqDct[1].val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} + else if (strcmp(g_CmdBuf , "smfpga3" )==0 ){gf_MtReqDct[2].req=true; gf_MtReqDct[2].val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} + else if (strcmp(g_CmdBuf , "smfpga4" )==0 ){gf_MtReqDct[3].req=true; gf_MtReqDct[3].val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} + else if (strcmp(g_CmdBuf , "smfpga5" )==0 ){gf_MtReqDct[4].req=true; gf_MtReqDct[4].val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} + else if (strcmp(g_CmdBuf , "smfpga6" )==0 ){gf_MtReqDct[5].req=true; gf_MtReqDct[5].val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} + else if (strcmp(g_CmdBuf , "smfpga7" )==0 ){gf_MtReqDct[6].req=true; gf_MtReqDct[6].val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} + else if (strcmp(g_CmdBuf , "smfpga8" )==0 ){gf_MtReqDct[7].req=true; gf_MtReqDct[7].val=(UINT16)atoi(&g_CmdBuf[arg2pos]);} //キャリブレーション else if (strcmp(g_CmdBuf , "calyaw")==0 ){gf_Cal.bf.yaw=true;}// @@ -248,10 +235,6 @@ else if (strcmp(g_CmdBuf , "spidimin")==0 ){g_PidPara.IMin = atof(&g_CmdBuf[arg2pos]);gf_PidParaUpdate=true;}//PIDの係数 積分下限値設定 else if (strcmp(g_CmdBuf , "spidv")==0 ){g_PidPara.V = atof(&g_CmdBuf[arg2pos]);gf_PidParaUpdate=true;}//PID2の角速度の係数 - // else if (strcmp(g_CmdBuf , "op1" )==0 ){gf_MtReqOP[0].req=true; gf_MtReqOP[0].add_end=false; gf_MtReqOP[0].counter = 0; gf_MtReqOP[0].num = atoi(&g_CmdBuf[arg2pos]);}//モーター1一時的噴射 - // else if (strcmp(g_CmdBuf , "op2" )==0 ){gf_MtReqOP[1].req=true; gf_MtReqOP[1].add_end=false; gf_MtReqOP[1].counter = 0; gf_MtReqOP[1].num = atoi(&g_CmdBuf[arg2pos]);}//モーター2一時的噴射 - // else if (strcmp(g_CmdBuf , "op3" )==0 ){gf_MtReqOP[2].req=true; gf_MtReqOP[2].add_end=false; gf_MtReqOP[2].counter = 0; gf_MtReqOP[2].num = atoi(&g_CmdBuf[arg2pos]);}//モーター3一時的噴射 - // else if (strcmp(g_CmdBuf , "op4" )==0 ){gf_MtReqOP[3].req=true; gf_MtReqOP[3].add_end=false; gf_MtReqOP[3].counter = 0; gf_MtReqOP[3].num = atoi(&g_CmdBuf[arg2pos]);}//モーター4一時的噴射 //何にも引っ掛からない else {sp.printf("command missmatch\r\n"); }; }