+enum maynuo_m97_mode {
+ CC = 1,
+ CV = 2,
+ CW = 3,
+ CR = 4,
+ CC_SOFT_START = 20,
+ DYNAMIC = 25,
+ SHORT_CIRCUIT = 26,
+ LIST = 27,
+ CC_L_AND_UL = 30,
+ CV_L_AND_UL = 31,
+ CW_L_AND_UL = 32,
+ CR_L_AND_UL = 33,
+ CC_TO_CV = 34,
+ CR_TO_CV = 36,
+ BATTERY_TEST = 38,
+ CV_SOFT_START = 39,
+ SYSTEM_PARAM = 41,
+ INPUT_ON = 42,
+ INPUT_OFF = 43,
+};
+
+SR_PRIV int maynuo_m97_get_bit(struct sr_modbus_dev_inst *modbus,
+ enum maynuo_m97_coil address, int *value);
+SR_PRIV int maynuo_m97_set_bit(struct sr_modbus_dev_inst *modbus,
+ enum maynuo_m97_coil address, int value);
+SR_PRIV int maynuo_m97_get_float(struct sr_modbus_dev_inst *modbus,
+ enum maynuo_m97_register address, float *value);
+SR_PRIV int maynuo_m97_set_float(struct sr_modbus_dev_inst *modbus,
+ enum maynuo_m97_register address, float value);
+
+SR_PRIV int maynuo_m97_get_mode(struct sr_modbus_dev_inst *modbus,
+ enum maynuo_m97_mode *mode);
+SR_PRIV int maynuo_m97_set_mode(struct sr_modbus_dev_inst *modbus,
+ enum maynuo_m97_mode mode);
+SR_PRIV int maynuo_m97_set_input(struct sr_modbus_dev_inst *modbus, int enable);
+SR_PRIV int maynuo_m97_get_model_version(struct sr_modbus_dev_inst *modbus,
+ uint16_t *model, uint16_t *version);
+
+SR_PRIV const char *maynuo_m97_mode_to_str(enum maynuo_m97_mode mode);
+
+SR_PRIV int maynuo_m97_capture_start(const struct sr_dev_inst *sdi);