diff options
Diffstat (limited to 'trygvisio_soil_moisture.ino')
-rw-r--r-- | trygvisio_soil_moisture.ino | 96 |
1 files changed, 48 insertions, 48 deletions
diff --git a/trygvisio_soil_moisture.ino b/trygvisio_soil_moisture.ino index 59b0cf6..7306c05 100644 --- a/trygvisio_soil_moisture.ino +++ b/trygvisio_soil_moisture.ino @@ -15,15 +15,16 @@ static void setup_rf(); static void show_pipes(); static services_pipe_type_mapping_t services_pipe_type_mapping[NUMBER_OF_PIPES] = SERVICES_PIPE_TYPE_MAPPING_CONTENT; -static const hal_aci_data_t setup_msgs[NB_SETUP_MESSAGES] PROGMEM = SETUP_MESSAGES_CONTENT; +static const hal_aci_data_t setup_msgs[NB_SETUP_MESSAGES] PROGMEM = SETUP_MESSAGES_CONTENT; +// Pipes static const uint8_t sm_pipe_set = PIPE_SOIL_MOISTURE_SOIL_MOISTURE_CONTROL_SET; -static const uint8_t sm_pipe_tx = PIPE_SOIL_MOISTURE_SOIL_MOISTURE_CONTROL_TX; -static const uint8_t sm_pipe_rx = PIPE_SOIL_MOISTURE_SOIL_MOISTURE_CONTROL_RX_ACK_AUTO; +static const uint8_t sm_pipe_tx = PIPE_SOIL_MOISTURE_SOIL_MOISTURE_CONTROL_TX; +static const uint8_t sm_pipe_rx = PIPE_SOIL_MOISTURE_SOIL_MOISTURE_CONTROL_RX_ACK_AUTO; static struct aci_state_t aci_state; static hal_aci_evt_t aci_data; -static boolean timing_change_done = false; +static boolean timing_change_done = false; void __ble_assert(const char *file, uint16_t line) { @@ -32,7 +33,7 @@ void __ble_assert(const char *file, uint16_t line) Debug::print(": "); Debug::print(line); Debug::print("\n"); - while(1); + while (1) {}; } #if defined(__AVR_ATmega32U4__) @@ -50,7 +51,7 @@ void setup() { // As the F_CPU = 8000000UL, the USB core make the PLLCSR = 0x02 // But the external xtal is 16000000Hz, so correct it here. PLLCSR |= 0x10; // Need 16 MHz xtal - while (!(PLLCSR & (1<<PLOCK))); // wait for lock pll + while (!(PLLCSR & (1<<PLOCK))) {} // wait for lock pll #elif defined(BLEND_MICRO_16MHZ) // The CPU clock in bootloader is 8MHz, change to 16MHz for sketches to run (i.e. overclock running at 3.3v). CLKPR = 0x80; @@ -63,8 +64,7 @@ void setup() { // Wait until the serial port is available (useful only for the Leonardo) // As the Leonardo board is not reseted every time you open the Serial Monitor #if defined (__AVR_ATmega32U4__) - while(!Serial) { - } + while (!Serial) {} delay(1000); #elif defined(__PIC32MX__) @@ -86,9 +86,9 @@ static void setup_rf() { else { aci_state.aci_setup_info.services_pipe_type_mapping = NULL; } - aci_state.aci_setup_info.number_of_pipes = NUMBER_OF_PIPES; - aci_state.aci_setup_info.setup_msgs = (hal_aci_data_t*)setup_msgs; - aci_state.aci_setup_info.num_setup_msgs = NB_SETUP_MESSAGES; + aci_state.aci_setup_info.number_of_pipes = NUMBER_OF_PIPES; + aci_state.aci_setup_info.setup_msgs = (hal_aci_data_t*)setup_msgs; + aci_state.aci_setup_info.num_setup_msgs = NB_SETUP_MESSAGES; // Tell the ACI library, the MCU to nRF8001 pin connections. // The Active pin is optional and can be marked UNUSED @@ -118,7 +118,7 @@ static void setup_rf() { Debug::println(F("lib_aci_init done")); } -static bool rf_started = false; +static bool rf_started = false; static bool setup_required = false; static void aci_loop() { @@ -130,7 +130,7 @@ static void aci_loop() { aci_evt_t * aci_evt; aci_evt = &aci_data.evt; - switch(aci_evt->evt_opcode) { + switch (aci_evt->evt_opcode) { case ACI_EVT_DEVICE_STARTED: Debug::println(F("ACI_EVT_DEVICE_STARTED")); aci_state.data_credit_total = aci_evt->params.device_started.credit_available; @@ -138,10 +138,10 @@ static void aci_loop() { Debug::print(F("aci_state.data_credit_total=")); Debug::println(aci_state.data_credit_total, DEC); - switch(aci_evt->params.device_started.device_mode) { + switch (aci_evt->params.device_started.device_mode) { case ACI_DEVICE_SETUP: Debug::println(F("ACI_DEVICE_SETUP")); - rf_started = true; + rf_started = true; setup_required = true; break; @@ -151,7 +151,7 @@ static void aci_loop() { delay(20); // Magic number used to make sure the HW error event is handled correctly. } else { - lib_aci_connect(180/* in seconds */, 0x0050 /* advertising interval 50ms*/); + lib_aci_connect(180 /* in seconds */, 0x0050 /* advertising interval 50ms*/); // lib_aci_broadcast(10/* in seconds */, 0x0100 /* advertising interval 100ms */); // ret = lib_aci_open_adv_pipe(PIPE_BATTERY_BATTERY_LEVEL_BROADCAST); // ret = lib_aci_open_adv_pipe(PIPE_SOIL_MOISTURE_SOIL_MOISTURE_LEVEL_BROADCAST); @@ -213,18 +213,18 @@ static void aci_loop() { // bit 3-7: reserved // Reference: https://developer.bluetooth.org/gatt/characteristics/Pages/CharacteristicViewer.aspx?u=org.bluetooth.characteristic.temperature_measurement.xml struct { - uint8_t flags; + uint8_t flags; uint32_t value; // time stamp // temperature type } temperature_measurement = { - 0, - exponent | (t & 0x00FFFFFF) + 0, + exponent | (t & 0x00FFFFFF) }; lib_aci_set_local_data(&aci_state, PIPE_SOIL_MOISTURE_INTERMEDIATE_TEMPERATURE_SET, - (uint8_t *) &temperature_measurement, - sizeof(temperature_measurement)); + (uint8_t *) &temperature_measurement, + sizeof(temperature_measurement)); } break; @@ -256,7 +256,7 @@ static void aci_loop() { case ACI_EVT_DISCONNECTED: Debug::println(F("ACI_EVT_DISCONNECTED")); - lib_aci_connect(180/* in seconds */, 0x0100 /* advertising interval 100ms*/); + lib_aci_connect(180 /* in seconds */, 0x0100 /* advertising interval 100ms*/); Debug::println(F("Advertising started")); sm_on_disconnect(); @@ -301,11 +301,11 @@ static void aci_loop() { Debug::print(F("HW error: ")); Debug::println(aci_evt->params.hw_error.line_num, DEC); - for(uint8_t counter = 0; counter <= (aci_evt->len - 3); counter++) { + for (uint8_t counter = 0; counter <= (aci_evt->len - 3); counter++) { Serial.write(aci_evt->params.hw_error.file_name[counter]); //uint8_t file_name[20]; } Debug::println(); - lib_aci_connect(180/* in seconds */, 0x0050 /* advertising interval 50ms*/); + lib_aci_connect(180 /* in seconds */, 0x0050 /* advertising interval 50ms*/); Debug::println(F("Advertising started")); break; @@ -365,7 +365,7 @@ void loop() { last = now; if (!rf_started) { - static int count = 0; + static int count = 0; static bool reset_attempted = false; count++; @@ -412,30 +412,30 @@ static void show_pipes() { } } /* -boolean tx_moisture(sm_res *res) { - static const uint8_t pipe = PIPE_SOIL_MOISTURE_SOIL_MOISTURE_LEVEL_TX; - uint8_t *data = (uint8_t *)res; - uint8_t len = 2 + res->len; - boolean status = false; - - boolean available = lib_aci_is_pipe_available(&aci_state, pipe); - - Debug::print(F("tx_soil_moisture, len=")); - Debug::println(len, DEC); - Debug::print(F("aci_state.data_credit_available=")); - Debug::println(aci_state.data_credit_available, DEC); - Debug::print(F("available=")); - Debug::println(available, DEC); - - if (available && aci_state.data_credit_available > 0) { + boolean tx_moisture(sm_res *res) { + static const uint8_t pipe = PIPE_SOIL_MOISTURE_SOIL_MOISTURE_LEVEL_TX; + uint8_t *data = (uint8_t *)res; + uint8_t len = 2 + res->len; + boolean status = false; + + boolean available = lib_aci_is_pipe_available(&aci_state, pipe); + + Debug::print(F("tx_soil_moisture, len=")); + Debug::println(len, DEC); + Debug::print(F("aci_state.data_credit_available=")); + Debug::println(aci_state.data_credit_available, DEC); + Debug::print(F("available=")); + Debug::println(available, DEC); + + if (available && aci_state.data_credit_available > 0) { status = lib_aci_send_data(pipe, data, len); if (status) { aci_state.data_credit_available--; } - } - return status; -} -*/ + } + return status; + } + */ void notify_battery_level(uint8_t value) { static const uint8_t pipe = PIPE_BATTERY_BATTERY_LEVEL_SET; @@ -447,10 +447,10 @@ void notify_battery_level(uint8_t value) { lib_aci_send_data(pipe, &value, 1); } -void notify_soil_moisture(const struct sm_res& res, uint8_t body_len) { +void notify_soil_moisture(const struct sm_res &res, uint8_t body_len) { uint8_t *data = (uint8_t *)&res; - uint8_t len = SM_RES_HEADER_SIZE + body_len; + uint8_t len = SM_RES_HEADER_SIZE + body_len; // Debug::print(F("notify_soil_moisture, code=")); // Debug::print(res.code, DEC); @@ -473,7 +473,7 @@ void notify_soil_moisture(const struct sm_res& res, uint8_t body_len) { } #if SM_DEBUG == 1 -Debug::println("write_res"); + Debug::println("write_res"); write_res(res); #endif |