Compare commits
2 Commits
bf14cbd8df
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 120bd5f421 | |||
| 38975d27bd |
30
main.c
30
main.c
@@ -44,12 +44,21 @@ void modbusGet(void) {
|
||||
case fcReadInputRegisters:
|
||||
if(modbusRequestedAddress() < 100)
|
||||
modbusExchangeRegisters((void *)inStates,0,nrOfInputs/16);
|
||||
else if(modbusRequestedAddress() < 200)
|
||||
modbusExchangeRegisters((void *)inStatesBothEdges,100,nrOfInputs/16);
|
||||
else if(modbusRequestedAddress() < 300)
|
||||
modbusExchangeRegisters((void *)inStatesFallingEdge,200,nrOfInputs/16);
|
||||
else if(modbusRequestedAddress() < 400)
|
||||
modbusExchangeRegisters((void *)inStatesRisingEdge,300,nrOfInputs/16);
|
||||
else if(modbusRequestedAddress() < 200){
|
||||
modbusExchangeRegisters((void *)&inputEdgesBoth,100,nrOfInputs/16);
|
||||
for(uint16_t i = modbusDataLocation - 100; i < modbusDataLocation-100+(modbusDataAmount*16); i++)
|
||||
inputEdgesBoth &= ~(1 << i);
|
||||
}
|
||||
else if(modbusRequestedAddress() < 300){
|
||||
modbusExchangeRegisters((void *)&inputEdgesFalling,200,nrOfInputs/16);
|
||||
for(uint16_t i = modbusDataLocation - 200; i < modbusDataLocation-200+(modbusDataAmount*16); i++)
|
||||
inputEdgesFalling &= ~(1 << i);
|
||||
}
|
||||
else if(modbusRequestedAddress() < 400){
|
||||
modbusExchangeRegisters((void *)&inputEdgesRising,300,nrOfInputs/16);
|
||||
for(uint16_t i = modbusDataLocation - 300; i < modbusDataLocation-300+(modbusDataAmount*16); i++)
|
||||
inputEdgesRising &= ~(1 << i);
|
||||
}
|
||||
break;
|
||||
|
||||
case fcReadInputStatus:
|
||||
@@ -79,6 +88,15 @@ void modbusGet(void) {
|
||||
modbusExchangeBits(outStates,0,nrOfOutputs);
|
||||
else if(modbusRequestedAddress() < 200)
|
||||
modbusExchangeBits(outStatesBlinking,100,nrOfOutputs);
|
||||
else if(modbusRequestedAddress() < 300){
|
||||
uint8_t outStatesToggle[sizeof(outStates)];
|
||||
memset(outStatesToggle, 0, sizeof(outStatesToggle));
|
||||
modbusExchangeBits(outStatesToggle,200,nrOfOutputs);
|
||||
for(uint8_t i=0; i<sizeof(outStates); i++){
|
||||
outStates[i] ^= outStatesToggle[i];
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
Reference in New Issue
Block a user