📄 meter.h
字号:
//#define DEBUG_COM 1
#define DEBUGCRC 1
#define METERTYPEMAX 6
#define METERADDRMAX 6
int bourate ;//将扫描时候的波特率保存为全局
//用于METER.C Receive()
#define MAX_RECV_LENGTH 600//一次性读取数据的最大长度
int channal_tolal_number;//所有设备的通道数总和
//以下变量在串口设备扫描上要用:
struct Type_data {
unsigned char *num;
unsigned char *name;
unsigned char *long_addr;
unsigned char *point_addr;
unsigned char *attribute;
unsigned char *up_value;
unsigned char *down_value;
};
struct Type_data Acquic ( unsigned char *type, unsigned char *num ) ;
/*下列结构用于命令发送,接收,数据转换*/
typedef struct {
unsigned char * cmd; //发送命令
int type; //接收命令的仪表类型
int boudrate; //接收命令的仪表的波特率
int dev_addr; //接收命令的仪表的地址
int data_addr; //接收命令的仪表的数据地址
int data_number; //接收命令的仪表的数据
union {
int i;
float f; }data;
}SEND_DATA_STRU;
typedef SEND_DATA_STRU *pSEND_DATA_STRU;
/*在整个工程中要用到的函数*/
void Comminit(void);
void GetRealValue(int device_id,unsigned char *buf );
int Compstr(unsigned char * str1 , unsigned char *str2 , int n);
void RTU_Write( int dev_addr,float content,int addr);
/*在整个工程中要用到的变量*/
unsigned char RecvBuf[1000]; //receive string
unsigned char ReceivedBuf[500];
int RecvLength; //global
pthread_t CommThread[3];
int CurThread;
int channel2addr;
//定义RTU命令
#define RTU_WRITE 0x06 //发送命令类型
#define RTU_READ 0x03
#define RTU_CHECK 0x08
/*WP协议仪表发送数据*/
typedef union {
int i;
float f;}WP_DATA;
/*WP 仪表写入字节数
对应命令W1,W2,W4*/
#define BYTE1 0x31
#define BYTE2 0x32
#define BYTE4 0x34
unsigned char *pfunction;//用来完成数值运算,例如将INT ->ascii
float pv_value[4];
int FlgRecv;
//用于GUI上显示,调试用
unsigned char displaybuf[30];
unsigned char valuepv[30];
//用于MINIGUI中MSG_CLOSE关闭串口2
int Commfd2;
//总共卡的个数
unsigned int dev_number;
//总共通道个数
//卡的类型
#define CARD_PV 0x71 //pv卡
#define CARD_LIULIANG 0x51 //流量卡
#define CARD_PV1 0x11 //pv卡
//pv卡
int pv_id ;
int pv_number ;//PV卡总数
//流量卡
int flux_id ;//流量卡id,表示当前操作的流量卡
int flux_number ;//流量卡总数
int comm_addr;//通讯时候的地址
unsigned short FluxReged[32];//存着此类型卡的设备号
unsigned short PidReged[32];//存着此类型卡的设备号
//pv卡
//test
int * ppp;
int number;
int recv_timeout;
void ReceiveSolution(void);
int DeviceRegist(void);
void Receive(void);
void ReceiveRTU( void );
void forTest(); //for test
void SendRTU( int device_id,int command,int addr,int data);
void FluxMeterCom(void);
float HEX4ToFloat (unsigned char *p);
void GotPV (void );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -