位元組指令的格式
位元組位元組1
位元組2位元組3
位元組4位元組5 含義
7f指令長度
指令碼資料位
校驗和各位元組定義如下:
位元組1:指令首位元組始終為 7fh
位元組2:指令長度
位元組3:指令碼
位元組4:校驗和
位元組5:校驗碼,為前面的第2—
3位元組的算術和的低
8位,即算術和對
256取模後的結果;
位元組5=
(位元組2+
位元組3+位元組4
)%256 位元組
位元組1位元組2位元組3
10位元組陣列
位元組7 含義
7f 01
指令碼時間資料
校驗和各位元組定義如下:
位元組1:指令首位元組始終為 7fh
位元組2:指令長度
位元組3:指令碼
10位元組陣列:日期資料
位元組7:校驗碼,為前面的第2—
3位元組的算術和的低
8位,即算術和對
256取模後的結果;
位元組5=
(位元組2+
位元組3+10
位元組陣列)
%256 位元組
位元組1位元組2位元組3
20位元組陣列
位元組7 含義
7f 01
指令碼重新命名資料
重設密碼
校驗和各位元組定義如下:
位元組1:指令首位元組始終為 7fh
位元組2:指令長度
位元組3:指令碼
20位元組陣列:
wifi
名字或密碼
位元組7:校驗碼,為前面的第2—
3位元組的算術和的低
8位,即算術和對
256取模後的結果;
位元組5=
(位元組2+
位元組3+20
位元組陣列)
%256 解析
voidcclientconnect::parsebytedata(uchar
*pbuf,
uint
ilen)
m_iremalen
=ilen-i;
if(m_iremalen
<
m_idatalen
||m_iremalen
==1)
uchar
*pdata=
null;
pdata=newuchar[m_idatalen];
memcpy(pdata,&pbuf[i],m_idatalen);
if(checkcode(pdata,m_idatalen)) //檢驗校驗和
if(pdata)
i+=(m_idatalen-1);
m_iremalen
=0;
m_idatalen
=0;
continue;
}else //拼接上次接收不完整的指令
m_pcmdcontrolbuf[m_iremalen]=pbuf[i];
m_iremalen++;
if(0x7f
==m_pcmdcontrolbuf[0]&&checkcode(m_pcmdcontrolbuf,m_idatalen))
}
if(m_iremalen
==m_idatalen)
}
}
}
解析 pragma指令
在所有的預處理指令中,pragma 指令可能是最複雜的了,它的作用是設定編譯器的狀態或者是指示編譯器完成一些特定的動作。pragma指令對每個編譯器給出了乙個方法,在保持與c和c 語言完全相容的情況下,給出主機或作業系統專有的特徵。依據定義,編譯指示是機器或作業系統專有的,且對於每個編譯器都是不同的...
解析 pragma指令
在所有的預處理指令中,pragma 指令可能是最複雜的了,它的作用是設定編譯器的狀態或者是指示編譯器完成一些特定的動作。pragma指令對每個編譯器給出了乙個方法,在保持與c和c 語言完全相容的情況下,給出主機或作業系統專有的特徵。依據定義,編譯指示是機器 或作業系統專有的,且對於每個編譯器都是不同...
解析 pragma指令
在 所有的預處理指令中,pragma 指令可能是最複雜的了,它的作用是設定編譯器的狀態或者是指示編譯器完成一些特定的動作。pragma指令對每個編譯器給出了乙個方法,在保持與c和c 語言完全相容的情況下,給出主機或作業系統專有的特徵。依據定義,編譯指示是機器或作業系統專有的,且對於每個編譯器都是不同...