You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by cd...@apache.org on 2020/10/12 20:16:38 UTC
[plc4x] branch feature/plc4go updated: - Manually made the S7
driver compile
This is an automated email from the ASF dual-hosted git repository.
cdutz pushed a commit to branch feature/plc4go
in repository https://gitbox.apache.org/repos/asf/plc4x.git
The following commit(s) were added to refs/heads/feature/plc4go by this push:
new cdc1484 - Manually made the S7 driver compile
cdc1484 is described below
commit cdc1484086ff3082040c97539dd78898c7db185e
Author: Christofer Dutz <ch...@c-ware.de>
AuthorDate: Mon Oct 12 16:53:06 2020 +0200
- Manually made the S7 driver compile
---
sandbox/plc4go/cmd/main/drivers/s7.go | 10 ++++++++--
sandbox/plc4go/cmd/main/main.go | 2 +-
.../internal/plc4go/s7/readwrite/model/S7VarPayloadDataItem.go | 7 ++++---
3 files changed, 13 insertions(+), 6 deletions(-)
diff --git a/sandbox/plc4go/cmd/main/drivers/s7.go b/sandbox/plc4go/cmd/main/drivers/s7.go
index a3f2691..8511af3 100644
--- a/sandbox/plc4go/cmd/main/drivers/s7.go
+++ b/sandbox/plc4go/cmd/main/drivers/s7.go
@@ -15,7 +15,13 @@
//
package drivers
-/*func S7() {
+import (
+ "encoding/hex"
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/s7/readwrite/model"
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+func S7() {
request, err := hex.DecodeString("000a00000006010300000004")
if err != nil {
// Output an error ...
@@ -29,4 +35,4 @@ package drivers
// Output success ...
}
-}*/
+}
diff --git a/sandbox/plc4go/cmd/main/main.go b/sandbox/plc4go/cmd/main/main.go
index c7873f4..683199c 100644
--- a/sandbox/plc4go/cmd/main/main.go
+++ b/sandbox/plc4go/cmd/main/main.go
@@ -23,5 +23,5 @@ func main() {
drivers.BacnetIp()
drivers.KnxNetIp()
drivers.Modbus()
- //drivers.S7()
+ drivers.S7()
}
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7VarPayloadDataItem.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7VarPayloadDataItem.go
index f67b838..f99c7cf 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7VarPayloadDataItem.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7VarPayloadDataItem.go
@@ -20,6 +20,7 @@ package model
import (
"errors"
+ "math"
"plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
)
@@ -111,8 +112,8 @@ func S7VarPayloadDataItemParse(io spi.ReadBuffer, lastItem bool) (spi.Message, e
var data []int8
// Count array
{
- data := make([]int8, spi.InlineIf(transportSize.sizeInBits, uint16(CEIL(uint16(dataLength)/uint16(uint16(8.0)))), uint16(dataLength)))
- for curItem := uint16(0); curItem < uint16(spi.InlineIf(transportSize.sizeInBits, uint16(CEIL(uint16(dataLength)/uint16(uint16(8.0)))), uint16(dataLength))); curItem++ {
+ data := make([]int8, spi.InlineIf(transportSize.GetSizeInBits(), uint16(math.Ceil(float64(dataLength)/float64(uint16(8.0)))), uint16(dataLength)))
+ for curItem := uint16(0); curItem < uint16(spi.InlineIf(transportSize.GetSizeInBits(), uint16(math.Ceil(float64(dataLength)/float64(uint16(8.0)))), uint16(dataLength))); curItem++ {
data = append(data, io.ReadInt8(8))
}
@@ -142,7 +143,7 @@ func (m S7VarPayloadDataItem) Serialize(io spi.WriteBuffer, lastItem bool) {
transportSize.Serialize(io)
// Implicit Field (dataLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- dataLength := uint16(uint16(uint16(len(m.data))) * uint16(uint16(spi.InlineIf(bool(bool((m.transportSize) == (DataTransportSize_BIT))), uint16(uint16(1)), uint16(uint16(spi.InlineIf(m.transportSize.sizeInBits, uint16(uint16(8)), uint16(uint16(1)))))))))
+ dataLength := uint16(uint16(uint16(len(m.data))) * uint16(uint16(spi.InlineIf(bool(bool((m.transportSize) == (DataTransportSize_BIT))), uint16(uint16(1)), uint16(uint16(spi.InlineIf(m.transportSize.GetSizeInBits(), uint16(uint16(8)), uint16(uint16(1)))))))))
io.WriteUint16(16, (dataLength))
// Array Field (data)