Subversion Repositories HomeAutomation

Rev

Rev 587 | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed

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