keydous-bridge 0.1.2

Linux bridge for configuring Keydous keyboards with the official web driver
syntax = "proto3";

package driver;

service DriverGrpc {
  rpc watchDevList(Empty) returns (stream DeviceList);
  rpc watchVender(Empty) returns (stream VenderMsg);
  rpc watchSystemInfo(Empty) returns (stream SystemInfo);
  rpc getVersion(Empty) returns (Version);
  rpc sendMsg(SendMsg) returns (ResSend);
  rpc readMsg(ReadMsg) returns (ResRead);
  rpc sendRawFeature(SendMsg) returns (ResSend);
  rpc readRawFeature(ReadMsg) returns (ResRead);
  rpc setLightType(SetLight) returns (Empty);
  rpc insertDb(InsertDb) returns (ResSend);
  rpc deleteItemFromDb(DeleteItem) returns (ResSend);
  rpc getItemFromDb(GetItem) returns (Item);
  rpc getAllKeysFromDb(GetAll) returns (AllList);
  rpc getAllValuesFromDb(GetAll) returns (AllList);
  rpc changeWirelessLoopStatus(WirelessLoopStatus) returns (Empty);
  rpc cleanDev(ReadMsg) returns (ResSend);
}

message Empty {}

message DeviceList {
  repeated DJDev devlist = 1;
  DeviceListChangeType type = 2;
}

message DJDev {
  oneof oneofdev {
    Device dev = 1;
  }
}

message Device {
  DeviceType devtype = 1;
  bool is24 = 2;
  string path = 3;
  int32 id = 4;
  uint32 battery = 5;
  bool isonline = 6;
  uint32 vid = 7;
  uint32 pid = 8;
}

message VenderMsg {
  bytes msg = 1;
}

message SystemInfo {
  uint64 disk_space_total = 1;
  uint64 disk_spce_available = 2;
  uint64 net_work_total_up = 3;
  uint64 net_work_total_down = 4;
  float cpu_temperater = 5;
  uint64 mem_total = 6;
  uint64 mem_used = 7;
  float cpu_usage = 8;
}

message Version {
  string baseversion = 1;
  string timestamp = 2;
}

message SendMsg {
  string device_path = 1;
  bytes msg = 2;
  CheckSumType check_sum_type = 3;
  DangleDevType dangle_dev_type = 4;
}

message ReadMsg {
  string device_path = 1;
  DangleDevType dangle_dev_type = 2;
}

message ResSend {
  string err = 1;
}

message ResRead {
  string err = 1;
  bytes msg = 2;
}

message SetLight {
  string device_path = 1;
  int32 light_type = 2;
  int32 screen_id = 3;
  DangleDevType dangle_dev_type = 4;
}

message InsertDb {
  string dbpath = 1;
  bytes key = 2;
  bytes value = 3;
}

message DeleteItem {
  string dbpath = 1;
  bytes key = 2;
}

message GetItem {
  string dbpath = 1;
  bytes key = 2;
}

message Item {
  bytes value = 1;
  string err_str = 2;
}

message GetAll {
  string dbpath = 1;
}

message AllList {
  repeated bytes data = 1;
  string err_str = 2;
}

message WirelessLoopStatus {
  bool lock = 1;
}

enum CheckSumType {
  BIT7 = 0;
  BIT8 = 1;
  NONE = 2;
}

enum DangleDevType {
  DANGLEDEVTYPENONE = 0;
  DANGLEDEVTYPEKEYBOARD = 1;
  DANGLEDEVTYPEMOUSE = 2;
}

enum DeviceListChangeType {
  INIT = 0;
  ADD = 1;
  REMOVE = 2;
  CHANGE = 3;
}

enum DeviceType {
  YZWKEYBOARD = 0;
  YZWBOOT = 1;
  YZWVENDER = 2;
}