2014-10-31 3 views
0

네트워크의 코디네이터에서 장치를 검색하려고합니다. 그래서 코디네이터에게 ND 명령을 보내고 다른 Xbee로부터 응답을 올바르게 받고 있습니다.Xbee 노드 발견 응답

다음 단계는 웹 응용 프로그램에받은 정보를 oder에 저장하여 명령과 데이터를 보내는 것입니다.

그러나 프레임에있는 일부 부품이 여전히 누락되었습니다.

1  7E     start frame  
===== =================== MESSAGE LENGHT 
2-3 0x00 0x19   -> 25 
===== =================== PACKET TYPE 
4  88     -> response to a remote AT command 
5  02     frame ID 
===== =================== AT COMMAND 
6-7 0x4E 0x44   "ND" 
8  00     status byte (00 -> OK) 

===== =================== MY - Remote Address 
9-10 0x17 0x85 
===== =================== SH - SERIAL NUMBER HIGH 
11-14 0x00 0x13 0xA2 0x00 
===== =================== SL - SERIAL NUMBER LOW  
15-18 0x40 0xB4 0x50 0x23 
===== =================== SIGNAL  
19 20 
= ======== NI - Node Identifier 
20 00 
21 FF  
22 FE  
23 01 
24 00   
25 C1  
26 05 
27 10  
28 1E  
===== ===== CHECKSUM (25th bytes from MESSAGE LENGHT) 
29 19 

그래서, 나는이 응답 장치의 주소를 찾을 수 있습니다

: 지금까지이 같은 프레임을 매핑 한? 내 추측은 메시지의 NI 부분에 있지만 데이터를 구성하는 방법에 대한 예제/정보를 찾지 못했습니다.

누군가 올바른 방향으로 나를 가리킬 수 있습니까? 누군가가 dig.com 포럼에서 얘기로

답변

0

NI<CR>     (Variable length) 
PARENT_NETWORK ADDRESS (2 Bytes)<CR> 
DEVICE_TYPE   (1 Byte: 0=Coord, 1=Router, 2=End Device) 
STATUS     (1 Byte: Reserved) 
PROFILE_ID    (2 Bytes) 
MANUFACTURER_ID  (2 Bytes 

그래서, 내 프레임 응답를 loking하는 :

00 --- Node Identifier variable, (here 1 byte = 00 because no value is set up). 
FFFE --- parent network address (2 bytes) 
01 --- device type 
00 --- status 
C105 --- profile id 
101E --- manufacturing id 

이를, AFAIK, 즉 프레임의 마지막 부분에서, 장치의 주소에 대한 정보는 제공되지 않습니다. 정보는 SL과 SH뿐입니다.

0

16 비트 네트워크 주소는 "MY"(0x1785)로 표시되며 64 비트 MAC 주소는 SH/SL (00 13 A2 00 40 B4 50 23)의 조합입니다.

+0

당신은 맞습니다 @tomlogic 원격 AT 명령을 보낼 때 16 비트 네트워크 주소를 사용하는 방법을 알고 있습니까? 내가 적색 인 모든 문서에서 64 비트 만 사용됩니다. –

+0

XBee 모듈이 16 비트 네트워크 주소를 사용할 수 있도록 64 비트 IEEE 주소를 모두 '0xFF'로 설정할 수 있습니다. 사용 가능한 최신 펌웨어를 사용하고 있는지 확인하십시오. ** 결국 궁극적으로 64 비트 IEEE 주소를 사용하고 네트워크 주소로 '0xFFFE'를 사용하는 것이 더 안정적입니다. ** 일부 802.15.4 네트워크에서는 네트워크 주소가 변경 될 수 있습니다 – tomlogic