Mürekkep balığı: Çevre kontrolü

Bu sayfada, Mürekkep balığı cihazında ortamın nasıl kontrol edileceği açıklanmaktadır REST API veya komut satırı arayüzünü kullanarak. Örneğin, Kablosuz sinyali veya Mürekkep balığı cihazının GPS konumunu güncelleyin.

Hizmetler

cvd env komutu, Mürekkep balığı ortamı:

Hizmetler Açıklama
GnssGrpcProxy Mürekkep balığı coğrafi konumu için GNSS'yi kontrol eder özelliğini kullanabilirsiniz.
OpenwrtControlService Sanallaştırılmış bir Kablosuz erişim noktası olan Openwrt'i kontrol eder sağlayıcım var.
WmediumdService Kablosuz ortam simülatörü olan Wmediumd öğesini kontrol eder kablosuz ağ özelliğini kullanıyor.

REST API'yi kullanarak ortamı kontrol etme

Bu bölümde, Rest API'yi kullanarak ortamın nasıl kontrol edileceği açıklanmaktadır <https://localhost:1443> hizmet uç noktası aracılığıyla yapılıyor.

Kullanılabilir hizmetleri veya yöntemleri listeleme

Tüm hizmetlerin listesini almak için aşağıdaki URL'ye şu şekilde bir GET isteği gönderin: Cihaz kimliği.

https://localhost:1443/devices/DEVICE_ID/services

Bir hizmete yönelik tüm yöntemlerin listesini almak için şuraya bir GET isteği gönderin: aşağıdaki URL'yi eklemeniz gerekir.

https://localhost:1443/devices/DEVICE_ID/services/SERVICE_NAME

Bir yöntemle ilgili ayrıntılı bilgi (ör. istek veya yanıt) almak için aşağıdaki URL'ye bir cihaz kimliğiyle GET isteği gönderin, hizmet adı ve yöntem adı girilmelidir.

https://localhost:1443/devices/DEVICE_ID/services/SERVICE_NAME/METHOD_NAME

İstek ve yanıt türleriyle ilgili ayrıntılı bilgi edinin

Bir istek veya yanıt mesajı türüyle ilgili ayrıntılı bilgi edinmek için GET gönderin aşağıdaki URL'ye bir cihaz kimliği, hizmet adı ve mesaj türünden emin olmanız gerekir. Bu, her bir dosyanın adını ve türünü alanına girmelisiniz. Daha sonra bu bilgileri kullanarak RPC isteği göndermek için kullanılan JSON biçimli proto mesajı.

https://localhost:1443/devices/DEVICE_ID/services/SERVICE_NAME/REQUEST_OR_RESPONSE_TYPE_NAME/type

Ortamda değişiklik yapmak için RPC isteği gönderme

JSON biçimli protosu olan bir hizmetin yöntemini çağırmak üzere RPC isteği göndermek için, aşağıdaki URL'ye bir cihaz kimliğine, hizmete sahip bir POST isteği gönderin ve yöntem adı girilmelidir. JSON biçimli protokol, gövde.

https://localhost:1443/devices/DEVICE_ID/services/SERVICE_NAME/METHOD_NAME

Kullanım alanı örneği

Aşağıda, Wi-Fi'ı değiştirmek için Rest API'nin örnek kullanım alanı verilmiştir SetTxpower numaralı telefonu arayarak sinyal gücü.

  1. Hizmet adını, yöntem adını ve istek mesajı türünü belirleme kablosuz sinyal gücünü değiştirme adı.

    1. Şuna bir GET isteği göndererek kullanılabilir tüm hizmetlerin listesini alabilirsiniz: ekleyin.

      https://localhost:1443/devices/cvd-1/services
      

      Bu, örnek bir yanıttır.

      {"services":["OpenwrtControlService","EchoService","GnssGrpcProxy","WmediumdService"]}
      
    2. GET isteği göndererek WmediumdService için yöntemlerin listesini alın .

      https://localhost:1443/devices/cvd-1/services/WmediumdService
      

      Bu, örnek bir yanıttır.

      {"methods":["ListStations","LoadConfig","ReloadConfig","SetCivicloc","SetLci","SetPosition","SetSnr","SetTxpower","StartPcap","StopPcap"]}
      
    3. Şunun için istek ve yanıt mesajı türleri hakkında bilgi edinin: SetTxpower yöntemini kullanarak GET yöntemini kullanabilirsiniz.

      https://localhost:1443/devices/cvd-1/services/WmediumdService/SetTxpower
      

      Bu, örnek bir yanıttır.

      {"request_type_name":"wmediumdserver.SetTxpowerRequest","response_type_name":"google.protobuf.Empty"}
      
  2. wmediumdserver.SetTxpowerRequest isteğiyle ilgili ayrıntılı bilgi edinin aşağıdaki URL'ye bir GET isteği göndererek mesaj türünü belirtin.

    https://localhost:1443/devices/cvd-1/services/WmediumdService/wmediumdserver.SetTxpowerRequest/type
    

    Bu, örnek bir yanıttır.

    message SetTxpowerRequest {
      string mac_address = 1;
      int32 tx_power = 2;
    }
    
  3. Kablosuz ağı değiştirmek için WmediumdService hizmetine RPC isteği gönderin bu URL'ye bir POST isteği göndererek istenen sinyale kadar sinyal gücünü artırın aşağıdaki istek gövdesiyle değiştirebilirsiniz.

    https://localhost:1443/devices/cvd-1/services/WmediumdService/SetTxpower
    
    {"mac_address":"42:00:00:00:00:00", "tx_power":1}
    

    Bu, örnek bir yanıttır.

    {}
    

