diff --git a/Modbus-CAPL/include/CAPL/PollingModbusClient.can b/Modbus-CAPL/include/CAPL/PollingModbusClient.can index 98dc343..e44725c 100644 --- a/Modbus-CAPL/include/CAPL/PollingModbusClient.can +++ b/Modbus-CAPL/include/CAPL/PollingModbusClient.can @@ -169,15 +169,15 @@ void OnModbusReadRegistersSuccess(struct ModbusResReceiveRegisters mbres, struct } // This method gets called when a bit was set successfully. -void OnModbusWriteBitSuccess(struct ModbusResConfirmSingle mbc){} +void OnModbusWriteBitSuccess(struct ModbusResConfirmSingle mbres){} // This method gets called when a register was set successsfully. -void OnModbusWriteRegisterSuccess(struct ModbusResConfirmSingle mbc){} +void OnModbusWriteRegisterSuccess(struct ModbusResConfirmSingle mbres){} // This method gets called when multiple bits were set successfully. -void OnModbusWriteBitsSuccess(struct ModbusResConfirmMultiple mbc){} +void OnModbusWriteBitsSuccess(struct ModbusResConfirmMultiple mbres){} // This method gets called when multiple registers were set successfully. -void OnModbusWriteRegistersSuccess(struct ModbusResConfirmMultiple mbc){} +void OnModbusWriteRegistersSuccess(struct ModbusResConfirmMultiple mbres){} // This method gets called when a mask was applied successfully. -void OnModbusWriteMasksSuccess(struct ModbusResConfirmMasks mbc){} +void OnModbusWriteMasksSuccess(struct ModbusResConfirmMasks mbres){} // This method gets called when the Modbus Client panics (saying a fatal error occured). diff --git a/Modbus-CAPL/include/CAPL/include/ModbusClient.cin b/Modbus-CAPL/include/CAPL/include/ModbusClient.cin index 4f78118..80932e2 100644 --- a/Modbus-CAPL/include/CAPL/include/ModbusClient.cin +++ b/Modbus-CAPL/include/CAPL/include/ModbusClient.cin @@ -386,11 +386,7 @@ void ModbusWriteBits(word address, long count, byte values[]) dataLength = _ceil(curCount / 8.0); overallLength = maxLength - gMaxBitsPerWrite/8 + dataLength; } - if (curCount == 1) - { - ModbusWriteBit(address+offset, values[offset/8]); - return; - } + _ModbusMakeHeader(mbreq.Header, overallLength, funcCode); mbreq.Address = address+offset; // [2] Output address @@ -500,12 +496,6 @@ void ModbusWriteRegisters(word address, long count, word values[]) dataLength = 2 * curCount; overallLength = maxLength - 2*gMaxRegsPerWrite + dataLength; - if (curCount == 1) - { - ModbusWriteRegister(address, values[offset]); - return; - } - _ModbusMakeHeader(mbreq.Header, overallLength, funcCode); mbreq.Address = address+offset; // [2] Output address @@ -514,8 +504,8 @@ void ModbusWriteRegisters(word address, long count, word values[]) for (i = 0; i < curCount; i++) mbreq.Data[i] = values[i+offset]; - for ( ; i < gMaxRegsPerWrite; i++) // do we need this? - mbreq.Data[i] = 0; + //for ( ; i < gMaxRegsPerWrite; i++) // do we need this? + // mbreq.Data[i] = 0; // I'd say that the Modbus server will stop when it has read curCount values memcpy_h2n(buffer, mbreq); _ModbusSend(buffer, overallLength, mbreq.Header.TxID); @@ -767,15 +757,15 @@ void _OnModbusReceive2OnePacket(byte buffer[], int offset, struct ModbusApHeader return; //write("Received TxID: %d", mbap.TxID); - memcpy(gQueueAck[mbap.TxID], gQueueSent[mbap.TxID]); + memcpy(gQueueAck[mbap.TxID], gQueueSent[mbap.TxID]); // Move to acknowledge queue gQueueSent.Remove(mbap.TxID); - if (mbap.FuncCode > 0x80) // Oh no, we got a exception! + if (mbap.FuncCode > 0x80) // Oh no, we got a exception! _OnModbusReceive2Exceptions(buffer[offset+08], mbap); - else // Ok, everything is alright + else // Ok, everything is alright _OnModbusReceive2Success(buffer, mbap, offset, length); - gQueueAck.Remove(mbap.TxID); // Remove from acknowledge queue + gQueueAck.Remove(mbap.TxID); // Remove from acknowledge queue } /// <-OnModbusReceive>