Projeto teste do Programa de integracao com biblioteca SGAM_MDW !! Aqui visa um usuario que usa o projeto implementado para a placa NUCLEO F429ZI
Dependencies: sgam_mdw sgam_mdw_NUCLEOF429ZI_impl Cayenne-LPP
main_old.cpp
- Committer:
- AndersonIctus
- Date:
- 2019-07-20
- Revision:
- 34:fea430612423
- Parent:
- 31:8b734e4fb89b
File content as of revision 34:fea430612423:
// #include "mbed.h" // #include "sgam_mdw.h" // #include "ControlImpl.h" // #include "Gyroscope.h" // #include "CayenneLPP.h" // #include "LoRaWanComm.h" // #include "LoRaWANInterface.h" // #include "lora_radio_helper.h" // #define D_LOG(args...) printf(args) // // LORA WAN CONFIGS // #define TX_INTERVAL 10000 // #define MBED_CONF_LORA_APP_PORT 15 //15 // static uint8_t LORAWAN_DEV_EUI[] = { 0x00, 0x1C, 0x73, 0x4A, 0x55, 0x89, 0xAE, 0xC6 }; // static uint8_t LORAWAN_APP_EUI[] = { 0x70, 0xB3, 0xD5, 0x7E, 0xD0, 0x01, 0xD0, 0x2F }; // static uint8_t LORAWAN_APP_KEY[] = { 0x75, 0xC6, 0xF2, 0xFB, 0xEE, 0xA9, 0x82, 0x6C, 0xA0, 0xBD, 0xB9, 0x0F, 0xC9, 0xEC, 0xF7, 0x10 }; // // static uint32_t DEVADDR_1 = 0x2601177B; // // static uint8_t NWKSKEY_1[] = { 0x2A, 0xE9, 0x3F, 0x5E, 0x4C, 0x25, 0xDC, 0x34, 0x16, 0x82, 0x1B, 0xD1, 0x1A, 0x7F, 0xD0, 0xF6 }; // // static uint8_t APPSKEY_1[] = { 0x78, 0x59, 0x61, 0xBB, 0x6B, 0xB7, 0xDE, 0x57, 0x80, 0x74, 0xAF, 0xED, 0x10, 0xD7, 0x47, 0x18 }; // static void lora_event_handler(lorawan_event_t event); // static int16_t count_message; // EventQueue ev_queue; // static lorawan_app_callbacks_t callbacks; // ControlImpl ctrl; // Communication<LoraData>* comm = NULL; // int test_temperature(Control* control); // int test_gyroscope(Control* control); // int test_lorawan(Control* control); // int main() { // D_LOG("=============== INICIO ===============\r\n"); // int ret = 0; // Control* control = ctrl.getControler(); // control->initialize(); // ////////////////////////////////////////////////////////////////////////// // // 1 - Test Temnperature ... // // ret = test_temperature(control); // // 2 - Test Gyroscope ... // // ret = test_gyroscope(control); // // 3 - Test LoRaWAN // ret = test_lorawan(control); // ////////////////////////////////////////////////////////////////////////// // control->finalize(); // D_LOG("=============== FINAL ===============\r\n"); // return ret; // } // int test_temperature(Control* control) { // D_LOG("=============== TEMPERATURE ===============\r\n"); // Sensor<float>* temp = (Sensor<float>*) control->getSensor("Temperature"); // int count = 0; // D_LOG("## GET VALUES ....\r\n"); // while(count++ < 10) { // D_LOG("## Temp -> %f \r\n", *temp->getValue() ); // wait(1.0); // espera 1 segundo ! // } // return 1; // } // int test_gyroscope(Control* control) { // D_LOG("=============== GYROSCOPE ===============\r\n"); // Sensor<GyroscopeData>* gyro = (Sensor<GyroscopeData>*) control->getSensor("Gyroscope"); // int count = 0; // D_LOG("## GET VALUES ....\r\n"); // while(count++ < 10) { // GyroscopeData* data = gyro->getValue(); // printf("Gyro (X) => %d \r\n", data->gx); // printf("Gyro (Y) => %d \r\n", data->gy); // printf("Gyro (Z) => %d \r\n", data->gz); // printf("***********************************\r\n\r\n"); // wait(1); // espera 1 segundo ! // } // return 1; // } // int test_lorawan(Control* control) { // D_LOG("=============== LoRaWAN Comunication ===============\r\n"); // comm = (Communication<LoraData>*)control->getCommunication("LoRAWAN"); // //////////////////////////////////////////////////////////////////////////////////////////// // // 1 - Configura os callbacks do loran WAN e inicializa os dados !! // // Dados de Conexão // lorawan_connect_t connect_params; // connect_params.connect_type = LORAWAN_CONNECTION_OTAA; // connect_params.connection_u.otaa.dev_eui = LORAWAN_DEV_EUI; // connect_params.connection_u.otaa.app_eui = LORAWAN_APP_EUI; // connect_params.connection_u.otaa.app_key = LORAWAN_APP_KEY; // connect_params.connection_u.otaa.nb_trials = 10; // LoraData* data = new LoraData(&connect_params, (LoRaRadio*)&radio, &ev_queue ); // callbacks.events = mbed::callback(lora_event_handler); // data->prepareCallBack(callbacks); // // Flags de leitura !! // data->lora_port = MBED_CONF_LORA_APP_PORT; // ///////////////////////////////////////////////////////////////////////////////////////////// // // 2 - INICIALIZA A CONEXAO // if( comm->initialize(data) != TRUE) { // D_LOG("Inicialização falhou !!\r\n"); // return -1; // } // //////////////////////////////////////////////////////////////////////////////////////////// // // 3 - Tentar conectar // lorawan_status_t retcode = (lorawan_status_t) comm->connect(); // if (retcode == LORAWAN_STATUS_OK || retcode == LORAWAN_STATUS_CONNECT_IN_PROGRESS) { // printf("Connection - In Progress ...\r\n"); // } else { // printf("Connection error, code = %d \r\n", retcode); // return -1; // } // // make your event queue dispatching events forever // ev_queue.dispatch_forever(); // return 1; // } // /** // * Receive a message from the Network Server // */ // static void receive_message() // { // printf("receive_message()\n"); // LoraData* data = (LoraData*) comm->getData(); // data->read_write_flags = MSG_CONFIRMED_FLAG|MSG_UNCONFIRMED_FLAG; // uint8_t rx_buffer[50] = { 0 }; // int16_t retcode = comm->read( rx_buffer, sizeof(rx_buffer) ); // if (retcode < 0) { // printf("receive() - Error code %d \r\n", retcode); // return; // } // printf("RX Data (%d bytes): ", retcode); // for (uint8_t i = 0; i < retcode; i++) { // printf("%02x ", rx_buffer[i]); // } // printf("\r\n"); // } // /** // * Sends a message to the Network Server // */ // static void send_message() { // printf("send_message()\n"); // // YOUR CODE HERE // int16_t temperature = 10; // printf("temperature = (%d)\n", temperature); // CayenneLPP payload(50); // payload.addTemperature(1, temperature); // LoraData* data = (LoraData*) comm->getData(); // data->read_write_flags = MSG_UNCONFIRMED_FLAG; // int16_t retcode = comm->write(payload.getBuffer(), payload.getSize()); // printf("lorawan.send = retcode [%d]\n",retcode); // if (retcode < 0) { // retcode == LORAWAN_STATUS_WOULD_BLOCK // ? printf("send - Duty cycle violation\r\n") // : printf("send() - Error code %d \r\n", retcode); // if (retcode == LORAWAN_STATUS_NO_ACTIVE_SESSIONS) // printf("\r\n|-1017 - LORAWAN_STATUS_NO_ACTIVE_SESSIONS"); // if (retcode == LORAWAN_STATUS_WOULD_BLOCK) { //retry in 3 seconds // ev_queue.call_in(3000, send_message); // } else { // ev_queue.call_in(TX_INTERVAL, send_message); // } // return; // } // ev_queue.call_in(TX_INTERVAL, send_message); // receive_message(); // printf("%d bytes scheduled for transmission \r\n", retcode); // } // /** // * Event handler // */ // static void lora_event_handler(lorawan_event_t event) { // switch (event) { // case CONNECTED: // printf("# Connection - Successful \r\n"); // if (MBED_CONF_LORA_DUTY_CYCLE_ON) { // send_message(); // } else { // ev_queue.call_in(TX_INTERVAL, send_message); // } // break; // case DISCONNECTED: // ev_queue.break_dispatch(); // printf("# Disconnected Successfully \r\n"); // break; // case RX_DONE: // printf("# Received message from Network Server \r\n"); // receive_message(); // break; // case RX_TIMEOUT: // case RX_ERROR: // printf("# Error in reception - Code = %d \r\n", event); // break; // case TX_DONE: // count_message++; // printf("# Message Sent to Network Server - Count [%d] \r\n", count_message); // break; // case TX_TIMEOUT: // case TX_ERROR: // case TX_CRYPTO_ERROR: // case TX_SCHEDULING_ERROR: // printf("# Transmission Error - EventCode = %d \r\n", event); // break; // case JOIN_FAILURE: // printf("# OTAA Failed - Check Keys \r\n"); // break; // case UPLINK_REQUIRED: // printf("# Uplink required by NS \r\n"); // send_message(); // break; // default: // printf("# Unknown Event \r\n"); // // MBED_ASSERT("# Unknown Event"); // } // }