與相機(jī)通訊的Socket收發(fā)數(shù)據(jù)處理與提取
1)相機(jī)通常發(fā)送字符串給機(jī)器人,比如”1.23,4.56,7.89D”,即x為1.23,y為4.56,z的角度為7.89,用D作為結(jié)束符,數(shù)據(jù)之間用“,”隔開。
2)如果機(jī)器人收到上述字符串,如何把字符串提取出來并付給變量deltaX,deltaY,和thetaZ?
3)建立若干num變量,用以存儲(chǔ)過程數(shù)據(jù),比如StartBit1,表示x的數(shù)據(jù)從第幾位開始,Endbit1表示x的數(shù)據(jù)結(jié)束是第幾位,Lenbit1表示x數(shù)據(jù)的長(zhǎng)度,s1表示提取的x的值的字符串
4)
5)先假設(shè)x的第一位是1,給Startbit1賦值為1
6)插入函數(shù)strfind,查找第一個(gè)“,”在第幾位,得到EndBit1值
7)
8)EndBit1減去StartBit1就是x的數(shù)據(jù)長(zhǎng)度
9)同理得到y(tǒng)和theta的信息
10)通過StrPart函數(shù),提取從StartBit1開始到LenBit1結(jié)束的字符串,即x的值的字符串
12) 同理得到y(tǒng)和z的字符串
13)通過StrToVal函數(shù),把s1轉(zhuǎn)為num型,付給delta_x, StrToVal函數(shù)的反饋值為bool量,即轉(zhuǎn)換成功為true不成功為false
14)同理得到delta_y和delta_theta
15) 成功后可以寫屏測(cè)試,如下圖