Subversion Repositories HomeAutomation

Rev

Rev 587 | 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.  
  29. #if CHANNEL_ENABLE_NAME
  30.     char        name[9];
  31. #endif
  32.  
  33. #if CHANNEL_ENABLE_TYPE
  34.     uint16_t    type_k;
  35.     uint16_t    type_m;
  36.  
  37. #   if CHANNEL_ENABLE_TYPE_NAME
  38.     char        type[5];
  39. #   endif
  40. #endif
  41.  
  42. } Channel_Info_t;
  43.  
  44. uint8_t Channel_Init( void );
  45.  
  46. uint8_t Channel_HandleMsg( Can_Message_t *msg );
  47. void Channel_Bind( uint8_t id, uint8_t channel );
  48.  
  49. uint16_t Channel_GetValue( uint8_t id );
  50. uint8_t Channel_SetValue( uint8_t id, uint16_t value );
  51.  
  52. void Channel_Callback_Value( uint8_t id, uint16_t value );
  53.  
  54. #endif
  55.