NodeLinkSlave.h 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #ifndef __NODE_LINK_H__
  2. #define __NODE_LINK_H__
  3. #include "DataHelper.h"
  4. #include "NodeLinkCommon.h"
  5. #define NL_SLAVE_EVENT_RESET 1
  6. #define NL_SLAVE_EVENT_SETID 2
  7. #define NL_SLAVE_EVENT_CRCERROR 3
  8. typedef struct
  9. {
  10. void (*slave_port_up)(unsigned char); //向上一级输出数据的接口
  11. void (*slave_port_down)(unsigned char); //向下一级输出数据的接口
  12. int (*on_deal)(unsigned char * data_out, unsigned char * data_in, int len); //设备接收命令的回调,
  13. //一般用于本地设备类型的输入输出处理
  14. void (*event_handle)(char cmd,int value);
  15. } nodelink_slave_ops;
  16. typedef struct
  17. {
  18. char model; //一个扩展一种型号
  19. char status; //状态
  20. char id; //ID编号,由主站动态分配
  21. char recv_ok;
  22. unsigned short data_in_count;
  23. unsigned short old_data_in_count;
  24. unsigned short data_out_count;
  25. unsigned short data_out_posi;
  26. unsigned char data_in[NATIVE_DATA_BUFFER_SIZE];
  27. unsigned char data_out[NATIVE_DATA_BUFFER_SIZE];
  28. fifo_buffer_t native_data_in; //本地接收数据
  29. //fifo_buffer_t native_data_out; //本地输出数据
  30. //fifo_buffer_t slave_data_in; //从站输入数据
  31. nodelink_slave_ops * ops; //一些回调API函数
  32. } nodelink_slave_t;
  33. void nodelink_slave_set_native_in_buffer(nodelink_slave_t * slave,
  34. unsigned char * buffer,
  35. int total);
  36. void nodelink_slave_set_native_out_buffer(nodelink_slave_t * slave,
  37. unsigned char * buffer,
  38. int total);
  39. void nodelink_slave_set_slave_in_buffer(nodelink_slave_t * slave,
  40. unsigned char * buffer,
  41. int total);
  42. void nodelink_slave_init(nodelink_slave_t * slave, unsigned char model,nodelink_slave_ops *ops);
  43. void nodelink_slave_run(nodelink_slave_t * slave);
  44. void nodelink_slave_native_out(nodelink_slave_t * slave);
  45. void nodelink_slave_slave_in(nodelink_slave_t * slave, unsigned char dat);
  46. void nodelink_slave_master_in(nodelink_slave_t * slave, unsigned char dat);
  47. void nodelink_slave_recv_ok(nodelink_slave_t * slave);
  48. #endif