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 2022/08/24 16:12:14 UTC

[plc4x] 05/12: chore(plc4j/api): Added new versions of PlcValueType, PlcResponseCode, PlcSubscriptionType.

This is an automated email from the ASF dual-hosted git repository.

cdutz pushed a commit to branch feature/ads-symbol-discovery
in repository https://gitbox.apache.org/repos/asf/plc4x.git

commit 73a6d8e2a91c297568de2d2b5ce114d83675055e
Author: Christofer Dutz <ch...@rivian.com>
AuthorDate: Wed Aug 24 08:54:46 2022 +0200

    chore(plc4j/api): Added new versions of PlcValueType, PlcResponseCode, PlcSubscriptionType.
---
 .../plc4x/java/api/types/PlcResponseCode.java      | 49 ++++++++++---
 .../plc4x/java/api/types/PlcSubscriptionType.java  | 44 +++++++-----
 .../apache/plc4x/java/api/types/PlcValueType.java  | 84 ++++++++++++++++++++++
 3 files changed, 150 insertions(+), 27 deletions(-)

diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/types/PlcResponseCode.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/types/PlcResponseCode.java
index a0db07985..612c64423 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/types/PlcResponseCode.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/types/PlcResponseCode.java
@@ -18,18 +18,45 @@
  */
 package org.apache.plc4x.java.api.types;
 
+import java.util.HashMap;
+import java.util.Map;
+
 public enum PlcResponseCode {
+  OK((short) 0x01),
+  NOT_FOUND((short) 0x02),
+  ACCESS_DENIED((short) 0x03),
+  INVALID_ADDRESS((short) 0x04),
+  INVALID_DATATYPE((short) 0x06),
+  INVALID_DATA((short) 0x07),
+  INTERNAL_ERROR((short) 0x08),
+  REMOTE_BUSY((short) 0x09),
+  REMOTE_ERROR((short) 0x0A),
+  UNSUPPORTED((short) 0x0B),
+  RESPONSE_PENDING((short) 0x0C);
+  private static final Map<Short, PlcResponseCode> map;
+
+  static {
+    map = new HashMap<>();
+    for (PlcResponseCode value : PlcResponseCode.values()) {
+      map.put((short) value.getValue(), value);
+    }
+  }
+
+  private final short value;
+
+  PlcResponseCode(short value) {
+    this.value = value;
+  }
+
+  public short getValue() {
+    return value;
+  }
 
-    OK,
-    NOT_FOUND,
-    ACCESS_DENIED,
-    INVALID_ADDRESS,
-    INVALID_DATATYPE,
-    INVALID_DATA,
-    INTERNAL_ERROR,
-    REMOTE_BUSY,
-    REMOTE_ERROR,
-    UNSUPPORTED,
-    RESPONSE_PENDING
+  public static PlcResponseCode enumForValue(short value) {
+    return map.get(value);
+  }
 
+  public static Boolean isDefined(short value) {
+    return map.containsKey(value);
+  }
 }
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/types/PlcSubscriptionType.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/types/PlcSubscriptionType.java
index c28207bd0..a7d8b0455 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/types/PlcSubscriptionType.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/types/PlcSubscriptionType.java
@@ -18,25 +18,37 @@
  */
 package org.apache.plc4x.java.api.types;
 
-/**
- * {@link PlcSubscriptionType} specifies the nature of the subscription.
- * In general PLC4X supports exactly 3 types of subscriptions.
- */
+import java.util.HashMap;
+import java.util.Map;
+
 public enum PlcSubscriptionType {
+  CYCLIC((short) 0x01),
+  CHANGE_OF_STATE((short) 0x02),
+  EVENT((short) 0x03);
+  private static final Map<Short, PlcSubscriptionType> map;
+
+  static {
+    map = new HashMap<>();
+    for (PlcSubscriptionType value : PlcSubscriptionType.values()) {
+      map.put((short) value.getValue(), value);
+    }
+  }
+
+  private final short value;
 
-    /**
-     * A cyclic subscription where a value is sent no matter if it's value changed in a given interval.
-     */
-    CYCLIC,
+  PlcSubscriptionType(short value) {
+    this.value = value;
+  }
 
-    /**
-     * Only send data, if a value in the PLC changed.
-     */
-    CHANGE_OF_STATE,
+  public short getValue() {
+    return value;
+  }
 
-    /**
-     * Subscribe to events created by the PLC which usually are defined in the PLCs application (Alarms).
-     */
-    EVENT
+  public static PlcSubscriptionType enumForValue(short value) {
+    return map.get(value);
+  }
 
+  public static Boolean isDefined(short value) {
+    return map.containsKey(value);
+  }
 }
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/types/PlcValueType.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/types/PlcValueType.java
new file mode 100644
index 000000000..04031b70f
--- /dev/null
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/types/PlcValueType.java
@@ -0,0 +1,84 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.plc4x.java.api.types;
+
+import java.util.HashMap;
+import java.util.Map;
+
+// Code generated by code-generation. DO NOT EDIT.
+
+public enum PlcValueType {
+  NULL((short) 0x00),
+  BOOL((short) 0x01),
+  BYTE((short) 0x02),
+  WORD((short) 0x03),
+  DWORD((short) 0x04),
+  LWORD((short) 0x05),
+  USINT((short) 0x11),
+  UINT((short) 0x12),
+  UDINT((short) 0x13),
+  ULINT((short) 0x14),
+  SINT((short) 0x21),
+  INT((short) 0x22),
+  DINT((short) 0x23),
+  LINT((short) 0x24),
+  REAL((short) 0x31),
+  LREAL((short) 0x32),
+  CHAR((short) 0x41),
+  WCHAR((short) 0x42),
+  STRING((short) 0x43),
+  WSTRING((short) 0x44),
+  TIME((short) 0x51),
+  LTIME((short) 0x52),
+  DATE((short) 0x53),
+  LDATE((short) 0x54),
+  TIME_OF_DAY((short) 0x55),
+  LTIME_OF_DAY((short) 0x56),
+  DATE_AND_TIME((short) 0x57),
+  LDATE_AND_TIME((short) 0x58),
+  Struct((short) 0x61),
+  List((short) 0x62),
+  RAW_BYTE_ARRAY((short) 0x71);
+  private static final Map<Short, PlcValueType> map;
+
+  static {
+    map = new HashMap<>();
+    for (PlcValueType value : PlcValueType.values()) {
+      map.put((short) value.getValue(), value);
+    }
+  }
+
+  private short value;
+
+  PlcValueType(short value) {
+    this.value = value;
+  }
+
+  public short getValue() {
+    return value;
+  }
+
+  public static PlcValueType enumForValue(short value) {
+    return map.get(value);
+  }
+
+  public static Boolean isDefined(short value) {
+    return map.containsKey(value);
+  }
+}