ดูแหล่งที่มาใน GitHub |
เครื่องมือ weave-device-mgr
(Weave Device Manager) ทําหน้าที่เป็นอุปกรณ์ช่วยในระบบนิเวศของ Weave ซึ่งจะจัดการการจับคู่อุปกรณ์ รวมถึงการจัดสรรเครือข่ายและผ้า ฟังก์ชันการทํางานที่ยกมาจะคล้ายกับบทบาทของแอป Nest ในการจัดสรร จับคู่ และลงทะเบียนอุปกรณ์ Nest กับบริการ
โปรแกรมจัดการอุปกรณ์ Weave รวมอยู่ในบิลด์ของ weave-tools
ในบิลด์ของแอปพลิเคชันแบบสแตนด์อโลน ซึ่งตั้งอยู่ที่ /src/device-manager/python
เรียกใช้
เมนูความช่วยเหลือพร้อมใช้งานระหว่างการทํางานของเครื่องมือ วิธีเริ่มต้นโปรแกรมจัดการอุปกรณ์ Weave และดูเมนูความช่วยเหลือ
./weave-device-mgr
help
เชื่อมต่อกับอุปกรณ์จําลอง
เนื่องจากโปรแกรมจัดการอุปกรณ์ Weave จะมีฟังก์ชันช่วยเหลือ คุณจึงต้องเชื่อมต่อกับอุปกรณ์นั้นก่อน หากต้องการทดสอบฟังก์ชันนี้ ให้ใช้โทโพโลยีจําลองที่มีความสุขและโหนดหนึ่งเรียกใช้อุปกรณ์ Weave จําลองและอีกโหนดหนึ่งเรียกใช้โปรแกรมจัดการอุปกรณ์
1. สร้างโทโพโลยีที่มีความสุข
ในโทโพโลยีนี้ node01
จะเรียกใช้อุปกรณ์จําลองขณะที่ node02
จะเรียกใช้โปรแกรมจัดการอุปกรณ์ ก่อนเริ่มต้น ให้ติดตั้ง Happy และกําหนดค่าสําหรับทีมสนับสนุนของ Weave
เมื่อติดตั้งแล้ว ให้สร้างโทโพโลยี Happy แบบง่าย ดังนี้
weave-state-load <path-to-openweave-core>/src/test-apps/happy/topologies/standalone/three_nodes_on_thread_weave.json
ตรวจสอบสถานะ Happy และ Weave เพื่อยืนยันโทโพโลยี
happy-state
State Name: happy
NETWORKS Name Type State Prefixes
Home thread UP 2001:0db8:0001:0002/64
NODES Name Interface Type IPs
node01 wpan0 thread fd00:0000:fab1:0006:1ab4:3000:0000:0004/64
2001:0db8:0001:0002:0200:00ff:fe00:0001/64
node02 wpan0 thread fd00:0000:fab1:0006:1ab4:3000:0000:0005/64
2001:0db8:0001:0002:0200:00ff:fe00:0002/64
node03 wpan0 thread 2001:0db8:0001:0002:0200:00ff:fe00:0003/64
fd00:0000:fab1:0006:1ab4:3000:0000:000a/64
weave-state
State Name: weave
NODES Name Weave Node Id Pairing Code
node01 18B4300000000004 AAA123
node02 18B4300000000005 AAA123
node03 18B430000000000A AAA123
FABRIC Fabric Id Global Prefix
fab1 fd00:0000:fab1::/48
2. เริ่มอุปกรณ์จําลอง
ลงชื่อเข้าสู่ระบบ node01
:
happy-shell node01
ใน node01
ให้จําลองอุปกรณ์โดยใช้ที่อยู่ IPv6 ของ Weave และโค้ดการจับคู่ Weave ที่ถูกต้อง คุณต้องมีรหัสการจับคู่เพื่อสร้างเซสชัน PASE ที่ปลอดภัยระหว่างอุปกรณ์จําลองและโปรแกรมจัดการอุปกรณ์ ดังนี้
./mock-device --node-addr fd00:0:fab1:6:1ab4:3000:0:4 --pairing-code AB713H
WEAVE:ML: Binding IPv6 TCP listen endpoint to [fd00:0:fab1:6:1ab4:3000:0:4]:11095
WEAVE:ML: Listening on IPv6 TCP endpoint
WEAVE:ML: Binding general purpose IPv4 UDP endpoint to [::]:11095
WEAVE:IN: IPV6_PKTINFO: 92
WEAVE:ML: Binding general purpose IPv6 UDP endpoint to [fd00:0:fab1:6:1ab4:3000:0:4]:11095 (wpan0)
WEAVE:ML: Listening on general purpose IPv6 UDP endpoint
WEAVE:ML: Binding IPv6 multicast receive endpoint to [ff02::1]:11095 (wpan0)
WEAVE:ML: Listening on IPv6 multicast receive endpoint
WEAVE:EM: Cannot listen for BLE connections, null BleLayer
Weave Node Configuration:
Fabric Id: FAB1
Subnet Number: 6
Node Id: 18B4300000000004
WEAVE:SD: init()
Weave Node Configuration:
Fabric Id: FAB1
Subnet Number: 6
Node Id: 18B4300000000004
Listening Addresses:
fd00:0:fab1:6:1ab4:3000:0:4 (ipv6)
Pairing Server: fd00:0:fab1:6:1ab4:3000:0:4
Mock Time Sync is disabled and not initialized
Mock System Time Offset initialized to: -4.802583 sec
Listening for requests...
Weave Node ready to service events; PID: 41116; PPID: 40703
3. เริ่มต้นโปรแกรมจัดการอุปกรณ์
เปิดหน้าต่างเทอร์มินัลใหม่และลงชื่อเข้าสู่ระบบ node02
happy-shell node02
ใน node02
ให้เริ่มโปรแกรมจัดการอุปกรณ์
./weave-device-mgr
WEAVE:ML: Binding general purpose IPv4 UDP endpoint to [::]:11095
WEAVE:IN: IPV6_PKTINFO: 92
WEAVE:ML: Listening on general purpose IPv4 UDP endpoint
WEAVE:ML: Binding general purpose IPv6 UDP endpoint to [::]:11095 ()
WEAVE:ML: Listening on general purpose IPv6 UDP endpoint
WEAVE:ML: Adding wpan0 to interface table
WEAVE:ML: Binding IPv6 UDP interface endpoint to [fd00:0:fab1:6:1ab4:3000:0:5]:11095 (wpan0)
WEAVE:ML: Listening on IPv6 UDP interface endpoint
Weave Device Manager Shell
weave-device-mgr >
4. เชื่อมต่อกับอุปกรณ์จําลอง
ในโปรแกรมจัดการอุปกรณ์ (node02
) ให้สร้างเซสชัน PASE ที่ปลอดภัยด้วยอุปกรณ์จําลอง จําลองที่อยู่ IPv6 และ Wedeve ID ของอุปกรณ์เอาต์พุตจากเอาต์พุตของคําสั่ง happy-state
และ weave-state
พร้อมกับรหัสการจับคู่ดังนี้
connect fd00:0:fab1:6:1ab4:3000:0:4 18B4300000000004 --pairing-code AB713H
WEAVE:DM: Initiating connection to device
WEAVE:ML: Binding general purpose IPv4 UDP endpoint to [::]:11095
WEAVE:IN: IPV6_PKTINFO: 92
WEAVE:ML: Listening on general purpose IPv4 UDP endpoint
WEAVE:ML: Binding general purpose IPv6 UDP endpoint to [::]:11095 ()
WEAVE:ML: Listening on general purpose IPv6 UDP endpoint
WEAVE:ML: Adding wpan0 to interface table
WEAVE:ML: Binding IPv6 UDP interface endpoint to [fd00:0:fab1:6:1ab4:3000:0:5]:11095 (wpan0)
WEAVE:ML: Listening on IPv6 UDP interface endpoint
WEAVE:EM: ec id: 1, AppState: 0x8d3777e0
WEAVE:DM: Sending IdentifyRequest to locate device
WEAVE:EM: Msg sent 0000000E:1 16 18B4300000000004 0000 986B 0 MsgId:23C64568
WEAVE:EM: Msg rcvd 0000000E:2 104 18B4300000000004 0000 986B 0 MsgId:8F1FC90B
WEAVE:DM: Received identify response from device 18B4300000000004 ([fd00:0:fab1:6:1ab4:3000:0:4]:11095%wpan0)
WEAVE:DM: Initiating weave connection to device 18B4300000000004 (fd00:0:fab1:6:1ab4:3000:0:4)
WEAVE:ML: Con start AFC0 18B4300000000004 0001
WEAVE:ML: TCP con start AFC0 fd00:0:fab1:6:1ab4:3000:0:4 11095
WEAVE:ML: TCP con complete AFC0 0
WEAVE:ML: Con complete AFC0
WEAVE:DM: Connected to device
WEAVE:DM: Initiating PASE session
WEAVE:EM: ec id: 1, AppState: 0x21da95c0
WEAVE:EM: Msg sent 00000004:1 296 18B4300000000004 AFC0 986C 0 MsgId:00000002
WEAVE:SM: StartSessionTimer
WEAVE:EM: Msg rcvd 00000004:2 284 18B4300000000004 AFC0 986C 0 MsgId:00000000
WEAVE:EM: Msg rcvd 00000004:3 144 18B4300000000004 AFC0 986C 0 MsgId:00000001
WEAVE:EM: Msg sent 00000004:4 176 18B4300000000004 AFC0 986C 0 MsgId:00000003
WEAVE:EM: Msg rcvd 00000004:5 32 18B4300000000004 AFC0 986C 0 MsgId:00000002
WEAVE:SM: CancelSessionTimer
WEAVE:DM: Secure session established
Connected to device.
weave-device-mgr (18B4300000000004 @ fd00:0:fab1:6:1ab4:3000:0:4) >
เอาต์พุตในอุปกรณ์จําลอง (node01
) ยืนยันการเชื่อมต่อสําเร็จ
WEAVE:EM: Msg rcvd 0000000E:1 16 0000000000000001 0000 986B 0 MsgId:23C64568 WEAVE:EM: ec id: 1, AppState: 0x3aadf480 IdentifyRequest received from node 1 (fd00:0:fab1:6:1ab4:3000:0:5) Target Fabric Id: FFFFFFFFFFFFFFFF Target Modes: 00000000 Target Vendor Id: FFFF Target Product Id: FFFF Sending IdentifyResponse WEAVE:EM: Msg sent 0000000E:2 104 0000000000000001 0000 986B 0 MsgId:8F1FC90B WEAVE:ML: Con rcvd 3960 fd00:0:fab1:6:1ab4:3000:0:5 38798 Connection received from node 18B4300000000005 (fd00:0:fab1:6:1ab4:3000:0:5) WEAVE:EM: Msg rcvd 00000004:1 296 0000000000000001 3960 986C 0 MsgId:00000002 WEAVE:EM: ec id: 1, AppState: 0x3aaf1f60 WEAVE:SM: StartSessionTimer WEAVE:EM: Msg sent 00000004:2 284 0000000000000001 3960 986C 0 MsgId:00000000 WEAVE:EM: Msg sent 00000004:3 144 0000000000000001 3960 986C 0 MsgId:00000001 WEAVE:EM: Msg rcvd 00000004:4 176 0000000000000001 3960 986C 0 MsgId:00000003 WEAVE:EM: Msg sent 00000004:5 32 0000000000000001 3960 986C 0 MsgId:00000002 WEAVE:ML: Message Encryption Key: Id=2C51 Type=SessionKey Peer=0000000000000001 EncType=01 Key=BB00C9BE96F188D7672255A2DC6AC14F,B0615B2BD5F97FC1B7AEC8C6FD59207D3B7CBFE6 WEAVE:SM: CancelSessionTimer Secure session established with node 1 (fd00:0:fab1:6:1ab4:3000:0:5) WEAVE:SM: Release session key: Id=2C51 Peer=0000000000000001 Reserve=0
5. ทดสอบการเชื่อมต่อ
ส่งคําขอ Weave Echo จากโปรแกรมจัดการอุปกรณ์ (node02
) ไปยังอุปกรณ์จําลองเพื่อทดสอบการเชื่อมต่อ โดยทําดังนี้
ping
WEAVE:DM: DataLength: 0, payload: 0, next: (nil)
WEAVE:EM: ec id: 1, AppState: 0x8d3777e0
WEAVE:EM: Msg sent 00000001:1 0 18B4300000000004 AFC0 986F 0 MsgId:00000000
WEAVE:EM: Msg rcvd 00000001:2 0 18B4300000000004 AFC0 986F 0 MsgId:00000000
Ping complete
เอาต์พุตในอุปกรณ์จําลอง (node01
) ยืนยันเสียงสะท้อนที่ประสบความสําเร็จ
WEAVE:EM: Msg rcvd 00000001:1 0 0000000000000001 3960 986F 0 MsgId:00000000 WEAVE:EM: ec id: 1, AppState: 0x3aadfbb0 WEAVE:SM: Reserve session key: Id=2CFF Peer=0000000000000001 Reserve=1 Echo Request from node 1 (fd00:0:fab1:6:1ab4:3000:0:5): len=0 ... sending response. WEAVE:EM: Msg sent 00000001:2 0 0000000000000001 3960 986F 0 MsgId:00000000 WEAVE:SM: Release session key: Id=2CFF Peer=0000000000000001 Reserve=0
6. ยกเลิกการเชื่อมต่ออุปกรณ์จําลอง
ใช้โปรแกรมจัดการอุปกรณ์เพื่อยกเลิกการเชื่อมต่อกับอุปกรณ์จําลอง
close
WEAVE:DM: Closing connection to device
WEAVE:ML: Con closed 8FC0 4002
WEAVE:ML: Removing session key: Id=2873 Peer=18B4300000000004
WEAVE:ML: Closing endpoints
weave-device-mgr >