Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Запуск теста приводит к отправке на каждый сенсор MQTT-команды типа "FASTTEST" с следующими параметрами:

qos/XX:XX:XX:XX:XX:XX/cmd {"type":"FASTTEST","sid":"random-sid-value", 
     "connect": {"ssid":"network-name", "security":"psk", "password":"12345678", "bssid":"XX:XX:XX:XX:XX:XX", "band":0}, 
     "measure": {"duration:" 30, "cmd": "iperf3 -4 -c 1.2.3.4:4444 100M -u -J -R"}

}

Сенсор должен подключиться к заданной сети, запустить получение IP адреса, и затем выполнить команду, указанную в cmd. Максимальное её время выполнения задается в duration, при превышении этого времени запускаемый процесс должен быть убит.

В ответ сенсор должен собрать stdout тестирующей утилиты iperf (или что было указано в командной строке)""}В ответ сенсор должен запустить подключение к сети, если оно успешно запустить тест, и вернуть его результаты на сервер в следующем формате:

qos/XX:XX:XX:XX:XX:XX/data {"type":"FASTTEST","sid":"req-sid-value", 
      "connect": {"status

...

": true, "duration": 12345, "ip":"

...

5.

...

6.

...

7.

...

8"}, 
      "measure":{"status

...

": true, "duration": 12345, "result":{iperf-json-object}
}

Где { iperf-json-object } - объект, полученный в результате выполнения команды iperf.

Если подключение к сети не успешно, то запуск iperf не производится, и возвращается ответ вида:

qos/XX:XX:XX:XX:XX:XX/data {"type":"FASTTEST","sid":"req-sid-value", 
      "connect": {"status": false, "duration": 12345, "error":"словесное описание причины ошибки"}

...

, 
      "measure":{"status": false, "duration": 0, "result":{}
}