]> rtime.felk.cvut.cz Git - mirosot.git/blob - bluetooth/bth_inface.c
20431045934b14586974fe489d8c247f962c7f87
[mirosot.git] / bluetooth / bth_inface.c
1 /*******************************************************************
2   bluetooth library
3
4   bth_inface.c - fce for reading and getting and putting chars to a data queue
5
6   Copyright (C) 2006 by Petr Kovacik petr_kovacik@gmail.com
7
8  *******************************************************************/
9 #ifdef BTH_LX
10 #include <types.h>
11
12 #else
13 #include "types.h"
14 #include <stdio.h>
15 #endif
16
17 #include <stdlib.h>
18 #include "bth_inface.h"
19 #include "bth_inface.h"
20
21 #include <periph/sci_rs232.h>
22
23 /* the number of communication structures i.e. how many channels can be used for communication. It alse specifies howmany
24    independent couples of I/O buffers is here.*/
25 /*pocet komunikacnich struktur - tj. pres kolik kanalu je mozno komunikovat,
26   to zaroven znamena, kolik je nezavislych dvojic I/O bufferu*/
27   bth_inface_info_t bth_inface_chan_array[BTH_INFACE_CHANAL];
28
29 //-- --- ----- ----- ---- ------ ----- -- ---- --
30 //-- --- ----- ----- ---- ------ ----- -- ---- --
31
32 /**
33   * fce write one char to in-buffer. Fce return a code of char. If a value is -1 its signal for error
34 */
35 int bth_inface_r_isr(int chan, int val)
36 {
37   if(bth_inface_que_put(&(bth_inface_chan_array[chan].bth_inface_que_in),val)<0)
38   {return (-1);};
39   return (val);
40 }
41
42 /**
43   * fce read one char of out-buffer. Fce return a code of char. If is a value -1 than is not new char
44 */
45 int bth_inface_t_isr(int chan)
46 {
47   short val;
48   if((val=bth_inface_que_get(&(bth_inface_chan_array[chan].bth_inface_que_out)))>=0)
49   {
50     return val;
51   }
52   return (-1);
53 }
54
55 /**
56   * fce write one char to out-buffer. Fce return a code of char. If a value is -1 its signal for error
57 */
58 int bth_inface_sendch(int val, int chan)
59 {
60   if(bth_inface_que_put(&(bth_inface_chan_array[chan].bth_inface_que_out),val)<0)
61   {return (-1);};
62   return (val);
63 };
64
65
66 /**
67   * fce read one char of in-buffer. Fce return a code of char. If is a value -1 than is not new char
68 */
69 int bth_inface_recch(int chan)
70 {
71   short val;
72   if((val=bth_inface_que_get(&(bth_inface_chan_array[chan].bth_inface_que_in)))>=0)
73   {
74     sci_rs232_sendch(val,sci_rs232_chan_default);
75     return val;
76   }
77   return (-1);
78 };
79
80
81 /**
82   * init buffer for first chanal - 0 (nm. is index of array)
83 */
84 int bth_inface_setup(int chan)
85 {
86   bth_inface_info_t *bth_inface;
87   bth_inface = &(bth_inface_chan_array[chan]); // the number of communication interfaces bth - PC
88   bth_inface->bth_inface_que_in.buf_beg = bth_inface->bth_inface_buff_in;
89   bth_inface->bth_inface_que_in.buf_end = bth_inface->bth_inface_que_in.buf_beg+BTH_INFACE_BUF_LEN;
90   bth_inface->bth_inface_que_in.ip = bth_inface->bth_inface_que_in.buf_beg;
91   bth_inface->bth_inface_que_in.op = bth_inface->bth_inface_que_in.buf_beg;
92
93   bth_inface->bth_inface_que_out.buf_beg = bth_inface->bth_inface_buff_out;
94   bth_inface->bth_inface_que_out.buf_end = bth_inface->bth_inface_que_out.buf_beg+BTH_INFACE_BUF_LEN;
95   bth_inface->bth_inface_que_out.ip = bth_inface->bth_inface_que_out.buf_beg;
96   bth_inface->bth_inface_que_out.op = bth_inface->bth_inface_que_out.buf_beg;
97
98   return 1;
99 }
100
101
102 /****************************************************************************/
103 /****************************************************************************/
104
105
106 /**
107   * init using in your program
108 */
109 /*
110 int main()
111
112   bth_inface_setup(0);                                
113   bth_inface_r_isr(&bth_inface_chan_array[0],'c');    //internal-fce
114   bth_inface_recch(0);                                //read one char of buffer
115   bth_inface_sendch('a', 0);                           //write one char to out buffer for chanal 0
116   bth_inface_t_isr(&bth_inface_chan_array[0]);        //internal-fce
117
118   return 0;
119 };
120 */
121