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)