|
|
@@ -9,13 +9,12 @@
|
|
|
#include <NbusSlave.h>
|
|
|
|
|
|
NbusSlave::NbusSlave() {
|
|
|
- _address = 0;
|
|
|
_communicator = NULL;
|
|
|
_pdu.ma = 0;
|
|
|
+ _pdu.sa = 0;
|
|
|
}
|
|
|
|
|
|
NbusSlave::NbusSlave(uint8_t address, NbusCommunicator *comm) {
|
|
|
- _address = address;
|
|
|
_communicator = comm;
|
|
|
_pdu.ma = address;
|
|
|
}
|
|
|
@@ -29,8 +28,7 @@ void NbusSlave::setCommunicator(NbusCommunicator* comm){
|
|
|
}
|
|
|
|
|
|
void NbusSlave::setAddress(uint8_t address){
|
|
|
- _address = address;
|
|
|
- _pdu.ma = _address;
|
|
|
+ _pdu.ma = address;
|
|
|
}
|
|
|
|
|
|
uint8_t NbusSlave::getModuleAddress(){
|
|
|
@@ -42,16 +40,17 @@ uint8_t NbusSlave::getSensorAddress(){
|
|
|
}
|
|
|
|
|
|
bool NbusSlave::isActive(){
|
|
|
- return _communicator != NULL && _address != 0;
|
|
|
+// return _communicator != NULL;
|
|
|
+ return _communicator != NULL && _pdu.ma != 0;
|
|
|
}
|
|
|
|
|
|
-DataFrame* NbusSlave::nbus_echo() {
|
|
|
+DataFrame* NbusSlave::nbus_echo(uint8_t *echo_data, uint8_t size) {
|
|
|
_pdu.sa = SLAVE_ADDRESS_MODULE;
|
|
|
_pdu.fc = FC_ECHO;
|
|
|
- _sensor_cache[0] = 60 + _pdu.ma;
|
|
|
- _sensor_cache[1] = 61 + _pdu.ma;
|
|
|
- _sensor_cache[2] = 62 + _pdu.ma;
|
|
|
- _sensor_cache[3] = 63 + _pdu.ma;
|
|
|
+ for(uint32_t i=0;i<size;i++){
|
|
|
+ _sensor_cache[i] = echo_data[i];
|
|
|
+ }
|
|
|
+
|
|
|
_sensor_count = 0;
|
|
|
return _communicator->sendAndReceive(&_pdu, _sensor_cache, 4);
|
|
|
}
|