Google is committed to advancing racial equity for Black communities. See how.
Bu sayfa, Cloud Translation API ile çevrilmiştir.
Switch to English

OpenWeave Araçları

jinja-placeholder-0 /index.md "> Kaynağı GitHub'da görüntüle

OpenWeave, OpenWeave dağıtımlarını yapılandırmak, yönetmek ve test etmek için bir dizi komut satırı aracı içerir.

Örgü araçları oluşturun

weave-tools hedefi, dağıtım için belirli Örgü komut satırı araçlarının katran arşivini oluşturur. Aşağıdaki araçları içerir:

araç Açıklama Bağımsız yapı konumu
gen-qr-code QR kodu oluşturma /src/tools/misc
mock-device Genel Örgü cihazı simülatörü /src/test-apps
weave Weave sertifikaları oluşturma ve yönetme /src/tools/weave
weave-device-descriptor QR kodlarını eşleştirmek için örgü cihazı tanımlayıcı dizelerini kodlama ve kod çözme /src/test-apps
weave-device-mgr Cihaz eşleştirme işlemini yönetme /src/device-manager/python
weave-heartbeat Heartbeat profil mesajlarını gönderme ve alma /src/test-apps
weave-key-export Anahtar dışa aktarma isteklerini gönderme /src/test-apps
weave-ping Echo profil mesajlarını gönderme ve alma /src/test-apps

Hedefi oluşturmak için:

  1. Tüm oluşturma önkoşullarını yükleyin.
  2. BlueW desteği olmadan OpenWeave'yi yapılandırma:
     cd <path-to-openweave-core>
    ./configure --without-bluez 
  3. weave-tools hedefleyin:
     make weave-tools 
  4. Katran arşivi için root openweave-core dizinini kontrol edin:
     ls weave*
        weave-tools-x86_64-unknown-linux-gnu-4.0d.tar.gz

Gen-qr-code

gen-qr-code aracı Python qrcode modülünü gerektirir. Yüklemek için pip kullanın:

 pip install --user qrcode

Cihaz eşleştirme amacıyla bir QR kodu oluşturmak için gen-qr-code kullanın. Aracın girdisi yerel bir dosyada bulunmalıdır. Örneğin, kullanıcıyı https://www.google.com adresine gönderen bir QR kodu oluşturmak için:

  1. QR kodu için dizeyle bir dosya oluşturun:
     echo "https://www.google.com" >> ~/ow_qrcode 
  2. Bu dizenin 64x64 QR kodunu oluşturun:
     ./gen-qr-code -v 1 -s 64 < ~/ow_qrcode 
  3. QR kodunu görüntü olarak kaydetmek için bir çıktı dosyası belirtin:
     ./gen-qr-code -v 1 -s 64 < ~/ow_qrcode > ~/ow_qrcode.png
    Use the weave-device-descriptor tool to generate the device descriptor string
    for use in a Weave device's pairing QR code.

sahte cihaz

mock-device , genel bir Örgü düğümünü simüle eder. Diğer araçlar ve test senaryosu komut dosyaları Örgü işlevini kapsüllemek için bu aracı kullanır. Simüle edilmiş bir topolojide Dokuma işlevini test etmek için tek tek Mutlu düğümlerde sahte cihazları başlatın.

Örneğin, fd00:0:1:1::1 IPv6 adresini dinleyen bir fd00:0:1:1::1 sahte cihaz başlatmak için, önce bu IPv6 adresini lo (geri döngü) arayüzüne ekleyin:

 sudo ifconfig lo add fd00:0:1:1::1/64

Ardından Weave mock cihazını başlatın:

 ./mock-device -a fd00:0:1:1::1
WEAVE:ML: Binding IPv6 TCP listen endpoint to [fd00:0:1:1::1]: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:1:1::1]:11095 (lo)
WEAVE:ML: Listening on general purpose IPv6 UDP endpoint
WEAVE:ML: Binding IPv6 multicast receive endpoint to [ff02::1]:11095 (lo)
WEAVE:ML: Listening on IPv6 multicast receive endpoint
WEAVE:EM: Cannot listen for BLE connections, null BleLayer
Weave Node Configuration:
  Fabric Id: 1
  Subnet Number: 1
  Node Id: 1