Komut satırını kullanarak ortamı kontrol etme

Bu bölümde cvd env CLI komutu için kullanılabilen alt komutlar açıklanmaktadır. Daha fazla bilgi için, yardım mesajını cvd help env kullanarak yazdırın.

Kullanılabilir hizmetleri veya yöntemleri listeleme

Tüm hizmetlerin listesini almak için cvd env ls öğesini bağımsız değişken olmadan kullanın.

cvd env ls

Bir hizmete yönelik tüm yöntemlerin listesini almak için hizmeti kullanabilirsiniz.

cvd env ls SERVICE_NAME

İstek veya yanıt mesajı türleri gibi ayrıntılı bilgileri almak için yöntemini eklemeyi unutmayın.

cvd env ls SERVICE_NAME METHOD_NAME

İstek ve yanıt türleriyle ilgili ayrıntılı bilgi edinin

Bir istek veya yanıt mesajı türüyle ilgili ayrıntılı bilgi edinmek için cvd env type komutudur. Bu komut, her alanın tüm adlarını ve türlerini yazdırır sağlayabilirsiniz. Daha sonra bu bilgileri kullanarak JSON biçiminde bir metin proto mesajı gösterilir.

cvd env type SERVICE_NAME REQUEST_OR_RESPONSE_TYPE_NAME

Ortamda değişiklik yapmak için RPC isteği gönderme

JSON biçimli protosu olan bir hizmetin yöntemini çağırmak üzere RPC isteği göndermek için, cvd enc call komutunu kullanın. RPC isteği sona erdiğinde arayüz, Rpc succeeded with OK status mesajını ve varsa bir yanıt yazdırır mesajı görebilirsiniz.

cvd env call SERVICE_NAME METHOD_NAME JSON_FORMATTED_PROTO

Kullanım alanı örneği

Aşağıda, değişiklik yapmaya ilişkin cvd env CLI komutunun örnek bir kullanım alanı verilmiştir SetTxpower numaralı telefonu arayarak kablosuz ağ sinyal gücünü artırın.

  1. Hizmet adını, yöntem adını ve istek mesajı türünü belirleme kablosuz sinyal gücünü değiştirme adı.

    Kullanılabilir tüm hizmetlerin listesini alın.

    cvd env ls
    (Omitted)
    {
      "services" :
      [
        "OpenwrtControlService",
        "EchoService",
        "GnssGrpcProxy",
        "WmediumdService"
      ]
    }
    

    WmediumdService için yöntemlerin listesini alın.

    cvd env ls WmediumdService
    (Omitted)
    {
      "methods" :
      [
        "ListStations",
        "LoadConfig",
        "ReloadConfig",
        "SetCivicloc",
        "SetLci",
        "SetPosition",
        "SetSnr",
        "SetTxpower",
        "StartPcap",
        "StopPcap"
      ]
    }
    

    Şunun için istek ve yanıt mesajı türleri hakkında bilgi edinin: SetTxpower yöntemini çağırın.

    cvd env ls WmediumdService SetTxpower
    (Omitted)
    {
      "request_type" : "wmediumdserver.SetTxpowerRequest",
      "response_type" : "google.protobuf.Empty"
    }
    
  2. wmediumdserver.SetTxpowerRequest isteğiyle ilgili ayrıntılı bilgi edinin mesaj türü.

    cvd env type WmediumdService wmediumdserver.SetTxpowerRequest
    (Omitted)
    message SetTxpowerRequest {
      string mac_address = 1;
      int32 tx_power = 2;
    }
    
  3. Kablosuz ağı değiştirmek için WmediumdService hizmetine RPC isteği gönderin sinyal gücünü istediğiniz düzeye indirin.

    cvd env call WmediumdService SetTxpower "{mac_address:'42:00:00:00:00:00', tx_power:1}"
    (Omitted)
    Rpc succeeded with OK status
    {}