魔豆外围设备接入和管理API
硬件组成
魔豆路由器 魔豆棒(为例) 魔豆按键(为例)
一般使用模式
魔豆路由器作为载体,魔豆棒作为外围设备的一个接入口,魔豆按键作为一个外围设备的例子。使用魔豆按键通过魔豆棒传递特定数据或指令到魔豆路由器,路由器根据设定的规则来展示这些数据或者执行这些指令。魔豆棒由魔豆路由器系统自带程序完成初始化,类似魔豆按键的外围设备,需要在路由器上执行匹配动作,完成设备和路由器的匹配和注册工作。完成匹配与注册之后,魔豆路由器便可处理来自外围设备的消息了。
提供的APIs
匹配api在调用“开始匹配”后将会被加锁,直到调用“结束匹配”后锁被释放;修改api在调用“开始修改”后将会被加锁,直到调用“结束修改”后锁被释放;注册api在调用“开始注册”后将会被加锁,直到调用“结束注册”后锁被释放;在加锁情况下调用“开始**”api,将返回busy。获取列表api可以获取当前的设备列表与已注册的列表。获取可接入到魔豆棒应用(与按键联动)的脚本、可执行程序信息。
魔豆棒探活
GET /api/mdbang/pingreturn{code: -1, msg:”请等待”}orreturn{code: 1, msg:”设备不在线“}orreturn{code: 0, msg:”设备在线“}
匹配
开始匹配:
GET /api/mdbang/matchStartreturn{ code: -1, msg:"busy" }orreturn{ code: 0, msg:"ok" }
尝试匹配:
GET /api/mdbang/matchTryreturn{ code: -1, msg:"no match" }orreturn{code: 0,devid:"the id",msg:"ok"}
结束匹配:
GET /api/mdbang/matchEndreturn{ code: 0, msg: "ok" }
解匹配
开始解匹配:
POST /api/mdbang/disMatchStartpost data:{"devid" : "00"~"99"}return{ code: -1, msg:"busy" }orreturn{ code: 0, msg:"ok" }
尝试解匹配:
POST /api/mdbang/disMatchTrypost data:{"devid" : "00"~"99"}return{ code: -1, msg:"no dis match" }orreturn{code: 0,devid:"the id"}
结束解匹配:
POST /api/mdbang/disMatchEndpost data:{"devid" : "00"~"99"}return{ code: 0, msg: "ok" }
列表
开始修改列表:
GET /api/mdbang/listModifyStartreturn{ code: -1, msg:"busy"}orreturn{ code: 0, msg:"ok" }
添加匹配设备到列表:
POST /api/mdbang/listAddDevicepost data:{"devid" : "00"~"99""alias" : "xxxx"}return { code: -1, msg:"exist"}orreturn { code: 0, msg:"ok" }
从列表删除匹配设备:
POST /api/mdbang/listRmDevicepost data:{"devid" : "00"~"99"}return { code: -1, msg:"error"}orreturn { code: 0, msg:"ok" }
修改匹配设备备注到列表:
POST /api/mdbang/listRepAliaspost data:{"devid" : "00"~"99""alias" : "xxxx"}return { code: -1, msg:"error"}orreturn { code: 0, msg:"ok" }
结束修改列表:
GET /api/mdbang/listModifyEndreturn { code: 0, msg: "ok" }
注册
开始注册:
GET /api/mdbang/registerStartreturn { code: -1, msg:"busy"}orreturn { code: 0, msg:"ok" }
注册设备:
POST /api/mdbang/registerAddDevicepost data:{"devid" : "00"~"99"}return { code: -1, msg:"error"}orreturn { code: 0, msg:"ok" }
注册设备的操作方法:
POST /api/mdbang/registerAddOpspost data:{"devid" : "00"~"99""cmd" : "0"~"255""op" : "xxxx(reboot)""alias" : "xxxx"}return { code: -1, msg:"error"}orreturn { code: 0, msg:"ok" }
删除已注册设备:
POST /api/mdbang/registerRmDevicepost data:{"devid" : "00"~"99"}return { code: -1, msg:"error"}orreturn { code: 0, msg:"ok" }
删除已注册设备的操作方法:
POST /api/mdbang/registerRmOpspost data:{"devid" : "00"~"99""cmd" : "0"~"255"}return { code: -1, msg:"error"}orreturn { code: 0, msg:"ok" }
修改已注册设备的操作方法:
POST /api/mdbang/registerRepOpspost data:{"devid" : "00"~"99""cmd" : "0"~"255""op" : "xxxx(reboot)""alias" : "xxxx"}return { code: -1, msg:"error"}orreturn { code: 0, msg:"ok" }
生效注册:
GET /api/mdbang/registerCommitreturn { code: -1, msg:"error"}orreturn { code: 0, msg:"ok" }
结束注册:
GET /api/mdbang/registerEndreturn { code: 0, msg: "ok" }
读取状态
获取列表状态(已匹配并为被注册的设备):
GET /api/mdbang/listGetFullListreturn{"netid": "10","devices": [{"devid": "1","alias": “key 1”}, {"devid": "2","alias": “key 2”}]}
获取注册状态
GET /api/mdbang/registerGetFullListreturn{"netid": "10","devices": [{"devid": "20","alias": “key 1”,"ops": [{"cmd": "7","alias": "时钟","op": "clock &"}]}, {"devid": "15","alias": “key 2”,"ops": [{"cmd": "7","alias": "时钟","op": "clock &"}]}]}
读取可调用程序列表
GET /api/mdbang/getActionsreturn {"13504053": {"package_id": "com.modouwifi.vpnss","name": "app-ss-vpn","actions": {"start_shadow_socks": {"id": "start_shadow_socks","name": "打开SS-VPN","relative": true,"cmd": "/data/apps/14156393/./init start","is_sync": false},"stop_shadow_socks": {"id": "stop_shadow_socks","name": "关闭SS-VPN","relative": true,"cmd": "/data/apps/14156393/./init stop","is_sync": false}},"id": "13504053"}}
两份文件
/data/conf/mdbang.list
该文件维护着已匹配的设备id以及他们的备注信息
/data/conf/mdbang.conf
该文件维护着已注册的设备信息和对应的操作方法,系统会根据这份文件的信息,来自动调度和处理已注册的操作方法。
