概要
小龟小车(小龟机器人)本身就是一台能提供web服务的服务器,因此您可以用传统Web开发的相关技术来操控小龟小车,实现自己的想法,比如一个完全符合自己要求的操控台、全自动的批处理等等。小龟也非常感谢您能分享您的作品。
所有可以进行HTTP访问的编程语言,不限Java、Python、C等等,都可以使用HTTP访问的方式来完整控制小车。
开发流程
您可以按照下面的开发流程来进行Web开发:
第一步:通过访问小龟小车官网(guidan.com)获取当前路由器下的所有小车的信息。
第二步:向指定小车的IP地址,发送您的操控请求。
获取当前路由器下所有小车
首先您需要通过HTTP或HTTPS请求访问以下网址,即可获得当前路由器(局域网)下的所有小车信息:
http://api.guidan.com/my/car.list
注意:只有获得小车的本地IP后,才能通过对这个IP发送各种HTTP请求来控制小车。
请求返回格式如下:
[{"ip": "192.168.5.95", "name": "\u5c0f\u8f661ad9", "model": "A2", "ver": "V211015", "update": 1634533876}]
这是一个符合JSON4规范的字符串,所以您可以用诸如"JSON.parse"来解析。整体是一个数组,数组的每个元素是一辆小车的信息(JSON对象格式),对象内各个字段意义如下:
| 字段 | 作用 | 说明 | 
|---|---|---|
| ip | 小车本地IP | 所有请求都是直接发到这个IP | 
| name | 小车名称 | |
| model | 小车型号 | |
| update | 小车最新报告时间 | 
操作指定小车
比如,我们想让目标小车(IP 192.168.1.19)播放Hello开机音乐,则如下发送HTTP请求即可:
http://192.168.1.19/py?code=car.hello()
开发范例
JavaScript范例
var xhr = new XMLHttpRequest(); //部分请求会非常耗时,请根据具体情况调整 //xhr.timeout = 5000; xhr.onreadystatechange = function(){ if(xhr.readyState!=4){return;} if(xhr.status!=200){return;}//返回的答复报文格式 {"status":"OK", "msg":""}var json = JSON.parse(xhr.responseText); //在下面处理 }; xhr.open("GET", "http://192.168.5.95/py?code=car.hello()", true); xhr.send(null);
接口说明
Python代码执行接口
Python执行接口支持GET和POST两种请求方式。
GET请求模式:适合较短的Python代码;POST请求模式,适合较长的Python代码。
GET接口
http://小车IP/py?code=Python代码
GET方式只能支持不大于256个字节的短PYTHON代码,超过这个长度的,请使用POST方式。
POST接口
http://小车IP/py
参数: code=Python代码
POST方式提交Python代码,需要按以下浏览器编码规范。
Content-Type: application/x-www-form-urlencoded
运动操作接口
运动操作接口仅支持GET提交方式。
GET接口
http://小车IP/driver?v={运动JSON指令}
关于运动JSON指令,请参考运动指令说明章节。
API操作接口
API操作接口支持GET和POST两种模式,请根据提交的数据量大小自由决定使用那种方式。
GET接口
http://小车IP/api?p=API路径&v={API指令}
API路径与API值请参考API手册。
POST接口
http://小车IP/api
参数p=API路径&v={API指令}
API路径与API值请参考API手册。
POST方式需要按以下浏览器编码规范。
Content-Type: application/x-www-form-urlencoded