syntax = "proto3";
package zsy;

message LoadometerConfig {
  // 连接方式
  enum ConnectType {
    // 串口
    SP = 0;
    // 作为 TCP 服务器
    TCP_SVR = 1;
    // 做为 TCP 客户端
    TCP_CLI = 2;
  };
  // 协议
  enum DataProtocol {
    // 通用协议
    GENERAL = 0;
  };
  // 串口配置
  message SerialPort {
    // 串口号
    string port_name = 1;
    // 波特率，1200、2400、4800、9600、19200、38400、57600、115200
    int32 baud_rate = 2;
    // 数据位，5-->5 位、6-->6 位、7-->7 位、8-->8 位
    int32 data_bits = 3;
    // 停止位，1-->1 位、2-->2 位、3-->1.5 位
    int32 stop_bits = 4;
    // 校验位，0-->无校验位、2-->偶校验位、3-->奇校验位、4-->空格校验位、5-->标记校验位
    int32 parity = 5;
    // 流控，0-->无流控、1-->硬件流控、2-->软件流控
    int32 flow_control = 6;
  }
  // TCP 配置
  message Tcp {
    // IP 地址
    string ip = 1;
    // 端口号
    uint32 port = 2;
  }
  // 设备分组编号
  string group_sn = 1;
  // 设备分组名称
  string group_name = 2;

  // 设备编号
  string sn = 3;
  // 设备名称
  string name = 4;
  // 首次读取延迟，单位：秒
  uint32 delay = 5;
  // 允许的误差，单位：千克
  int32 accuracy = 6;
  // 稳定次数
  uint32 steady = 7;
  // 重试次数
  uint32 retries = 8;
  // 重试延迟，单位：秒
  uint32 retry_delay = 9;
  // 最低重量，单位：千克
  uint32 weight_line = 10;

  // 数据协议
  DataProtocol data_protocol = 11;
  // 连接方式
  ConnectType connect_type = 12;
  oneof TransportProtocol {
    // 串口配置
    SerialPort serial_port = 13;
    // TCP 配置
    Tcp tcp = 14;
  }
}