Subversion Repositories HomeAutomation

Rev

Blame | Last modification | View Log | SVN | RSS feed

  1. #ifndef CHANNEL_H_
  2. #define CHANNEL_H_
  3.  
  4. #include <inttypes.h>
  5. #include <bios.h>
  6.  
  7. #define CHANNEL_FAIL    0
  8. #define CHANNEL_OK      1
  9.  
  10. #define CHANNEL_MASK_SUBCLASS   0x01F00000
  11. #define CHANNEL_SHIFT_SUBCLASS  20
  12. #define CHANNEL_MASK_CHANNEL    0x000FFF00
  13. #define CHANNEL_SHIFT_CHANNEL   8
  14. #define CHANNEL_MASK_NODEID     0x000000FF
  15. #define CHANNEL_SHIFT_NODEID    0
  16.  
  17. #define CHANNEL_SUBCLASS_DATA       0x1UL
  18. #define CHANNEL_SUBCLASS_IDENTIFY   0x2UL
  19. #define CHANNEL_SUBCLASS_CHN_BIND   0x3UL
  20. #define CHANNEL_SUBCLASS_CHN_NAME   0x4UL
  21. #define CHANNEL_SUBCLASS_CHN_TYPE   0x5UL
  22.  
  23. #define CAN_CHANNEL     0x0aUL
  24.  
  25. typedef struct {
  26.     uint16_t    channel;
  27.     uint16_t    value;
  28.     char        name[9];
  29.  
  30.     uint16_t    type_k;
  31.     uint16_t    type_m;
  32.  
  33.     char        type[5];
  34.  
  35. } Channel_Info_t;
  36.  
  37. uint8_t Channel_Init( void );
  38.  
  39. uint8_t Channel_HandleMsg( Can_Message_t *msg );
  40. void Channel_Bind( uint8_t id, uint8_t channel );
  41. uint16_t Channel_GetValue( uint8_t id );
  42.  
  43. void Channel_Callback_Value( uint8_t id, uint16_t value );
  44.  
  45. #endif
  46.