:pserver:cvs@pserver.samba.org:/cvsroot - gnokii - Sun Nov 25 22:56 CET 2001
[gnokii.git] / include / links / cbus.h
1 #ifndef __cbus_h
2 #define __cbus_h
3
4 #define CBUS_MAX_FRAME_LENGTH 256
5 #define CBUS_MAX_TRANSMIT_LENGTH 256
6 #define CBUS_MAX_MSG_LENGTH 256
7
8 enum CBUS_RX_States {
9   CBUS_RX_Header,
10   CBUS_RX_FrameType1,
11   CBUS_RX_FrameType2,
12   CBUS_RX_GetLengthLB,
13   CBUS_RX_GetLengthHB,
14   CBUS_RX_GetMessage,
15   CBUS_RX_GetCSum
16 };
17
18
19 typedef struct{
20   int checksum;
21   int BufferCount;
22   enum CBUS_RX_States state;
23   int FrameHeader1;
24   int FrameHeader2;
25   int FrameType1;
26   int FrameType2;
27   int MessageLength;
28   unsigned char buffer[CBUS_MAX_FRAME_LENGTH];
29   u8 prev_rx_byte;
30 } CBUS_IncomingFrame;
31
32 typedef struct {
33   int message_length;
34   unsigned char buffer[CBUS_MAX_MSG_LENGTH];
35 } CBUS_OutgoingMessage;
36
37 typedef struct{
38   CBUS_IncomingFrame i;
39 } CBUS_Link;
40
41 GSM_Error CBUS_Initialise(GSM_Statemachine *state);
42
43 void sendat(char *msg);
44
45 #ifdef __cbus_c  /* Prototype functions for cbus.c only */
46
47 GSM_Error CBUS_Loop(struct timeval *timeout);
48 bool CBUS_OpenSerial();
49 void CBUS_RX_StateMachine(unsigned char rx_byte);
50 int CBUS_TX_SendFrame(u8 message_length, u8 message_type, u8 *buffer);
51 int CBUS_SendMessage(u16 messagesize, u8 messagetype, void *message);
52 int CBUS_TX_SendAck(u8 message_type, u8 message_seq);
53
54 #endif   /* #ifdef __cbus_c */
55
56 #endif   /* #ifndef __cbus_h */
57