132 lines
2.9 KiB
C
132 lines
2.9 KiB
C
#pragma once
|
|
|
|
#include <stdint.h>
|
|
#include <stdbool.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif /* __cplusplus */
|
|
|
|
#ifndef DATA_TYPE_B
|
|
#define DATA_TYPE_B 1
|
|
#endif /* DATA_TYPE_B */
|
|
|
|
#ifndef DATA_TYPE_S8
|
|
#define DATA_TYPE_S8 43
|
|
#endif /* DATA_TYPE_S8 */
|
|
#ifndef DATA_TYPE_U8
|
|
#define DATA_TYPE_U8 32
|
|
#endif /* DATA_TYPE_U8 */
|
|
#ifndef DATA_TYPE_S16
|
|
#define DATA_TYPE_S16 33
|
|
#endif /* DATA_TYPE_S16 */
|
|
#ifndef DATA_TYPE_U16
|
|
#define DATA_TYPE_U16 45
|
|
#endif /* DATA_TYPE_U16 */
|
|
#ifndef DATA_TYPE_S32
|
|
#define DATA_TYPE_S32 2
|
|
#endif /* DATA_TYPE_S32 */
|
|
#ifndef DATA_TYPE_U32
|
|
#define DATA_TYPE_U32 35
|
|
#endif /* DATA_TYPE_U32 */
|
|
#ifndef DATA_TYPE_L64
|
|
#define DATA_TYPE_L64 36
|
|
#endif /* DATA_TYPE_L64 */
|
|
#ifndef DATA_TYPE_UL64
|
|
#define DATA_TYPE_UL64 37
|
|
#endif /* DATA_TYPE_UL64 */
|
|
#ifndef DATA_TYPE_F32
|
|
#define DATA_TYPE_F32 38
|
|
#endif /* DATA_TYPE_F32 */
|
|
#ifndef DATA_TYPE_D64
|
|
#define DATA_TYPE_D64 39
|
|
#endif /* DATA_TYPE_D64 */
|
|
#ifndef DATA_TYPE_IP
|
|
#define DATA_TYPE_IP 100
|
|
#endif /* DATA_TYPE_IP */
|
|
#ifndef DATA_TYPE_MAC
|
|
#define DATA_TYPE_MAC 101
|
|
#endif /* DATA_TYPE_MAC */
|
|
#ifndef DATA_TYPE_C8
|
|
#define DATA_TYPE_C8 102
|
|
#endif /* DATA_TYPE_C8 */
|
|
#ifndef DATA_TYPE_C32
|
|
#define DATA_TYPE_C32 103
|
|
#endif /* DATA_TYPE_C32 */
|
|
#ifndef DATA_TYPE_C64
|
|
#define DATA_TYPE_C64 104
|
|
#endif /* DATA_TYPE_C64 */
|
|
#ifndef DATA_TYPE_C128
|
|
#define DATA_TYPE_C128 105
|
|
#endif /* DATA_TYPE_C128 */
|
|
#ifndef DATA_TYPE_C1
|
|
#define DATA_TYPE_C1 106
|
|
#endif /* DATA_TYPE_C1 */
|
|
#ifndef DATA_TYPE_STR
|
|
#define DATA_TYPE_STR 107
|
|
#endif /* DATA_TYPE_STR */
|
|
|
|
|
|
|
|
#define MMS_S_STR_LEN 64
|
|
#define MMS_S_PARAM_MAX 16
|
|
|
|
|
|
|
|
typedef struct
|
|
{
|
|
char saddr[MMS_S_STR_LEN];
|
|
char desc[MMS_S_STR_LEN];
|
|
uint8_t type;
|
|
uint8_t ctrl_model;
|
|
// float min;
|
|
// float max;
|
|
// float step;
|
|
// char unit[MMS_S_STR_LEN];
|
|
}stru_mms_s_param_base;
|
|
|
|
|
|
// 定值仅支持一个参数
|
|
typedef struct
|
|
{
|
|
stru_mms_s_param_base base;
|
|
void *data;
|
|
}stru_mms_s_setting;
|
|
|
|
typedef void (*mms_s_setting_cb)(stru_mms_s_setting *p_setting, const char *p_data);
|
|
|
|
// 参数支持多个值
|
|
typedef struct
|
|
{
|
|
stru_mms_s_param_base base;
|
|
uint8_t param_num;
|
|
void *data[MMS_S_PARAM_MAX];
|
|
}stru_mms_s_param;
|
|
|
|
typedef void (*mms_s_param_cb)(stru_mms_s_param *p_param, const char *p_data, int setting_zone);
|
|
|
|
|
|
typedef struct
|
|
{
|
|
char saddr[MMS_S_STR_LEN];
|
|
char desc[MMS_S_STR_LEN];
|
|
uint8_t ctrl_model;
|
|
}stru_mms_s_control;
|
|
|
|
typedef void (*mms_s_control_cb)(stru_mms_s_control *p_control, uint8_t state);
|
|
|
|
int mms_s_init(const char* icd_path, int port);
|
|
void mms_s_dbg_switch(bool on);
|
|
|
|
int mms_s_control_register(stru_mms_s_control *p_control, uint16_t num, mms_s_control_cb cb);
|
|
int mms_s_setting_register(stru_mms_s_setting *p_setting, uint16_t num, mms_s_setting_cb cb);
|
|
int mms_s_param_register(stru_mms_s_param *p_param, uint16_t num, mms_s_param_cb cb);
|
|
int mms_s_file_path_set(const char* file_path);
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif /* __cplusplus */
|
|
|