⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 protocol.h

📁 NEC527多功能电表完整源代码,包括LCD驱动,显示,计量,存储,整个527驱动程序!
💻 H
字号:
#ifndef _PROTOCOL_H_
#define _PROTOCOL_H_

#define NULL_PORT 0
#define IR_PORT BIT0
#define RS485_PORT BIT1
#define RS485_2_PORT BIT2
#define IR_RC BIT3
#define ANA_UART_PORT BIT4
#define COMM_RX_FINISH BIT7

#define FRAME_BUFFER_LEN                            255 
#define FRM_ADDR_LEN                                6 

#define COM_ATTRIBUTE_SINGLE                        0x5A 
#define COM_ATTRIBUTE_BROADCAST                     0xA5

#define FRM_START_BYTE1                             0
#define FRM_ADDR                                    1  
#define FRM_START_BYTE2                             7
#define FRM_COMMAND                                 8
#define FRM_DATALEN                                 9
#define FRM_DATA                                    10
#define FRM_CS   FrameBuffer[FRM_DATALEN]+10
#define FRM_STOP_BYTE               FRM_CS+1

#define DI1                                         FRM_DATA+1
#define DI0                                         FRM_DATA

#define FRAME_DATA_APPENDVALUE                      0x33

#define PRE_FRAME_FLAG                              0xFE
#define FRAME_START_FLAG                            0x68
#define FRAME_END_FLAG                              0x16

#define UART_RXD_OK                                 0
#define UART_WAIT_START_BYTE1                       1
#define UART_WAIT_ADDRESS                           2
#define UART_WAIT_START_BYTE2                       3
#define UART_WAIT_CTL_WORD                          4
#define UART_WAIT_DATA_LENGTH                       5
#define UART_WAIT_DATA                              6
#define UART_WAIT_CS                                7
#define UART_WAIT_STOP_BYTE                         8
#define UART_RXD_PARITY_ERR                         9
#define UART_RXD_OVERTIME_ERR                       10
#define UART_RXD_CONFIRM_BONDRATE                   11

#define UART_RXD_BUF_SIZE                           48
#define UART_TXD_BUF_SIZE                           7
#define UART_START_BYTE                             0x68
#define UART_STOP_BYTE                              0x16

#define FRM_CTRW_READ_SLVS_DATA                     0x01  //主机发出命令读数据
#define FRM_CTRW_WRITE_SLVS_DATA                    0x04   //主机发出命令写数据
#define FRM_CTRW_READ_MNUM                              0x16
#define FRM_CTRW_WRITE_PASSWORD                     0x0F   //修改密码
#define FRM_CTRW_CLR_PWRDATA                        0x09
#define FRM_CTRW_CLR_METER_DATA                     0x6B
#define FRM_CTRW_CLR_PASSWORD                       0x6F
#define FRM_CTRW_PWR_FREEZE                        0x07
#define FRM_CTRW_REVISE_TIME                        0x08 //广播校时
#define FRM_CTRW_WRITE_MNUM                         0x0A //写设备地址
#define FRM_CTRW_BAUD_RATE                          0x0C //更改通信率率
#define FRM_CTRW_CLR_REQ_PWRDATA                    0x10
#define FRM_CTRW_READ_LOAD_CURVE                    0x11
#define FRM_CTRW_CLR_ZT_DATA                        0x6C
  
#define RET_READ_E2PROM_A                           0x01   //返回这个说明要人铁电里面读数据
#define RET_READ_E2PROM_V                           0x02   //返回这个说明要从flash里面读数据
#define RET_WRITE_E2PROM_A                          0x04
#define RET_WRITE_E2PROM_V                          0x08
#define RET_SEND_RIGHT_RESPONSION                   0x10
#define RET_SEND_ERROR_RESPONSION                   0x20
#define RET_NO_RESPONSION                           0x40

#define RET_ERR_INVALID_DATA 0x01
#define RET_ERR_ID 0x02
#define RET_ERR_PASSWORD 0x04
#define RET_ERR_TIME_ZONE_OVER 0x10
#define RET_ERR_POT_SWITCH_OVER 0x20
#define RET_ERR_TARIFF_OVER 0x40
#define RET_ERR_LOAD_CURVE 0x80

#define STA_CLR_PWD BIT0
#define STA_CLR_PWRDATA BIT1
#define STA_CLR_METER  BIT2
#define STA_CLR_METER_CONSTRANT BIT3
#define STA_CLR_E2PROM_A BIT4
#define STA_CLR_E2PROM_V BIT5

#define COMM_TIMEOUT 8

extern const unsigned char phase_power_item[];
extern unsigned char FrameBuffer[FRAME_BUFFER_LEN];
extern unsigned char FramePointer;
extern unsigned long DI1DI0;
extern unsigned char _wait_time;
extern unsigned char CommPortBak;
extern unsigned char DI0_H;
extern unsigned char DI0_L;

extern void SysParseFrame(void);
extern void ResetClearStatusWord(void);
extern void CopySystemTime(unsigned char *data1,unsigned char *data2);
extern void PowerMeterClrReqData(void);

extern unsigned char CommProcess(void);
extern unsigned char CompSlvsAddr(void);
extern unsigned char FindCmdItem(const unsigned char *cmd,unsigned char ctlw);
extern unsigned char RxFrameDispose(void);
extern unsigned char SlvsProcClrPwrData(void);

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -