Skip to content

Commit

Permalink
feat: Create adapter for Open Industry 4.0 devices (#2511)
Browse files Browse the repository at this point in the history
* tmp

* initial implementation

* revert change

* finalize OI4 adapter

* revert change

* add missing headers

* change adapter icon

* fix checkstyle violations

* fix checkstyle violations

* code restructuring and improved timestamp handling

* style: adapt styling

* adapt icon

* Use UTC timestamp, replace hyphen

* Fix method

* make appId used in MQTT configurable

* Update Oi4Adapter.java

---------

Co-authored-by: Dominik Riemer <[email protected]>
  • Loading branch information
bossenti and dominikriemer authored Mar 11, 2024
1 parent d53cd67 commit 23a7a41
Show file tree
Hide file tree
Showing 10 changed files with 669 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -27,17 +27,19 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public record BrokerEventProcessor(IParser parser,
IEventCollector collector) implements InternalEventProcessor<byte[]> {
import java.nio.charset.StandardCharsets;

public record BrokerEventProcessor(
IParser parser,
IEventCollector collector
) implements InternalEventProcessor<byte[]> {

private static final Logger LOG = LoggerFactory.getLogger(BrokerEventProcessor.class);

@Override
public void onEvent(byte[] payload) {
try {
parser.parse(IOUtils.toInputStream(new String(payload), "UTF-8"), (event) -> {
collector.collect(event);
});
parser.parse(IOUtils.toInputStream(new String(payload), StandardCharsets.UTF_8), collector::collect);
} catch (ParseException e) {
LOG.error("Error while parsing: " + e.getMessage());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@

import org.apache.streampipes.connect.iiot.adapters.iolink.IfmAlMqttAdapter;
import org.apache.streampipes.connect.iiot.adapters.migrations.RosBridgeAdapterMigrationV1;
import org.apache.streampipes.connect.iiot.adapters.oi4.Oi4Adapter;
import org.apache.streampipes.connect.iiot.adapters.ros.RosBridgeAdapter;
import org.apache.streampipes.connect.iiot.adapters.simulator.machine.MachineDataSimulatorAdapter;
import org.apache.streampipes.connect.iiot.protocol.stream.FileReplayAdapter;
Expand All @@ -40,6 +41,7 @@ public List<StreamPipesAdapter> adapters() {
new MachineDataSimulatorAdapter(),
new FileReplayAdapter(),
new IfmAlMqttAdapter(),
new Oi4Adapter(),
new RosBridgeAdapter(),
new HttpStreamProtocol(),
new HttpServerProtocol()
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
/*
* 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
*
* http://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.streampipes.connect.iiot.adapters.oi4;

public class OI4AdapterLabels {
public static final String EVENT_KEY_SENSOR_ID = "sensorId";
public static final String EVENT_KEY_TIMESTAMP = "timestamp";
public static final String LABEL_KEY_SENSOR_DESCRIPTION = "sensor-description";
public static final String LABEL_KEY_SENSOR_IODD_ALTERNATIVE = "sensor-iodd-alternative";
public static final String LABEL_KEY_SENSOR_TYPE_ALTERNATIVE = "sensor-type-alternative";
public static final String LABEL_KEY_SENSOR_IODD_INPUT = "sensor-iodd-input";
public static final String LABEL_KEY_SENSOR_TYPE_INPUT = "sensor-type-input";
public static final String LABEL_KEY_SENSORS_ALTERNATIVES = "sensor-selection";
public static final String LABEL_KEY_SENSORS_ALL_ALTERNATIVE = "sensors-all";
public static final String LABEL_KEY_SENSORS_LIST_ALTERNATIVE = "sensors-list";
public static final String LABEL_KEY_SENSORS_LIST_INPUT = "sensors-list-input";
public static final String LABEL_KEY_APP_ID = "app-id";
public static final String MESSAGE_VALUE_FILTER = "processDataInput";
}
Loading

0 comments on commit 23a7a41

Please sign in to comment.