#ifndef __NODE_LINK_H__ #define __NODE_LINK_H__ #include "DataHelper.h" #include "NodeLinkCommon.h" #define NL_SLAVE_EVENT_RESET 1 #define NL_SLAVE_EVENT_SETID 2 #define NL_SLAVE_EVENT_CRCERROR 3 typedef struct { void (*slave_port_up)(unsigned char); //向上一级输出数据的接口 void (*slave_port_down)(unsigned char); //向下一级输出数据的接口 int (*on_deal)(unsigned char * data_out, unsigned char * data_in, int len); //设备接收命令的回调, //一般用于本地设备类型的输入输出处理 void (*event_handle)(char cmd,int value); } nodelink_slave_ops; typedef struct { char model; //一个扩展一种型号 char status; //状态 char id; //ID编号,由主站动态分配 char recv_ok; unsigned short data_in_count; unsigned short old_data_in_count; unsigned short data_out_count; unsigned short data_out_posi; unsigned char data_in[NATIVE_DATA_BUFFER_SIZE]; unsigned char data_out[NATIVE_DATA_BUFFER_SIZE]; fifo_buffer_t native_data_in; //本地接收数据 //fifo_buffer_t native_data_out; //本地输出数据 //fifo_buffer_t slave_data_in; //从站输入数据 nodelink_slave_ops * ops; //一些回调API函数 } nodelink_slave_t; void nodelink_slave_set_native_in_buffer(nodelink_slave_t * slave, unsigned char * buffer, int total); void nodelink_slave_set_native_out_buffer(nodelink_slave_t * slave, unsigned char * buffer, int total); void nodelink_slave_set_slave_in_buffer(nodelink_slave_t * slave, unsigned char * buffer, int total); void nodelink_slave_init(nodelink_slave_t * slave, unsigned char model,nodelink_slave_ops *ops); void nodelink_slave_run(nodelink_slave_t * slave); void nodelink_slave_native_out(nodelink_slave_t * slave); void nodelink_slave_slave_in(nodelink_slave_t * slave, unsigned char dat); void nodelink_slave_master_in(nodelink_slave_t * slave, unsigned char dat); void nodelink_slave_recv_ok(nodelink_slave_t * slave); #endif