WEAVE:SD: init()
Weave Node Configuration:
  Fabric Id: 1
  Subnet Number: 1
  Node Id: 1
  Listening Addresses:
      fd00:0:1:1::1 (ipv6)
  Pairing Server: fd00:0:1:1::1
Mock Time Sync is disabled and not initialized
Mock System Time Offset initialized to: 3.213773 sec
Listening for requests...
Weave Node ready to service events; PID: 256904; PPID: 251571

Mevcut tüm yapılandırma seçeneklerini görüntülemek için --help bayrağını kullanın.

örgü-cihaz-açıklayıcısı

weave-device-descriptor aracı, bir aygıt tanımlayıcı dizesini kodlar veya kodunu çözer. Bu dizeler, Dokuma eşleştirme QR koduna kodlanmış bir aygıt için tanımlayıcı bilgiler içerir. Daha fazla bilgi için --help bayrağını encode veya decode seçenekleriyle kullanın.

 ./weave-device-descriptor encode --help
./weave-device-descriptor decode --help

kodlamak

Örneğin, bir aygıt tanımlayıcı dizesini aşağıdaki tanımlayıcı bilgilerle kodlamak için uygun bayrakları ve değerleri kullanın:

Alan bayrak değer
Satıcı kimliği -V 1
ürün kimliği -p 1
Ürün Revizyon Numarası -r 2
Seri numarası -s 18B4300000000004
Üretim tarihi -m 2018/05/02
802.15.4 MAC Adresi (İş Parçacığı, BLE) -8 000D6F000DA80466
Eşleme Kodu -P AB713H
 ./weave-device-descriptor encode -V 1 -p 1 -r 2 -s 18B4300000000004 -m 2018/05/02 \
                                   -8 000D6F000DA80466 -w 5CF370800E77 -P AB713H
1V:1$P:1$R:2$D:180502$S:18B4300000000004$L:000D6F000DA80466$W:5CF370800E77$C:AB713H$

QR kodunu oluşturmak için gen-qr-code aracıyla bu çıktı dizesini kullanın.

kod çözme

Aygıt tanımlayıcı dizesinin bir öğesinin kodunu decode için kod decode seçeneğini kullanın. Kod çözülecek öğe aşağıdaki sözdizimine sahiptir:

1 + <device-descriptor-element> + $

Örneğin, W:5CF370800E77 aygıt tanımlayıcı öğesinin kodunu çözmek için:

 ./weave-device-descriptor decode 1W:5CF370800E77$
Primary WiFi MAC: 5C:F3:70:80:0E:77

örgü-kalp atışı

İki Weave nodu arasında Heartbeat profil mesajlarını göndermek ve almak için weave-heartbeat kullanın. Kalp atışı, bir düğümün ağdaki diğer düğümlere canlılığını göstermek veya bir düğümün yapıya bağlı olup olmadığını kontrol etmek için bir araç sağlar.

