port_numberはデフォルトが7878で、起動時にオプション-pまたは--portを用いることで変更できます。
ポート設定やシリアルへの書き込みなど、シリアル通信を直接制御するためのエンドポイント群です。
現在のシリアルポートの状態を取得します。
200 OK
{"state": state}stateには"CONNECTED", "DISCONNECTED", "READING", "ERROR"のどれかが入ります。
{"state": "CONNECTED"}現在接続可能なシリアルポートの一覧を取得します。
200 OK
{"available_ports": [port]}[port]には次の形式のデータが配列となって入ります。
{
"device": "{device name}",
"description": "{description}",
"hwid": "{hwid}"
}{
"available_ports": [
{"description":"n/a","device":"/dev/cu.debug-console","hwid":"n/a"},
{"description":"n/a","device":"/dev/cu.VictorHA-A20T","hwid":"n/a"},
{"description":"n/a","device":"/dev/cu.Bluetooth-Incoming-Port","hwid":"n/a"},
{"description":"IOUSBHostDevice","device":"/dev/cu.usbmodem1101","hwid":"USB VID:PID=2341:0043 SER=8513831393335161E082 LOCATION=0-1.1"}
]
}指定されたシリアルポートに接続します。
Content-Type: application/json
{
"portname": port name,
"baudrate": baudrate
}portname(必須): 接続するポート名、available_portsでの"device"の値を用いるbaudrate(オプション): ボーレート(デフォルト: 115200)
200 OK
{"status": "connected"}400 Bad Request
{"error": "Port name is required"}500 Internal Server Error
{"error": "Failed to connect"}リクエスト:
{
"portname": "/dev/cu.usbmodem1101",
"baudrate": 115200
}レスポンス:
{"status": "connected"}現在接続されているシリアルポートから切断します。
200 OK
{"status": "disconnected"}204 No Content
{"status": "port is not open"}{"status": "disconnected"}現在開いているシリアルポートにデータを書き込みます。
Content-Type: application/json
{
"payload": [byte],
}[byte]はすべて0~255の範囲内の整数の配列である必要があります。
200 OK
{"status": "data sent"}400 Bad Request
{"error": "Payload is required"}500 Internal Server Error
エンコードに失敗した場合(payloadのvalueが正しくない時など)
{"error": "Encoding error: {error}"}エンコードには成功したが、送信に失敗した場合
{"error": "port is not open or failed to write"}リクエスト:
{
"portname": "/dev/cu.usbmodem1101",
"baudrate": 115200
}レスポンス:
{"status": "connected"}パーサーによって解析されたシリアルデータを取得するためのエンドポイント群です。 すべてのデータは最新のデータを表示します。過去のデータは新しいデータによって上書きされていくため、予想されるデータの更新頻度に合わせてアクセスしてください。
全てのパーサーから取得された解析済みデータを一度に取得します。
200 OK
{
"parsername1": {parsed_data},
"parsername2": {parsed_data},
...
}{parsed_data}はparser/<parsername>で取得できる"keys"の値をkeyに持ちます。
{
"gps": {
"latitude": 35.6762,
"longitude": 139.6503,
"altitude": 40.0
},
"tachometer": {
"rpm": 1200
}
}指定されたパーサーの解析済みデータを取得します。
parsername: パーサー名
200 OK
{parsed_data}404 Not Found
{
"error": "No data found for this parser",
"available": [available_parser_names]
}リクエスト: GET /data/gps
レスポンス:
{
"latitude": 35.6762,
"longitude": 139.6503,
"altitude": 40.0
}利用可能なパーサーに関する情報を取得するためのエンドポイント群です。
利用可能なパーサーの一覧を取得します。
200 OK
{"parsers": [parser_names]}{
"parsers": [
"gps",
"tachometer",
"thrustmeter",
"ultrasonic"
]
}指定されたパーサーの詳細情報を取得します。
parsername: パーサー名
200 OK
{
"name": "{parser_name}",
"keys": [data_key_names],
}404 Not Found
{"error": "Parser not found"}リクエスト: GET /parser/gps
レスポンス:
{
"name": "gps",
"keys": ["latitude", "longitude", "altitude"],
}サーバーの動作確認用のテストエンドポイントです。
200 OK
{"message": "This is a test endpoint"}APIの使用方法を説明するHTMLページを返します。
200 OK
Content-Type: text/html
APIエンドポイントの一覧と説明が記載されたHTMLページが返されます。
ルートアクセス時に/helpと同じHTMLページを返します。
200 OK
Content-Type: text/html
/helpエンドポイントと同じHTMLページが返されます。