teste de publish
Dependencies: DS1820 HighSpeedAnalogIn devices mbed
Diff: modbusMaster1.cpp
- Revision:
- 25:a6da63ed025b
- Parent:
- 18:1eefda1f7736
- Child:
- 26:c246eacf6815
--- a/modbusMaster1.cpp Wed Feb 07 23:05:36 2018 +0000 +++ b/modbusMaster1.cpp Mon Apr 16 12:30:29 2018 +0000 @@ -12,6 +12,7 @@ }modBusFunctions; bool modBusMaster1::pacoteEmEspera; +uint16_t modBusMaster1::MODBUS_TIMEOUT; bool modBusMaster1::startThreadModBusMaster; Serial *modBusMaster1::serModBus; DigitalOut *modBusMaster1::de; @@ -30,14 +31,14 @@ uint16_t crc_calculado; uint16_t crc_lido; - #ifdef modbusDebug - //Lido resposta DEBUG - pc.printf("Lido de resposta modbus <"); - for(crc_lido = 0; crc_lido < modBusMaster1::index; crc_lido++){ - pc.printf("%02X ",modBusMaster1::buffer[crc_lido]); + if(debug){ + //Lido resposta DEBUG + pc.printf("Lido de resposta modbus <"); + for(crc_lido = 0; crc_lido < modBusMaster1::index; crc_lido++){ + pc.printf("%02X ",modBusMaster1::buffer[crc_lido]); + } + pc.printf(">.\n"); } - pc.printf(">.\n"); - #endif if(modBusMaster1::index<3){ modBusMaster1::pacoteEmEspera=false; return; @@ -80,13 +81,17 @@ *modBusMaster1::de = 0; modBusMaster1::serModBus->attach(&modBusMaster1::processaCaractere); modBusMaster1::serModBus->baud(baud); - modBusMaster1::pacoteEmEspera = false; - modBusMaster1::MODBUS_SERIAL_BAUD = baud; - + modBusMaster1::pacoteEmEspera = false; //Criando timer_pacote modBusMaster1::timer_pacote = osTimerCreate(osTimer(timerProcessaPacoteModBusMaster1),osTimerOnce,NULL); } +void modBusMaster1::setBaud(uint32_t baud){ + modBusMaster1::serModBus->baud(baud); +} + + + void modBusMaster1::processaCaractere(){ uint32_t RBR = LPC_UART1->RBR; //Reset RBR interrupt flag e captura o caractere entrante modBusMaster1::buffer[modBusMaster1::index]=RBR; @@ -101,16 +106,16 @@ } uint16_t modBusMaster1::sendFrame(uint16_t tamBytes){ - uint16_t timeout = 500; + uint16_t timeout = modBusMaster1::MODBUS_TIMEOUT; uint16_t i; - #ifdef modbusDebug - //DEBUG Mostrando o que é enviado via modbus - pc.printf("Frame enviado (hexa) <"); - for(i=0;i<tamBytes;i++){ - pc.printf("%02x ",modBusMaster1::buffer[i]); - } - pc.printf(">.\n"); - #endif + if(debug){ + //DEBUG Mostrando o que é enviado via modbus + pc.printf("Frame enviado (hexa) <"); + for(i=0;i<tamBytes;i++){ + pc.printf("%02x ",modBusMaster1::buffer[i]); + } + pc.printf(">.\n"); + } osDelay(5);