Başarılı bir Kalp Atışı, bir düğümün sunucu olarak hareket etmesini (Kalp Atışı'nı dinleme ve yanıtlama) ve bir düğümün istemci olarak hareket etmesini (Kalp Atışı gönderme) gerektirir.

İki düğümü taklit etmek için geridöngü arabirimini kullanarak weave-heartbeat aracını test edin:

  1. Her Kalp Atışı düğümü için kullanılacak IPv6 adreslerini lo (geri döngü) arayüzüne ekleyin:
     sudo ifconfig lo add fd00:0:1:1::1/64
    sudo ifconfig lo add fd00:0:1:1::2/64 
  2. Heartbeat sunucusunu fd00:0:1:1::1 adresinden fd00:0:1:1::1 ve bu adrese fd00:0:1:1::1 node-id atayın:

     ./weave-heartbeat --node-addr fd00:0:1:1::1 --node-id 1 --listen
        WEAVE:ML: Binding IPv6 TCP listen endpoint to [fd00:0:1:1::1]: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:1:1::1]:11095 (lo)
        WEAVE:ML: Listening on general purpose IPv6 UDP endpoint
        WEAVE:ML: Binding IPv6 multicast receive endpoint to [ff02::1]:11095 (lo)
        WEAVE:ML: Listening on IPv6 multicast receive endpoint
        WEAVE:EM: Cannot listen for BLE connections, null BleLayer
        Weave Node Configuration:
          Fabric Id: 1
          Subnet Number: 1
          Node Id: 1
          Listening Addresses:
              fd00:0:1:1::1 (ipv6)
        Listening for Heartbeats...
        Weave Node ready to service events; PID: 170883; PPID: 170418

  3. İkinci bir terminal penceresi açın ve fd00:0:1:1::2 IPv6 adresinde Heartbeat istemcisini fd00:0:1:1::2 node-id ve birinci düğümün IPv6 adresini Heartbeat için hedef olarak başlatın:

     ./weave-heartbeat --node-addr fd00:0:1:1::2 --node-id 2 --dest-addr fd00:0:1:1::1 1
        WEAVE:ML: Binding IPv6 TCP listen endpoint to [fd00:0:1:1::2]: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:1:1::2]:11095 (lo)
        WEAVE:ML: Listening on general purpose IPv6 UDP endpoint
        WEAVE:ML: Binding IPv6 multicast receive endpoint to [ff02::1]:11095 (lo)
        WEAVE:ML: Listening on IPv6 multicast receive endpoint
        WEAVE:EM: Cannot listen for BLE connections, null BleLayer
        WEAVE:EM: Binding 0 : Allocated
        Weave Node Configuration:
          Fabric Id: 1
          Subnet Number: 1
          Node Id: 2
          Listening Addresses:
              fd00:0:1:1::2 (ipv6)
        Sending Heartbeats via UDP to node 1 (fd00:0:1:1::1) every 1000 ms
        Weave Node ready to service events; PID: 170932; PPID: 170608
        WEAVE:EM: Binding 0 : Configuring
        WEAVE:EM: Binding 0 : Preparing
        WEAVE:EM: Binding 0 : Ready, peer 1 ([fd00:0:1:1::1]:11095) via UDP

  4. Başarılı bir bağlantıdan sonra, düğüm 2, düğüm 1'e Kalp Atışı gönderir ve düğüm 1, düğüm 2'den alınan Kalp Atışlarını günlüğe kaydeder:

     Node 1
    <code></code>
    WEAVE:EM: Msg rcvd 00000013:1 1 0000000000000002 0000 C993 0 MsgId:1380A259
    WEAVE:EM: ec id: 1, AppState: 0xb8e89790
    Heartbeat from node 2 (fd00:0:1:1::2): state=1, err=No Error
    ### Node 2
    <code></code>
    WEAVE:EM: ec id: 1, AppState: 0x0
    WEAVE:EM: Msg sent 00000013:1 1 0000000000000001 0000 C993 0 MsgId:1380A259
    Heartbeat sent to node 1: state=1
     

Sahte bir cihaz ile kalp atışı

weave-heartbeat hem sunucu hem de istemci için bir mock-device başlatır. Aynı Kalp Atışı işlevi, ilk weave-heartbeat Kalp Atışı sunucusunun yerine mock-device kullanılarak gösterilebilir:

 ./mock-device -a fd00:0:1:1::1

örgü-ping

İki Örgü düğümü arasında Yankı profil iletileri göndermek ve almak için weave-ping kullanın. Yankı yükü, istekte bulunan düğüm tarafından sağlanan rastgele verilerden oluşur ve yanıtta kelimesi kelimesine yankılanması beklenir. Yankı, ağ bağlantısını ve gecikmeyi test etmek için bir araç sağlar.

Başarılı bir Yankı, bir düğümün sunucu olarak (Yankı isteğini dinleyen ve yanıtlayan) ve bir düğümün istemci gibi davranmasını (Yankı isteğini göndererek) gerektirir.

