You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by ld...@apache.org on 2020/10/07 10:02:07 UTC
[plc4x] 12/19: Update service list for canopen.
This is an automated email from the ASF dual-hosted git repository.
ldywicki pushed a commit to branch feature/socketcan
in repository https://gitbox.apache.org/repos/asf/plc4x.git
commit ea5b953c5ebdf12fc34fae0daa71c6e2cacb6fb9
Author: Ćukasz Dywicki <lu...@code-house.org>
AuthorDate: Tue Sep 1 11:42:00 2020 +0200
Update service list for canopen.
---
.../can/src/main/resources/protocols/can/canopen.mspec | 9 +++++++++
.../plc4x/java/can/protocol/CANOpenProtocolLogic.java | 4 ++++
.../test/resources/testsuite/CANOpenPayloadTestSuite.xml | 14 ++++++++++++++
3 files changed, 27 insertions(+)
diff --git a/protocols/can/src/main/resources/protocols/can/canopen.mspec b/protocols/can/src/main/resources/protocols/can/canopen.mspec
index d5160c6..0c4f175 100644
--- a/protocols/can/src/main/resources/protocols/can/canopen.mspec
+++ b/protocols/can/src/main/resources/protocols/can/canopen.mspec
@@ -19,9 +19,18 @@
[enum uint 4 'CANOpenService'
['0b0000' BROADCAST ]
+ ['0b0001' SYNC ]
['0b1110' NMT ]
['0b1100' SDO_REQUEST ]
['0b1011' SDO_RESPONSE]
+ ['0b0011' TPDO_1]
+ ['0b0100' RPDO_1]
+ ['0b0101' TPDO_2]
+ ['0b0110' RPDO_2]
+ ['0b0111' TPDO_3]
+ ['0b1000' RPDO_3]
+ ['0b1001' TPDO_4]
+ ['0b1010' RPDO_4]
]
[enum uint 8 'NMTStateRequest'
diff --git a/sandbox/test-java-can-driver/src/main/java/org/apache/plc4x/java/can/protocol/CANOpenProtocolLogic.java b/sandbox/test-java-can-driver/src/main/java/org/apache/plc4x/java/can/protocol/CANOpenProtocolLogic.java
index 9cc2fdb..0090e0e 100644
--- a/sandbox/test-java-can-driver/src/main/java/org/apache/plc4x/java/can/protocol/CANOpenProtocolLogic.java
+++ b/sandbox/test-java-can-driver/src/main/java/org/apache/plc4x/java/can/protocol/CANOpenProtocolLogic.java
@@ -114,4 +114,8 @@ public class CANOpenProtocolLogic extends Plc4xProtocolBase<SocketCANFrame> impl
(service.getValue() << 16 ) & 0x00ff0000;
}
+ private CANOpenService serviceId(int nodeId) {
+ // form 32 bit socketcan identifier
+ return CANOpenService.valueOf((byte) (nodeId >> 7));
+ }
}
diff --git a/sandbox/test-java-can-driver/src/test/resources/testsuite/CANOpenPayloadTestSuite.xml b/sandbox/test-java-can-driver/src/test/resources/testsuite/CANOpenPayloadTestSuite.xml
index d7c1a33..ecf224b 100644
--- a/sandbox/test-java-can-driver/src/test/resources/testsuite/CANOpenPayloadTestSuite.xml
+++ b/sandbox/test-java-can-driver/src/test/resources/testsuite/CANOpenPayloadTestSuite.xml
@@ -50,6 +50,20 @@
</testcase>
<testcase>
+ <name>Network heartbeat, payload: 05</name>
+ <raw>05</raw>
+ <root-type>CANOpenPayload</root-type>
+ <parser-arguments>
+ <arg1>NMT</arg1>
+ </parser-arguments>
+ <xml>
+ <CANOpenNetworkPayload className="org.apache.plc4x.java.canopen.readwrite.CANOpenNetworkPayload">
+ <state>OPERATIONAL</state>
+ </CANOpenNetworkPayload>
+ </xml>
+ </testcase>
+
+ <testcase>
<name>SDO request, payload: 4317100000000000</name>
<raw>4317100000000000</raw>
<root-type>CANOpenPayload</root-type>