This repository has been archived by the owner on Apr 11, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
main.cpp
62 lines (47 loc) · 1.67 KB
/
main.cpp
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
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
//! \file
//! \brief HM-10 usage example
// For ecl::hm10_driver
#include <ecl/core_generated.hpp>
// For ecl::cout and ecl::endl
#include <ecl/iostream.hpp>
// Basic, low-level initialization
extern "C" void board_init()
{
// Here, we only initialize GPIOs.
gpio_init_generated();
}
int main()
{
// Data to send and its size.
uint8_t tx[] = "Hello, World!\r\n";
// Buffer for incoming data.
uint8_t rx[256];
// Greeting.
ecl::cout << "Starting HM-10 Bluetooth example..." << ecl::endl;
// Initialize HM10 driver.
ecl::hm10_driver::init();
// Set PIN to 000000 during pairing.
ecl::hm10_driver::set_pin(0);
while (1) {
size_t tx_size = sizeof(tx);
size_t rx_size = sizeof(rx) - 1; // Reserve one byte for NUL-terminator
// Send data via Bluetooth.
// When smartphone connected, data will be displayed as plain string.
ecl::hm10_driver::data_send(tx, tx_size);
// Display how much data was sent.
ecl::cout << "Bytes sent: " << tx_size << ecl::endl;
// Receive some data
ecl::hm10_driver::data_recv(rx, rx_size, std::chrono::seconds(5));
rx[rx_size] = 0; // NUL-terminate payload
// Display how much data was received.
ecl::cout << "Bytes received: " << rx_size << ecl::endl;
if (rx_size > 0) {
// Display payload
ecl::cout << reinterpret_cast<const char*>(rx) << ecl::endl;
}
}
return 0;
}