İki düğümü taklit etmek için geridöngü arabirimini kullanarak weave-ping aracını test edin:

  1. Her Yankı düğümü için kullanılacak IPv6 adreslerini lo (geri döngü) arayüzüne ekleyin:
     sudo ifconfig lo add fd00:0:1:1::1/64
    sudo ifconfig lo add fd00:0:1:1::2/64 
  2. fd00:0:1:1::1 adresinde Yankı sunucusunu fd00:0:1:1::1 ve 1 node-id atayın:

     ./weave-ping --node-addr fd00:0:1:1::1 --node-id 1 --listen
        WEAVE:ML: Binding IPv6 TCP listen endpoint to [fd00:0:1:1::1]: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:1:1::1]:11095 (lo)
        WEAVE:ML: Listening on general purpose IPv6 UDP endpoint
        WEAVE:ML: Binding IPv6 multicast receive endpoint to [ff02::1]:11095 (lo)
        WEAVE:ML: Listening on IPv6 multicast receive endpoint
        WEAVE:EM: Cannot listen for BLE connections, null BleLayer
        WEAVE:SD: init()
        Weave Node Configuration:
          Fabric Id: 1
          Subnet Number: 1
          Node Id: 1
          Listening Addresses:
              fd00:0:1:1::1 (ipv6)
        Listening for Echo requests...
        Iteration 0
        Weave Node ready to service events; PID: 120927; PPID: 113768
        WEAVE:ECH: Listening...

  3. İkinci bir terminal penceresi açın ve fd00:0:1:1::2 IPv6 adresinde Echo istemcisini Echo isteğinin hedefi olarak 2 node-id ve ilk düğümün IPv6 adresiyle başlatın:

     ./weave-ping --node-addr fd00:0:1:1::2 --node-id 2 --dest-addr fd00:0:1:1::1 1
        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:1:1::2]:11095 (lo)
        WEAVE:ML: Listening on general purpose IPv6 UDP endpoint
        WEAVE:ML: Binding IPv6 multicast receive endpoint to [ff02::1]:11095 (lo)
        WEAVE:ML: Listening on IPv6 multicast receive endpoint
        WEAVE:EM: Cannot listen for BLE connections, null BleLayer
        WEAVE:SD: init()
        Weave Node Configuration:
          Fabric Id: 1
          Subnet Number: 1
          Node Id: 2
          Listening Addresses:
              fd00:0:1:1::2 (ipv6)
        Sending Echo requests to node 1 at fd00:0:1:1::1
        Iteration 0
        Weave Node ready to service events; PID: 121125; PPID: 121017
        WEAVE:ML: Con start 9A00 0000000000000001 0001
        WEAVE:ML: Con DNS complete 9A00 0
        WEAVE:ML: TCP con start 9A00 fd00:0:1:1::1 11095
        WEAVE:ML: TCP con complete 9A00 0
        WEAVE:ML: Con complete 9A00
        Connection established to node 1 (fd00:0:1:1::1)

  4. Başarılı bir bağlantıdan sonra, düğüm 1 düğüm 2'deki Yankı İsteklerini günlüğe kaydeder ve düğüm 2 düğüm 1'deki Yankı Yanıtlarını günlüğe kaydeder:

     Node 1
    <code></code>
    WEAVE:ML: Con rcvd AA00 fd00:0:1:1::2 41675
    Connection received from node 2 (fd00:0:1:1::2)
    WEAVE:EM: Msg rcvd 00000001:1 15 0000000000000002 AA00 B8A5 0 MsgId:00000000
    WEAVE:EM: ec id: 1, AppState: 0xfce0ca80
    Echo Request from node 2 (fd00:0:1:1::2): len=15 ... sending response.
    WEAVE:EM: Msg sent 00000001:2 15 0000000000000002 AA00 B8A5 0 MsgId:00000000
    WEAVE:EM: Msg rcvd 00000001:1 15 0000000000000002 AA00 B8A6 0 MsgId:00000001
    ### Node 2
    <code></code>
    WEAVE:EM: ec id: 1, AppState: 0xd239baa0
    WEAVE:EM: Msg sent 00000001:1 15 0000000000000001 9A00 B8A5 0 MsgId:00000000
    WEAVE:EM: Msg rcvd 00000001:2 15 0000000000000001 9A00 B8A5 0 MsgId:00000000
    Echo Response from node 1 (fd00:0:1:1::1): 1/1(100.00%) len=15 time=0.228ms
     

Sahte bir cihaz ile yankı

weave-ping , hem sunucu hem de istemci için bir mock-device başlatır. Aynı yankı özelliğini kullanarak gösterilebilir mock-device ilk yerine weave-ping Yankı sunucusu:

 ./mock-device -a fd00:0:1:1::1