ryb080i 2.1.0.0
Loading...
Searching...
No Matches
ryb080i.h
Go to the documentation of this file.
1/****************************************************************************
2** Copyright (C) 2020 MikroElektronika d.o.o.
3** Contact: https://www.mikroe.com/contact
4**
5** Permission is hereby granted, free of charge, to any person obtaining a copy
6** of this software and associated documentation files (the "Software"), to deal
7** in the Software without restriction, including without limitation the rights
8** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9** copies of the Software, and to permit persons to whom the Software is
10** furnished to do so, subject to the following conditions:
11** The above copyright notice and this permission notice shall be
12** included in all copies or substantial portions of the Software.
13**
14** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
16** OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
17** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
18** DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
19** OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
20** USE OR OTHER DEALINGS IN THE SOFTWARE.
21****************************************************************************/
22
28#ifndef RYB080I_H
29#define RYB080I_H
30
31#ifdef __cplusplus
32extern "C"{
33#endif
34
39#ifdef PREINIT_SUPPORTED
40#include "preinit.h"
41#endif
42
43#ifdef MikroCCoreVersion
44 #if MikroCCoreVersion >= 1
45 #include "delays.h"
46 #endif
47#endif
48
49#include "drv_digital_out.h"
50#include "drv_digital_in.h"
51#include "drv_uart.h"
52
73#define RYB080I_CMD_AT "AT"
74#define RYB080I_CMD_SW_RESET "AT+RESET"
75#define RYB080I_CMD_BROADCAST_NAME "AT+NAME"
76#define RYB080I_CMD_DEVICE_NAME "AT+ATTR"
77#define RYB080I_CMD_OUTPUT_POWER "AT+CPFOP"
78#define RYB080I_CMD_CONNECTION_ENABLE "AT+CNE"
79#define RYB080I_CMD_BROADCAST_PERIOD "AT+PERIOD"
80#define RYB080I_CMD_POWER_MODE "AT+PWMODE"
81#define RYB080I_CMD_ADVERTISING_ENABLE "AT+CFUN"
82#define RYB080I_CMD_BAUD_RATE "AT+IPR"
83#define RYB080I_CMD_INQUIRE_MAC_ADDRESS "AT+ADDR"
84#define RYB080I_CMD_END_KEY_ENABLE "AT+ENTER"
85#define RYB080I_CMD_CONNECTION_STATUS "AT+CONNECT"
86#define RYB080I_CMD_CONNECT_MAC "AT+CON"
87#define RYB080I_CMD_CONNECT_NUM "AT+CONT"
88#define RYB080I_CMD_DISCONNECT "AT+DCON"
89#define RYB080I_CMD_GPIO_OUT "AT+GPIO"
90#define RYB080I_CMD_SW_VERSION "AT+CGMS"
91
96#define RYB080I_RSP_OK "OK"
97#define RYB080I_RSP_FOUND "Found"
98#define RYB080I_RSP_READY "READY"
99#define RYB080I_RSP_GENERIC "+"
100#define RYB080I_RSP_CONNECTED "+++++"
101#define RYB080I_RSP_DISCONNECTED "-----"
102#define RYB080I_RSP_NO_CONNECTIONS "CONNECT=0,0"
103
109#define RYB080I_TX_DRV_BUFFER_SIZE 200
110#define RYB080I_RX_DRV_BUFFER_SIZE 600
111
112 // ryb080i_cmd
113
128#define RYB080I_MAP_MIKROBUS( cfg, mikrobus ) \
129 cfg.tx_pin = MIKROBUS( mikrobus, MIKROBUS_TX ); \
130 cfg.rx_pin = MIKROBUS( mikrobus, MIKROBUS_RX ); \
131 cfg.rst = MIKROBUS( mikrobus, MIKROBUS_RST );
132
133 // ryb080i_map
134 // ryb080i
135
140typedef struct
141{
142 // Output pins
143 digital_out_t rst;
145 // Modules
146 uart_t uart;
148 // Buffers
149 uint8_t uart_rx_buffer[ RYB080I_RX_DRV_BUFFER_SIZE ];
150 uint8_t uart_tx_buffer[ RYB080I_TX_DRV_BUFFER_SIZE ];
151 uint8_t cmd_buffer[ RYB080I_TX_DRV_BUFFER_SIZE ];
153} ryb080i_t;
154
159typedef struct
160{
161 // Communication gpio pins
162 pin_name_t rx_pin;
163 pin_name_t tx_pin;
165 // Additional gpio pins
166 pin_name_t rst;
168 // Static variable
169 uint32_t baud_rate;
171 uart_data_bits_t data_bit;
172 uart_parity_t parity_bit;
173 uart_stop_bits_t stop_bit;
176
189
206
221
234err_t ryb080i_generic_write ( ryb080i_t *ctx, uint8_t *data_in, uint16_t len );
235
248err_t ryb080i_generic_read ( ryb080i_t *ctx, uint8_t *data_out, uint16_t len );
249
259void ryb080i_set_rst_pin ( ryb080i_t *ctx, uint8_t state );
260
270
280void ryb080i_cmd_run ( ryb080i_t *ctx, uint8_t *cmd );
281
292void ryb080i_cmd_set ( ryb080i_t *ctx, uint8_t *cmd, uint8_t *param );
293
303void ryb080i_cmd_get ( ryb080i_t *ctx, uint8_t *cmd );
304
305#ifdef __cplusplus
306}
307#endif
308#endif // RYB080I_H
309
310 // ryb080i
311
312// ------------------------------------------------------------------------ END
#define RYB080I_TX_DRV_BUFFER_SIZE
RYB080I driver buffer size.
Definition ryb080i.h:109
#define RYB080I_RX_DRV_BUFFER_SIZE
Definition ryb080i.h:110
err_t ryb080i_init(ryb080i_t *ctx, ryb080i_cfg_t *cfg)
RYB080I initialization function.
void ryb080i_set_rst_pin(ryb080i_t *ctx, uint8_t state)
RYB080I set rst pin function.
void ryb080i_cmd_run(ryb080i_t *ctx, uint8_t *cmd)
RYB080I cmd run function.
void ryb080i_reset_device(ryb080i_t *ctx)
RYB080I reset device function.
void ryb080i_cfg_setup(ryb080i_cfg_t *cfg)
RYB080I configuration object setup function.
void ryb080i_cmd_set(ryb080i_t *ctx, uint8_t *cmd, uint8_t *param)
RYB080I cmd set function.
err_t ryb080i_generic_write(ryb080i_t *ctx, uint8_t *data_in, uint16_t len)
RYB080I data writing function.
void ryb080i_cmd_get(ryb080i_t *ctx, uint8_t *cmd)
RYB080I cmd get function.
err_t ryb080i_generic_read(ryb080i_t *ctx, uint8_t *data_out, uint16_t len)
RYB080I data reading function.
ryb080i_return_value_t
RYB080I Click return value data.
Definition ryb080i.h:182
@ RYB080I_ERROR_CMD
Definition ryb080i.h:186
@ RYB080I_ERROR
Definition ryb080i.h:184
@ RYB080I_OK
Definition ryb080i.h:183
@ RYB080I_ERROR_TIMEOUT
Definition ryb080i.h:185
RYB080I Click configuration object.
Definition ryb080i.h:160
uint32_t baud_rate
Definition ryb080i.h:169
bool uart_blocking
Definition ryb080i.h:170
uart_data_bits_t data_bit
Definition ryb080i.h:171
pin_name_t tx_pin
Definition ryb080i.h:163
pin_name_t rx_pin
Definition ryb080i.h:162
uart_stop_bits_t stop_bit
Definition ryb080i.h:173
uart_parity_t parity_bit
Definition ryb080i.h:172
pin_name_t rst
Definition ryb080i.h:166
RYB080I Click context object.
Definition ryb080i.h:141
uart_t uart
Definition ryb080i.h:146
digital_out_t rst
Definition ryb080i.h:143