aboutsummaryrefslogtreecommitdiff
path: root/AT91SAM7S256/Source/c_comm.h
blob: a1e112ccf3f6558dede02182e51be332728de35b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
//
// Date init       14.12.2004
//
// Revision date   $Date:: 14-11-07 12:40                                    $
//
// Filename        $Workfile:: c_comm.h                                      $
//
// Version         $Revision:: 1                                             $
//
// Archive         $Archive:: /LMS2006/Sys01/Main_V02/Firmware/Source/c_comm $
//
// Platform        C
//

#ifndef   C_COMM
#define   C_COMM


#define   BLUECORE_RESET_TIME           100     // Time in mS
#define   BLUECORE_WAIT_BEFORE_INIT     5000    // Time in mS
#define   BLUETOOTH_HANDLE_UNDEFIEND    0xFF

/* Constants related to BtAdrStatus*/
enum
{
  COLDBOOT,
  INITIALIZED,
  BTADRERROR
};


enum
{
  USB_CH,
  BT_CH,
  HISPEED_CH,
  NO_OF_CHANNELS
};


/* enum reffering to BT update */
enum
{
  UPD_BRICKNAME,
  UPD_FACTORYRESET,
  UPD_OPENSTREAM,
  UPD_REQCMDMODE,
  UPD_CONNECT,
  UPD_CONNECTREQ,
  UPD_PINREQ,
  UPD_DISCONNECT,
  UPD_DISCONNECTALL,
  UPD_REMOVEDEVICE,
  UPD_SEARCH,
  UPD_RESET,
  UPD_EXTREAD,
  UPD_SENDFILE,
  UPD_OFF,
  UPD_VISIBILITY,
  UPD_SENDDATA,
  UPD_IDLE
};

/* Constants reffering to Protocol */
enum
{
  DIRECT_CMD    = 0x00,
  SYSTEM_CMD    = 0x01,
  REPLY_CMD     = 0x02,
  NO_REPLY_BIT  = 0x80
};

typedef   struct
{
  ULONG   RemFileSize;
  UWORD   RemMsgSize;
  UWORD   SrcHandle;
  UWORD   DstHandle;
  UWORD   Timer;
  UBYTE   FileName[FILENAME_LENGTH + 1];
  UBYTE   Cmd;
  UBYTE   SlotNo;
}EXTTX;

typedef   struct
{
  UBYTE   Buf[256];
  UWORD   InPtr;
  UWORD   OutPtr;
}BTDATA;

typedef   struct
{
  UBYTE   Buf[256];
  UWORD   InPtr;
  UWORD   OutPtr;
}HSDATA;

typedef   struct
{
  UBYTE   Status;
  UBYTE   Type;
  UBYTE   Handle;
  UBYTE   Cmd;
}EXTMODE;

typedef   struct
{
  UBYTE   ParamOne;
  UBYTE   ParamTwo;
  UBYTE   ParamThree;
}BTCMD;

typedef   struct
{
  UBYTE     BtUpdateDataConnectNr;
  UBYTE     BtBcPinLevel;
  UBYTE     BtResetTimeCnt;
  UWORD     BtWaitTimeCnt;
  BTDATA    BtModuleInBuf;
  BTDATA    BtModuleOutBuf;
  BTCMD     BtCmdData;
  UBYTE     HsState;
  HSDATA    HsModuleInBuf;
  HSDATA    HsModuleOutBuf;
  EXTTX     ExtTx;
  EXTMODE   ExtMode[NO_OF_CHANNELS];
  UBYTE     ActiveUpdate;
  UBYTE     UpdateState;
  UBYTE     BtDeviceIndex;
  UBYTE     CmdSwitchCnt;
  UBYTE     StreamStateCnt;
  UBYTE     CloseConn0Cnt;
  UBYTE     DiscAllCnt;
  UBYTE     ResetBtCnt;
  UBYTE     BtState;
  UWORD     *pRetVal;
  UWORD     RetVal;
  UBYTE     *pValidPinCode;
  UBYTE     LookUpCnt;
  UBYTE     BtAdrStatus;
  UBYTE     BtCmdModeWaitCnt;
}VARSCOMM;

void      cCommInit(void* pHeader);
void      cCommCtrl(void);
void      cCommExit(void);

extern    const HEADER cComm;

#endif