Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Various Changes #784

Draft
wants to merge 16 commits into
base: develop
Choose a base branch
from

Conversation

chrisdutz
Copy link
Contributor

@chrisdutz chrisdutz commented Feb 4, 2023

This is a Pull Request containing various changes from the repo https://github.com/spnettec/plc4x

It seems they deal with:

  • String handling in S7
  • Support for S7 200
  • Extended syntax of tags to add "encoding" to string fields
  • Changes in the Timeout-Handling of our driver base
  • Extensions to the OPC-UA driver

ceos01 and others added 15 commits January 28, 2023 12:50
Bumps [equalsverifier](https://github.com/jqno/equalsverifier) from 3.12.3 to 3.12.4.
- [Release notes](https://github.com/jqno/equalsverifier/releases)
- [Changelog](https://github.com/jqno/equalsverifier/blob/main/CHANGELOG.md)
- [Commits](jqno/equalsverifier@equalsverifier-3.12.3...equalsverifier-3.12.4)

---
updated-dependencies:
- dependency-name: nl.jqno.equalsverifier:equalsverifier
  depen
"One downside to Google's approach is that all of your functions must have a new first argument, but after clearing that hurdle everything else is much better.
If you aren't interested in this warning, read on."dency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps `jackson.version` from 2.14.1 to 2.14.2.

Updates `jackson-annotations` from 2.14.1 to 2.14.2
- [Release notes](https://github.com/FasterXML/jackson/releases)
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `jackson-core` from 2.14.1 to 2.14.2
- [Release notes](https://github.com/FasterXML/jackson-core/releases)
- [Commits](FasterXML/jackson-core@jackson-core-2.14.1...jackson-core-2.14.2)

Updates `jackson-databind` from 2.14.1 to 2.14.2
- [Release notes](https://github.com/FasterXML/jackson/releases)
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `jackson-dataformat-xml` from 2.14.1 to 2.14.2
- [Release notes](https://github.com/FasterXML/jackson-dataformat-xml/releases)
- [Commits](FasterXML/jackson-dataformat-xml@jackson-dataformat-xml-2.14.1...jackson-dataformat-xml-2.14.2)

Updates `jackson-dataformat-yaml` from 2.14.1 to 2.14.2
- [Release notes](https://github.com/FasterXML/jackson-dataformats-text/releases)
- [Commits](FasterXML/jackson-dataformats-text@jackson-dataformats-text-2.14.1...jackson-dataformats-text-2.14.2)

---
updated-dependencies:
- dependency-name: com.fasterxml.jackson.core:jackson-annotations
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.fasterxml.jackson.core:jackson-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-type: direct:development
  update-type: version-update:semver-patch
- dependency-name: com.fasterxml.jackson.dataformat:jackson-dataformat-xml
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.fasterxml.jackson.dataformat:jackson-dataformat-yaml
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps `mockito.version` from 5.0.0 to 5.1.0.

Updates `mockito-core` from 5.0.0 to 5.1.0
- [Release notes](https://github.com/mockito/mockito/releases)
- [Commits](mockito/mockito@v5.0.0...v5.1.0)

Updates `mockito-junit-jupiter` from 5.0.0 to 5.1.0
- [Release notes](https://github.com/mockito/mockito/releases)
- [Commits](mockito/mockito@v5.0.0...v5.1.0)

---
updated-dependencies:
- dependency-name: org.mockito:mockito-core
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.mockito:mockito-junit-jupiter
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* fix(plc4j/profinet): Fix to remove spaces from the generated connection string.

* fix(plc4j(profinet): Connections are working for my setup

* fix(plc4j(profinet): Add Dummy Advanced Connection Write Request

* fix(plc4j(profinet): Started to add the LLDP broadcast

* fix(plc4j(profinet): Continued to add the LLDP broadcast

* fix(plc4j(profinet): Finished the connection setup.

* feat(plc4j/profinet): Fixed a few minor issues and added the Application Ready packet

* feat(plc4j/profinet): Escape spaces using %20

* feat(plc4j/): split out dcp and lldp tasks, so they can be processed separately.

* fix(plc4j/profinet): Identified that the Application Ready request comes from the device.

* fix(plc4j/profinet): Cleaned up the message send and receive interface

* chore(plc4j/profinet): escape the device name and type within the connection string

* fix(plc4j/profinet): Continued to split device logic out.

* feat(plc4j/profinet): Add outline of GSDML parser.

* feat(plc4j/profinet): Finished major components of parser

* feat(plc4j/profinet): Add External text Data

* feat(plc4j/profinet): Generated Getters

* feat(plc4j/profinet): Add Dummy GSDML file

* feat(plc4j/profinet): Added basic test case

* feat(plc4j/profinet): Add GSD directory Configuration Parameter and cleaned up device parameter

* feat(plc4j/profinet): Standardize the mac address key to uppercase

* feat(plc4j/profinet): Need to Review the UDP checksum field.

* feat(plc4j/profinet): Add dummy checksum field in IPv4 packets

* feat(plc4j/profinet): Mistake leaving request as a response in mspec

* feat(plc4j/profinet): Add reading gsd directory and starting to add support for optional submodules.

* feat(plc4j/profinet): Splitting out connection request, using default config from gsd file.

* feat(plc4j/profinet): Realised that the pcap promiscuous mode handles don't play nicely with other connections.

* feat(plc4j/profinet): Add support for UDP packets, this allows us to use the same channel to receive all packets.

* feat(plc4j/profinet): Fixed parsing of PnIo_CyclicServiceDataUnit into an array of bytes. This needs to be parsed into the format from the gsd file.

* feat(plc4j/profinet): Cleaned up a little and added the IODataObject to the cyclic write packets.

* feat(plc4j/profinet): Started to add the submodules to the configuration.

* feat(plc4j/profinet): Add support for optional modules in the connection packet, still need to add support within the write parameters packet.

* feat(plc4j/profinet): Add support for writing records during startup

* feat(plc4j/profinet): Add datahold factor to configuration

* fix(plc4j/profinet): Fix failing tests

* feat(plc4j/profinet): Started to add the browse functionality, which is need to get a list of available tags.

* feat(plc4j/profinet): Add more browse functionality.

* feat(plc4j/profinet): Started to standardize the way the GSD file is queried.

* feat(plc4j/profinet): Updated the parsing of the submodule connection string section

* feat(plc4j/profinet): Fixed the cyclic comms after refactoring for tag browsing

* feat(plc4j/profinet): add metadata to browse tags

* fix(plc4j/profinet): Fix issues after merging develop

* fix(plc4j/profinet): Finished removing the BaseConfiguration class, the local ip address is now taken from the channel config.

* fix(plc4j/profinet): fix dependency check and remove manual test

* fix(plc4j/profinet): fix disabled test for gsdfiles

* fix(plc4j/profinet): Add support for checking if a submodule is found in the list of usable modules.

* fix(plc4j/profinet): update tests for browsing

* fix(plc4j/profinet): Continued filling out the browse structure.

* fix(plc4j/profinet): Minor change to support older Java versions

* fix(plc4j/profinet): Refactoring the configuration to allow for an easier initialization of devices.

* fix(plc4j/profinet): Refactoring the configuration to allow for an easier initialization of devices.

* fix(plc4j/profinet): Refactoring the submodules, this stops us from having to repeatedly querying the gsd file directly.

* fix(plc4j/profinet): Continue refactoring

* fix(readme): Flattening the tags returned by browsing.

* fix(plc4j/profinet): Expanded supported data types.

* fix(plc4j/profinet): Add extra tests for browsing tags

* fix(plc4j/profinet): Fix issues after refactoring.

* fix(plc4j/profinet): Add support for parsing returned data as well as routing cyclic data to device handler.

* fix(plc4j/profinet): Add the subscription logic.

* fix(plc4j/profinet): Starting to add error handling cases

* fix(plc4j/profinet): Fixed issue with cycle timer as well as included auto re-connect on failed connection. Also updated the documentation.

* fix(plc4j/profinet): Fixed up some files that were changed accidentally

* fix(plc4j): don't exclude the template folder in .idea

* fix(plc4j/profinet): update manual profinet test

* fix(plc4j/profinet): Cleaned up and changed to using states for each device

* fix(plc4j/profinet): Fixing exception handling.

* fix(plc4j/profinet): Cleaned up a little

* fix(plc4j/profinet): Add support for individual subscriptions and change of state subscriptions

* fix(plc4j/profinet): Fixed issue with non bit data values and browse response

* fix(plc4j/profinet): Merged Develop and updated generated classes
Bumps `mockito.version` from 5.1.0 to 5.1.1.

Updates `mockito-core` from 5.1.0 to 5.1.1
- [Release notes](https://github.com/mockito/mockito/releases)
- [Commits](mockito/mockito@v5.1.0...v5.1.1)

Updates `mockito-junit-jupiter` from 5.1.0 to 5.1.1
- [Release notes](https://github.com/mockito/mockito/releases)
- [Commits](mockito/mockito@v5.1.0...v5.1.1)

---
updated-dependencies:
- dependency-name: org.mockito:mockito-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.mockito:mockito-junit-jupiter
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…bal-changes-of-spnettech-repo

# Conflicts:
#	plc4c/drivers/s7/src/driver_s7_sm_read.c
#	plc4c/generated-sources/s7/include/data_item.h
#	plc4c/generated-sources/s7/src/data_item.c
#	plc4go/internal/s7/Reader.go
#	plc4go/protocols/abeth/readwrite/XmlParserHelper.go
#	plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/CheckPeers.java
#	plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/EndOfLldp.java
#	plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/Ethernet_FramePayload_LLDP.java
#	plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/IODWriteRequestHeader.java
#	plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/IODWriteResponseHeader.java
#	plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/LldpUnit.java
#	plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/Lldp_Pdu.java
#	plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PDInterfaceAdjust.java
#	plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PDPortDataCheck.java
#	plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PascalString.java
#	plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnDcp_Block_DevicePropertiesNameOfStation.java
#	plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnDcp_Pdu_AlarmLow.java
#	plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCM_Block_Request.java
#	plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCM_Block_Response.java
#	plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCm_Control_Request.java
#	plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCm_Control_Response.java
#	plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCm_DataUnitDataObject.java
#	plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCm_DataUnitIoCs.java
#	plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCm_Submodule_InputData.java
#	plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCm_Submodule_OutputData.java
#	plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIo_CyclicServiceDataUnit.java
#	plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/TlvChassisId.java
#	plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/TlvManagementAddress.java
#	plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/TlvOrgSpecificIeee8023.java
#	plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/TlvOrgSpecificProfibus.java
#	plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/TlvOrgSpecificProfibusUnit.java
#	plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/TlvOrganizationSpecific.java
#	plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/TlvOrganizationSpecificUnit.java
#	plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/TlvPortId.java
#	plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/TlvProfibusSubTypeChassisMac.java
#	plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/TlvProfibusSubTypePortStatus.java
#	plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/TlvTimeToLive.java
#	plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/UserData.java
#	plc4j/drivers/profinet/src/main/java/org/apache/plc4x/java/profinet/device/ProfinetDevice.java
#	plc4j/drivers/profinet/src/main/java/org/apache/plc4x/java/profinet/gsdml/ProfinetDataItem.java
#	plc4j/examples/hello-connectivity-mqtt/src/main/resources/mqtt-connector.yml
@chrisdutz
Copy link
Contributor Author

Admittedly I would not like to merge this PR ... but I think we should have a look at it and possibly pick individual fixes, if we think they are good.

@hutcheb
Copy link
Contributor

hutcheb commented Feb 5, 2023

With the OPCUA protocol package, it seems to include MIT licensed files we use to generate the mspec. While it is a good idea to include them so we don't pull new updates automatically from their Github repo. I don't know if it is compatible with the ASF's rules?

The changes to the OPCUA driver and opcuaserver packages seem to be minimal, but should be good additions.

@chrisdutz
Copy link
Contributor Author

I had a look at what he did. He downloaded the files, added them and added data points that we didn't have. Thought worth investigating what they are?

@sruehl sruehl marked this pull request as draft February 6, 2023 16:01
@sruehl
Copy link
Contributor

sruehl commented Feb 6, 2023

Admittedly I would not like to merge this PR ... but I think we should have a look at it and possibly pick individual fixes, if we think they are good.

I set it to draft so we don't do by accident

@heyoulin
Copy link

@chrisdutz Thank you for this pull request. I have no time to merge my changes. Since I've been so busy recently. I don't have time to do this. Thank you so much

@heyoulin
Copy link

You shoud take look plc4x driver and server. I modify the tag and can use fit for general read and write tag format

@chrisdutz chrisdutz mentioned this pull request Feb 17, 2023
@sruehl
Copy link
Contributor

sruehl commented Feb 21, 2023

I'm a little bit confused about the commits in this PR. Is this some rebase commit manipulating issue? E.g. why does it contain dependabot commits?

@chrisdutz
Copy link
Contributor Author

I created it by checking out our version at the last version that was merged into the other repo and the other two in its latest version. Then I had intellij compare the two directories and manually went through that huge diff, ignoring generated code and I pulled what I think we should discuss adopting (didn't pull everything)... Hope that explains it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants