Subversion Repositories HomeAutomation

Rev

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

Rev Author Line No. Line
53 johboh 1
/*********************************************************************
2
 *
3
 *                  CAN.c header file
4
 *
5
 *********************************************************************
6
 * FileName:        CAN.h
7
 *
8
 * Author               Date    Comment
9
 *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
10
 * Johan Böhlin     21-10-06    Original        (Rev 1.0)
11
 ********************************************************************/
12
 
13
#ifndef CAN_H
14
#define CAN_H
15
 
16
#include <CANdefs.h>
17
#include <compiler.h>
18
#include <typedefs.h>
19
 
20
 
64 johboh 21
typedef struct _CAN_PROTO_MESSAGE
53 johboh 22
{
64 johboh 23
    BYTE funct; //4
24
    WORD funcc; //10
25
    BYTE nid; //6
26
    WORD sid; //9
27
    BYTE data_length;//5
28
    BOOL remote_request; //1
53 johboh 29
    BYTE data[8];
64 johboh 30
} CAN_PROTO_MESSAGE;
53 johboh 31
 
32
 
64 johboh 33
//<FUNCT>
34
#define FUNCT_BOOTLOADER 0x0
35
 
36
//<FUNCC> configuration packet
37
#define FUNCC_BOOT_INIT 0b0000000001 //för att initiera en programmering.
38
#define FUNCC_BOOT_ADDR 0b0000000010  //för att ändra adress.
39
#define FUNCC_BOOT_DONE 0b0000000101  //för att avsluta en programmering.
40
 
41
//<FUNCC> program packet
42
#define FUNCC_BOOT_PGM 0b0000000011 //för att indikera att detta är programdata som ska skrivas.
43
 
44
//<FUNCC> ack packet
45
#define FUNCC_BOOT_ACK 0b0000000100 //för att indikera att detta är en ACK.
46
 
47
#define MY_ID 0x78 
48
#define MY_NID 0x00
49
 
50
#define ADDRL_INDEX 0
51
#define ADDRH_INDEX 1
52
#define ADDRU_INDEX 2
53
#define RID_INDEX 4
54
#define ERR_INDEX 4
55
 
56
//<ERR> 8 bitar feltyp
57
#define ERR_NO_ERROR 0x00 //= inget fel
58
#define ERR_ERROR 0x01 //= fel
59
 
60
 
56 johboh 61
typedef enum {PRIO_LOWEST=0,PRIO_LOW=1,PRIO_HIGH=2,PRIO_HIGEST=3} CAN_PRIORITY;
53 johboh 62
 
63
 
64
void canInit(void);
64 johboh 65
BOOL canSendMessage(CAN_PROTO_MESSAGE cm, CAN_PRIORITY prio);
53 johboh 66
 
67
#endif //CAN.h