syntax = "proto3"; package main; option go_package = "./spb"; // 依靠网关拼接数据包的远程开锁指令 message RemoteUnlockReq { // 16 byte publicKey and 16 byte privateKey // 只是这里才需要传递公钥私钥; // 蓝牙透传的话,包加密解密是在自己这边做的,密钥不用传给网关; bytes PublicKey = 1; bytes PrivateKey = 2; bytes SignKey = 3; // 枚举:开锁方式 离线开门0, 在线开门2 离线关门32 在线关门34 enum OpenModeE { OfflineOpen = 0; OnlineOpen = 2; OfflineClose = 32; OnlineClose = 34; } // CmdID 2字节uint16 uint32 CmdID = 4; // bluetoothDeviceName 40长度字符串 实际上是lockName string bluetoothDeviceName = 5; // UserID 20长度字符串 string UserID = 6; // OpenMode 开门方式 OpenModeE OpenMode = 7; // 开锁当前时间 uint64 OpenTime = 8; // Token uint32 首次请求 Token 填 0,如果锁需要鉴权操作者身份,则会分配动态口令并在应答消息中返回,二次请求时带上。 uint32 Token = 9; // // AuthCodeLen 鉴权码长度 uint8 // uint32 AuthCodeLen = 9; // // authCode 鉴权码 变长, 把KeyID、authUserID、时间戳、公钥通过md5加密之后就是authCode // string AuthCode = 10; // OnlineToken 联网token 16字节字符串 string OnlineToken = 11; } message RemoteUnlockResp { // CmdID 2字节uint16 uint32 CmdID = 1; // Token uint32 首次请求 Token 填 0,如果锁需要鉴权操作者身份,则会分配动态口令并在应答消息中返回,二次请求时带上。 uint32 Token = 2; // Status uint8 处理状态 uint32 Status = 3; // Power uint8 剩余电量,百分比 uint32 Power = 4; // OpenMode uint8 开锁方式 uint32 OpenMode = 5; // Power1 uint8 电池1剩余电量,百分比 uint32 Power1 = 6; // 蓝牙输入字节 bytes BluetoothInput = 7; // 蓝牙输出字节 bytes BluetoothOutput = 8; }