在終端節點向協調器發資料時,在資料流中伴有該節點的網路位址,而有時通過pc端無法列印出來。
用過好幾個串列埠軟體,有時會出現停止,或亂碼行為,在經過多次換用軟體,發現**securecrt**這個軟體還不錯,解決的大部分問題
一般的在終端傳送資料的函式中,加入'0'轉換就行了。
sendbuf[0]='$';
sendbuf[1]='@';
sendbuf[2] = hi_uint16( enddeviceid );
sendbuf[3] = lo_uint16( enddeviceid );
sendbuf[4] = zigbee_fun_code_rfid_conflict; //fc
sendbuf[5]=5; //data len
sendbuf[6]=(revbuffer[1]==0)?1
:0; //成功
sendbuf[7]=revbuffer[2]; //data
sendbuf[8]=revbuffer[3]; //data
sendbuf[9]=revbuffer[4]; //data
sendbuf[10]=revbuffer[5]; //data
sendbuf[11] = xorchecksum(&sendbuf[2], 9);
sendbuf[12] = '\r';
sendbuf[13] = '\n';
在data部分加入』0』,就行了
sendbuf[8]=revbuffer[3] + '0'; //data
sendbuf[9]=revbuffer[4] + '0'; //data
sendbuf[10]=revbuffer[5] + '0'; //data
在osal.c檔案中:
unsigned
char * _ltoa(unsigned
long l, unsigned
char *buf, unsigned
char radix)
strcat((char*)buf, (char
const*)tmp2);
if (num3 || num2)
strcat((char*)buf, (char
const*)tmp1);
if (!num3 && !num2 && !num1)
strcpy((char*)buf, "0");
} else
if ( radix == 16 )
strcat((char*)buf, (char
const*)tmp1);
if (!num2 && !num1)
strcpy((char*)buf, "0");
} else
return null;
return buf;
#endif
}
l代表的是要轉換的陣列
buf代表的是轉換後的陣列的指標
radix代表的是幾進製,10或16
這是我自己寫的轉換函式(自己開了雙串列埠):
//埠列印函式轉化 uart:0->uart0,1->uart1;data目的陣列;len長度;slen從第幾位開始;elen倒數第幾位結束
static void uart_printf(uint8 uart,uint8 *data,uint8
len,uint8 slen,uint8 elen)
; uint8 *ltoas;
ltoas=data;
for(i=slen;i*ltoas++='\0';
if(uart==0)
haluartwrite(uart0,data,len-slen);
else
haluartwrite(uart1,data,len-slen);
}
無法顯示隱藏的檔案或資料夾
題 在資料夾選項裡面已經設定好顯示隱藏的檔案,但系統還是無法顯示隱藏的檔案或資料夾。方法 新建文字文件,把虛線內的內容複製進去,另存為 reg 格式的檔案,接著雙擊確定匯入登錄檔即可。windowsregistryeditorversion5.00 hkey current user softwar...
Jps 資訊顯示不全或不可用,無法殺死程序
1 正常情況 找到使用該程序的使用者,進入該使用者進行檢視 ps ef grep pid su 使用者名稱 jps2 異常情況 假如程序被停止 jps kill 9 pid發現程序還有殘留 ps ef grep pidpid資訊殘留,去 tmp hsperfdata 使用者名稱 資料夾刪除該pid檔...
Jps 資訊顯示不全或不可用,無法殺死程序
1 正常情況 找到使用該程序的使用者,進入該使用者進行檢視 ps ef grep pid su 使用者名稱 jps2 異常情況 假如程序被停止 jps kill 9 pid發現程序還有殘留 ps ef grep pidpid資訊殘留,去 tmp hsperfdata 使用者名稱 資料夾刪除該pid檔...