123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- #include "modbus.h"
- #include "message_queue.h"
- CModbusTcpSensor::CModbusTcpSensor(CMessageQueue* q) :_message(q)
- {
- _run = false;
- }
- void CModbusTcpSensor::SetModbusTcpSensor(SensorModbusTcp<CModbusTcpSensor>* modbus)
- {
- _modbus = modbus;
- }
- void CModbusTcpSensor::Start()
- {
- if(!_run)
- {
- _thread = std::thread(&CModbusTcpSensor::Run, this);
- _run = true;
- }
- //_modbus->read_registers(0x28,0x04);
- }
- void CModbusTcpSensor::Run()
- {
-
- while (_run)
- {
- _modbus->read_input_registers(0x10A,1);
- std::this_thread::sleep_for(std::chrono::milliseconds(1000));
- }
- }
- void CModbusTcpSensor::Stop()
- {
- if (_run)
- {
- _run = false;
- _thread.join();
- }
-
- }
- void CModbusTcpSensor::Notify(uint16_t * buffer)
- {
- if (_run)
- {
- _message->_Radardata.r7 = buffer[0];
- _message->_Radardata.r8 = buffer[1];
- }
- }
|