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

📄 new_communication.h

📁 基于S3C4510的家庭网关的通讯进程程序源码
💻 H
字号:
/********************************************************************
*文件名:communication.h 自定义头文件                               *
*功能:实现通讯进程中公共变量的定义                                 *
*完成日期:2004.7.18                                                *
*********************************************************************/
#define WORD unsigned int
#define BYTE unsigned char

/*定义管道pipe端口*/
#define FIFO_NAME "/tmp/my_fifo"    /*发送控制命令管道*/
#define CLIENT_NAME "/tmp/cli_fifo" /*控制成功后返回应答管道*/
#define INF_NAME "/tmp/inf_fifo"    /*发布小区信息管道*/
#define REPLY_NAME "/tmp/reply_fifo"/*应答管道*/
#define ANNIU_NAME "/tmp/anniu_fifo"/*紧急按钮管道*/
#define INIT_NAME "/tmp/init_fifo"  /*初始化信息管道*/

#define BUFFER_SIZE 20
#define PIPEBUFFER_SIZE 256
#define min_cell_energy 1500   /*电池截止电压毫伏为单位*/

#define BAUDRATE B19200          /* 伯特率设定被定义 */       
#define MODEMDEVICE "/dev/ttyS1" /* 定义正确的序列埠 */ 
#define _POSIX_SOURCE 1          /* POSIX 系统相容 */ 

#define FALSE 0 
#define TRUE 1 
#define NodeNum 16  /*zigbee的子网中的节点数*/
#define NetNum  1   /*zigbee的子网数*/
#define SetInfNum  3 /*网页上保存小区信息的数量*/

/*报警命令相关设置*/
#define alarm_set_mode    0xff  /*设防功能码*/
#define alarm_cancel_mode 0x01  /*撤防功能码*/
#define alarm_reply_data  0xfe  /*设防状态下应答报警功能码*/
#define alarm_unreply     0x33  /*撤防状态下应答报警功能码*/

/*按节点实现功能不同来划分的节点功能编码*/
#define inquire_equ_fun_code   0x80  /*查询子节点设备种类电池电量功能码*/
#define report_equ_fun_code    0x41  /*报告子节点设备种类电池电量功能码*/
#define inquire_data_fun_code  0x82  /*查询子节点数据功能码*/
#define report_data_fun_code   0x63  /*报告子节点数据功能码*/
#define set_ao1_order          0xc4  /*设置模拟量输出命令功能码*/
#define respond_a01_order      0x45  /*应答模拟量输出命令功能码*/
#define set_relay_order        0xac  /*设置继电器开关命令功能码*/
#define respond_relay_order    0x2d  /*应答继电器开关命令功能码*/
#define amend_pulse_count1     0xf2  /*修改脉冲量1功能码*/
#define amend_pulse_count2     0xf3  /*修改脉冲量2功能码*/
#define report_switch1_order   0x36  /*报告开关量1功能码*/
#define report_switch2_order   0x37  /*报告开关量2功能码*/
#define respond_switch1        0x98  /*应答开关量1功能码*/
#define respond_switch2        0x99  /*应答开关量2功能码*/

/*初始化节点编码=节点号+节点功能编码*/
#define inquire_encode1    0x00
#define inquire_encode3    0x10     

TIME_STRUCT ds_1302_time;
/*子网中每个节点定义一个存放相关信息的结构体*/
struct                  
  {
  BYTE zigbee_node; 	/*zigbee出厂配置节点号*/
  BYTE real_node; 	/*网络中实际节点号*/  
  WORD flag;            /*节点存在标志*/
  WORD data_flag;      
  WORD timeout;         /*时间溢出设定*/
  WORD data_timeout;
  WORD cell;            /*节点电池电量*/
  BYTE *state;          /*节点状态*/
  BYTE data[10];        /*用来存放节点修改表底的数据*/
  unsigned long int node_data;/*节点数据*/
  BYTE *funtion;        /*节点功能*/
  BYTE show_node_time[20];/*显示节点状态改变时间*/
  }NetNode[NetNum][NodeNum];
  
  BYTE NameStr[20];   /*存放用户名*/
  BYTE AddressStr[20];/*存放用户地址*/
  BYTE DstStr[20];    /*存放目的邮箱ip地址*/
  BYTE SrcStr[20];    /*存放源邮箱ip地址*/
  BYTE DsSelectTime[3];/*数据采集时间设定选择*/
  BYTE DsHourStaStr;   /*采集数据开始小时*/
  BYTE DsHourEndStr;   /*采集数据结束小时*/
  BYTE DsMinStaStr;    /*采集数据开始分钟*/
  BYTE DsMinEndStr;    /*采集数据开始分钟*/
  BYTE AnniuTimeBuffer[30];
  WORD TimeSize;
  int AlarmNodeNum,AlarmNetNum;
  
BYTE PipeInfBuffer[SetInfNum+1][PIPEBUFFER_SIZE+1];/*存储小区信息缓冲区*/
static volatile WORD zig_node[16] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
static const char my_1302_days[7][4] = {"Sun", "Mon", "Tue", "Wed", "Thu", \
                                         "Fri", "Sat"};
struct sigaction saio;      /* definition of signal action */ 
static WORD alarm_flag=0;/*报警标志定义为静态变量*/
static WORD alarm_tran_flag = 0;
static WORD ds_inf_flag = 1;
static WORD anniu_flag = 0;         /*紧急按钮标志*/
static WORD testdev_flag = 0;
static int wait_flag=TRUE;          /* 没收到信号的话就会是 TRUE */
static int leddev;                  /*安防指示灯驱动的文件描述符*/ 
static BYTE IntervalTime = 01;


void Get_Mail_Address(void);           /*获取邮件地址*/
void Get_User_Inf(void);               /*获取用户信息*/
void Signal_Handler_IO (int status);  /* 定义讯号处理程序 */ 
int  Alarm_Inf(BYTE pac_buffer[20]);/*定义报警处理函数*/
void Renew_Html_Inf(BYTE PipeBuffer1[PIPEBUFFER_SIZE],int num);/*更新网页信息*/
void Renew_Html(void);                                         /*更新网页*/
void Control_Order_Send(int fd,BYTE PipeBuffer[BUFFER_SIZE]);  /*控制命令传送*/
int  Receive_Packet(int fd,int netwk1,BYTE AskData[6]);/*接收子节点脉冲量模拟量*/
BYTE Bcd2hex(BYTE x1,BYTE x2);
WORD Bcd2int(BYTE x);
BYTE Bcd2char(BYTE *x);
BYTE Char2long(BYTE Data[10]);
BYTE Bit_Xor(int len,BYTE XorData[20]);/*按位异或,进行数据校验*/
void Get_Collect_Time(void);/*获取数据采集设定时间*/
void Anniu_Inf_Send(void); /*按钮报警信息发送*/
void Judge_Node_Type(int i,int j,BYTE NodeFuntionCoding);
BYTE *Send_Mail_Packet(BYTE netwk,BYTE node,BYTE * MailDataPtr);/*发送邮件数据包*/ 





⌨️ 快捷键说明

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