Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/modbusSlave.h
Original file line number Diff line number Diff line change
Expand Up @@ -46,13 +46,15 @@ class slave {
return C.at(_coilAddress);
} else {
ofLogError("ofxModbusTCP Slave:"+ofToString(idNumber)+" on "+masterIP)<<"Get Slave Coil Exceeds Size";
return 0;
}
}
int getRegister (int _registerAddress) {
if (_registerAddress < R.size()) {
return R.at(_registerAddress);
} else {
ofLogError("ofxModbusTCP Slave:"+ofToString(idNumber)+" on "+masterIP)<<"Get Slave Register Exceeds Size";
return 0;
}
}

Expand Down
13 changes: 13 additions & 0 deletions src/ofxModbusTcpClient.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -70,12 +70,21 @@ void ofxModbusTcpClient::setup(string _ip, int _numberOfSlaves) {
ofLogVerbose("ofxModbusTCP IP:"+ip)<<"Setup with "<<numberOfSlaves<<" slaves";
setupSlaves();
}

void ofxModbusTcpClient::setup(string _ip) {
ip = _ip;
numberOfSlaves = 1;
ofLogVerbose("ofxModbusTCP IP:"+ip)<<"Setup with "<<numberOfSlaves<<" slaves";
setupSlaves();
}
void ofxModbusTcpClient::setup(string _ip, int _numberOfSlaves, int _port) {
ip = _ip;
port = _port;
numberOfSlaves = _numberOfSlaves;
if (numberOfSlaves == 0 || numberOfSlaves > 247) { numberOfSlaves = 1; }
ofLogVerbose("ofxModbusTCP IP:"+ip)<<"Setup with "<<numberOfSlaves<<" slaves";
setupSlaves();
}
void ofxModbusTcpClient::setupSlaves() {
for (int i = 0; i<=numberOfSlaves; i++) {
slaves.push_back(new slave(i+1, numOfCoils, numOfRegisters));
Expand Down Expand Up @@ -362,6 +371,8 @@ bool ofxModbusTcpClient::getCoil(int _id, int _startAddress) {
if (enabled) {
if (_id>0 && _id < slaves.size() && _startAddress < numOfCoils) {
return slaves.at(_id-1)->getCoil(_startAddress);
} else {
return false;
}
} else {
return false;
Expand All @@ -371,6 +382,8 @@ int ofxModbusTcpClient::getRegister(int _id, int _startAddress) {
if (enabled ) {
if (_id>0 && _id < slaves.size() && _startAddress < numOfRegisters) {
return slaves.at(_id-1)->getRegister(_startAddress);
} else {
return 0;
}
} else {
return 0;
Expand Down
1 change: 1 addition & 0 deletions src/ofxModbusTcpClient.h
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ class ofxModbusTcpClient : public ofThread {

void setup(string _ip, int _numberOfSlaves);
void setup(string _ip);
void setup(string _ip, int _numberOfSlaves, int _port);

void connect();
void disconnect();
Expand Down