OSDN Git Service

Initial commit
[scilog/scilog.git] / spi.c
1 #include <stdio.h>\r
2 #include <unistd.h>\r
3 #include <sys/ioctl.h>\r
4 //#include <termios.h>\r
5 #include <fcntl.h>\r
6 \r
7 #include "spi.h"\r
8 \r
9 static int      fd_spi = -1;\r
10 \r
11 int spi_get_fd(void)\r
12 {\r
13         return fd_spi;\r
14 }\r
15 int spi_open(char *dev)\r
16 {\r
17         fd_spi = open(dev, O_RDWR);\r
18         return fd_spi;\r
19 }\r
20 /*\r
21         デバイスへのioctl\r
22 */\r
23 int spi_ioctl(int cmd, void *p)\r
24 {\r
25         return ioctl(fd_spi, cmd, p);\r
26 }\r
27 \r
28 int spi_close(void)\r
29 {\r
30         return close(fd_spi);\r
31 }\r
32 \r
33 // 送信データ長セット\r
34 void spi_tx_len_set(int len)\r
35 {\r
36         spi_ioctl(CMD_TX_LEN, &len);\r
37 }\r
38 // 同期シリアル受信データ取得\r
39 void spi_rx_get(char *p)\r
40 {\r
41         spi_ioctl(CMD_RX_GET, p);\r
42 }\r
43 \r
44 // 同期シリアル送信データセット\r
45 void spi_tx_set(char *p)\r
46 {\r
47         spi_ioctl(CMD_TX_SET, p);\r
48 }\r
49 // リングバッファクリア\r
50 void spi_buf_clear(void)\r
51 {\r
52         spi_ioctl(CMD_BUF_CLEAR, NULL);\r
53 }\r
54 \r
55 // リングバッファのデータ数get\r
56 int spi_dnum_get(void)\r
57 {\r
58         int     i = 0;\r
59         spi_ioctl(CMD_DNUM_GET, &i);\r
60         return i;\r
61 }\r
62 // SPIで実際に受信したデータ長を取得\r
63 int spi_rcvd_len_get(void)\r
64 {\r
65         int     i = 0;\r
66         spi_ioctl(CMD_RECEIVED_LEN_GET, &i);\r
67         return i;\r
68 }\r