Mürekkepbalığı: Çevre kontrolü

Bu sayfada, REST API veya komut satırı arayüzü kullanılarak Mürekkepbalığı cihazındaki ortamın nasıl kontrol edileceği açıklanmaktadır. Örneğin, Mürekkep Balığı cihazının Wi-Fi sinyalini değiştirebilir veya GPS konumunu güncelleyebilirsiniz.

Hizmetler

cvd env komutu Mürekkepbalığı ortamını kontrol etmek için aşağıdaki hizmetleri sağlar:

Hizmetler Tanım
GnssGrpcProxy Mürekkepbalığı coğrafi konum özelliği için GNSS'yi kontrol eder.
OpenwrtControlService Mürekkepbalığı Wi-Fi özelliği için sanallaştırılmış bir Wi-Fi AP sağlayıcısı olan Openwrt kontrol eder.
WmediumdService Mürekkepbalığı Wi-Fi özelliği için kablosuz ortam simülatörü olan Wmediumd kontrol eder.

REST API'yi kullanarak ortamı kontrol edin

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

Mevcut hizmetleri veya yöntemleri listeleyin

Tüm hizmetlerin bir listesini almak için aşağıdaki URL'ye cihaz kimliğiyle birlikte bir GET isteği gönderin.

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

Bir hizmete ilişkin tüm yöntemlerin bir listesini almak için aşağıdaki URL'ye cihaz kimliğini ve hizmet adını içeren bir GET isteği gönderin.

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

Bir yönteme ilişkin istek veya yanıt mesajı türleri gibi ayrıntılı bilgi almak için aşağıdaki URL'ye cihaz kimliğini, hizmet adını ve yöntem adını içeren bir GET isteği gönderin.

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

İstek ve yanıt türleri hakkında ayrıntılı bilgi alın

Bir istek veya yanıt mesajı türüne ilişkin ayrıntılı bilgi almak için aşağıdaki URL'ye cihaz kimliğini, hizmet adını ve istek veya yanıt mesaj türünü içeren bir GET isteği gönderin. Bu, mesajdaki her alanın tüm adlarını ve türlerini yazdırır. Daha sonra bu bilgiyi, RPC isteği göndermek üzere JSON biçimli bir protokol mesajı yazmak için kullanabilirsiniz.

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önder

JSON biçimli protokole sahip bir hizmetin yöntemini çağırmak üzere bir RPC isteği göndermek için aşağıdaki URL'ye aygıt kimliğini, hizmet adını ve yöntem adını içeren bir POST isteği gönderin. JSON formatlı protokolün gövdeye dahil edilmesi gerekir.

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

Örnek kullanım durumu

Aşağıda, SetTxpower çağırarak Wi-Fi sinyal gücünü değiştirmek için Rest API'sinin örnek kullanım durumu verilmiştir.

  1. Wi-Fi sinyal gücünü değiştirmek için hizmet adını, yöntem adını ve istek mesajı türü adını belirleyin.

    1. Aşağıdaki URL'ye bir GET isteği göndererek mevcut tüm hizmetlerin bir listesini alın.

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

      Bu örnek bir yanıttır.

      {"services":["OpenwrtControlService","EchoService","GnssGrpcProxy","WmediumdService"]}
      
    2. Aşağıdaki URL'ye bir GET isteği göndererek WmediumdService yöntemlerinin bir 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. Aşağıdaki URL’ye GET isteği göndererek SetTxpower yöntemine ait istek ve yanıt mesajı türleri hakkında bilgi alın.

      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. Aşağıdaki URL'ye GET isteği göndererek wmediumdserver.SetTxpowerRequest istek mesaj türüne ilişkin ayrıntılı bilgi alın.

    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. Aşağıdaki istek gövdesiyle bu URL'ye bir POST isteği göndererek Wi-Fi sinyal gücünü istenen seviyeye değiştirmek için WmediumdService hizmetine bir RPC isteği gönderin.

    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 edin

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

Mevcut hizmetleri veya yöntemleri listeleyin

Tüm hizmetlerin bir listesini almak için herhangi bir argüman olmadan cvd env ls komutunu kullanın.

cvd env ls

Bir hizmete ilişkin tüm yöntemlerin bir listesini almak için hizmetin adını argüman olarak ekleyin.

cvd env ls SERVICE_NAME

Bir yöntemin istek veya yanıt mesajı türleri gibi ayrıntılı bilgi almak için hizmet adını ve yöntem adını ekleyin.

cvd env ls SERVICE_NAME METHOD_NAME

İstek ve yanıt türleri hakkında ayrıntılı bilgi alın

Bir istek veya yanıt mesajı türüne ilişkin ayrıntılı bilgi almak için cvd env type komutunu kullanın. Bu komut, mesajdaki her alanın tüm adlarını ve türlerini yazdırır. Daha sonra bu bilgiyi, RPC isteği göndermek üzere JSON biçimli bir protokol mesajı yazmak için kullanabilirsiniz.

cvd env type SERVICE_NAME REQUEST_OR_RESPONSE_TYPE_NAME

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

JSON biçimli protokole sahip bir hizmetin yöntemini çağırmak üzere bir 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 ve varsa değerleri içeren bir yanıt mesajını yazdırır.

cvd env call SERVICE_NAME METHOD_NAME JSON_FORMATTED_PROTO

Örnek kullanım durumu

Aşağıda SetTxpower çağırarak Wi-Fi sinyal gücünü değiştirmek için cvd env CLI komutunun örnek kullanım durumu verilmiştir.

  1. Wi-Fi sinyal gücünü değiştirmek için hizmet adını, yöntem adını ve istek mesajı türü adını belirleyin.

    Mevcut tüm hizmetlerin bir listesini alın.

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

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

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

    SetTxpower yöntemi için istek ve yanıt mesajı türleri hakkında bilgi alın.

    cvd env ls WmediumdService SetTxpower
    (Omitted)
    {
      "request_type" : "wmediumdserver.SetTxpowerRequest",
      "response_type" : "google.protobuf.Empty"
    }
    
  2. wmediumdserver.SetTxpowerRequest istek mesaj tipine ilişkin detaylı bilgi alın.

    cvd env type WmediumdService wmediumdserver.SetTxpowerRequest
    (Omitted)
    message SetTxpowerRequest {
      string mac_address = 1;
      int32 tx_power = 2;
    }
    
  3. Wi-Fi sinyal gücünü istenen seviyeye değiştirmek için WmediumdService hizmetine RPC isteği gönderin.

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