Possible fix for VSCode support ...
Hi all, today it was brought to my attention again, that people are having a hard time working on PLC4X in VSCode. The main problem is, that in contrast to Maven itself or IntelliJ, VSCode (and I think Eclipse) don’t really support picking up of auto-generated directories. The build-helper-maven-plugin usually helps with this, but you can’t blindly add it to every module as it fails, if the directory doesn’t exist. Instead of manually adding it to every module, that uses code-generation, I added a self-activating maven profile. In general, what is does, is check if there’s a directory “target/generated-srouces/plc4x” and only if this exists, will the profile be activated and add that directory. (Please don’t be so smart and replace “target” with “${project.build.directory}” profile activation happens in maven before the properties are resolved, so you can’t use properties for this) Even if useful, I consider this approach sort of the black-magic of Maven … not 100% sure about the side-effects (We are sort of adding the sources twice for maven itself and IntelliJ) So would be cool if you folks could test if this change is causing any trouble for you and if it helps solving the VSCode problem. Chris
[GitHub] [plc4x] dependabot[bot] opened a new pull request, #666: build(deps): bump apache from 27 to 28
dependabot[bot] opened a new pull request, #666: URL: https://github.com/apache/plc4x/pull/666 Bumps [apache](https://github.com/apache/maven-apache-parent) from 27 to 28. Release notes Sourced from https://github.com/apache/maven-apache-parent/releases;>apache's releases. Apache Parent POM version 28 Bug [https://issues.apache.org/jira/browse/MPOM-345;>MPOM-345] - Respect property assembly.tarLongFileMode Improvement [https://issues.apache.org/jira/browse/MPOM-347;>MPOM-347] - Allow custom Release Distribution Repository Dependency upgrade [https://issues.apache.org/jira/browse/MPOM-354;>MPOM-354] - Upgrade maven plugin tools to 3.7.0 [https://issues.apache.org/jira/browse/MPOM-360;>MPOM-360] - Bump apache-rat-plugin from 0.14 to 0.15 [https://issues.apache.org/jira/browse/MPOM-361;>MPOM-361] - Bump maven-jar-plugin from 3.2.2 to 3.3.0 [https://issues.apache.org/jira/browse/MPOM-362;>MPOM-362] - Bump maven-help-plugin from 3.2.0 to 3.3.0 [https://issues.apache.org/jira/browse/MPOM-363;>MPOM-363] - Bump maven-project-info-reports-plugin from 3.3.0 to 3.4.1 [https://issues.apache.org/jira/browse/MPOM-364;>MPOM-364] - Bump maven-javadoc-plugin from 3.4.0 to 3.4.1 [https://issues.apache.org/jira/browse/MPOM-365;>MPOM-365] - Bump maven-site-plugin from 3.12.0 to 3.12.1 [https://issues.apache.org/jira/browse/MPOM-366;>MPOM-366] - Bump maven-resources-plugin from 3.2.0 to 3.3.0 [https://issues.apache.org/jira/browse/MPOM-367;>MPOM-367] - Bump maven-assembly-plugin from 3.4.1 to 3.4.2 [https://issues.apache.org/jira/browse/MPOM-368;>MPOM-368] - Bump maven-install-plugin from 2.5.2 to 3.0.1 [https://issues.apache.org/jira/browse/MPOM-369;>MPOM-369] - Bump maven-shade-plugin from 3.3.0 to 3.4.1 Commits See full diff in https://github.com/apache/maven-apache-parent/commits;>compare view [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=org.apache:apache=maven=27=28)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- Dependabot commands and options You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: dev-unsubscr...@plc4x.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [plc4x-build-tools] dependabot[bot] opened a new pull request, #45: chore(deps): bump apache from 27 to 28
dependabot[bot] opened a new pull request, #45: URL: https://github.com/apache/plc4x-build-tools/pull/45 Bumps [apache](https://github.com/apache/maven-apache-parent) from 27 to 28. Release notes Sourced from https://github.com/apache/maven-apache-parent/releases;>apache's releases. Apache Parent POM version 28 Bug [https://issues.apache.org/jira/browse/MPOM-345;>MPOM-345] - Respect property assembly.tarLongFileMode Improvement [https://issues.apache.org/jira/browse/MPOM-347;>MPOM-347] - Allow custom Release Distribution Repository Dependency upgrade [https://issues.apache.org/jira/browse/MPOM-354;>MPOM-354] - Upgrade maven plugin tools to 3.7.0 [https://issues.apache.org/jira/browse/MPOM-360;>MPOM-360] - Bump apache-rat-plugin from 0.14 to 0.15 [https://issues.apache.org/jira/browse/MPOM-361;>MPOM-361] - Bump maven-jar-plugin from 3.2.2 to 3.3.0 [https://issues.apache.org/jira/browse/MPOM-362;>MPOM-362] - Bump maven-help-plugin from 3.2.0 to 3.3.0 [https://issues.apache.org/jira/browse/MPOM-363;>MPOM-363] - Bump maven-project-info-reports-plugin from 3.3.0 to 3.4.1 [https://issues.apache.org/jira/browse/MPOM-364;>MPOM-364] - Bump maven-javadoc-plugin from 3.4.0 to 3.4.1 [https://issues.apache.org/jira/browse/MPOM-365;>MPOM-365] - Bump maven-site-plugin from 3.12.0 to 3.12.1 [https://issues.apache.org/jira/browse/MPOM-366;>MPOM-366] - Bump maven-resources-plugin from 3.2.0 to 3.3.0 [https://issues.apache.org/jira/browse/MPOM-367;>MPOM-367] - Bump maven-assembly-plugin from 3.4.1 to 3.4.2 [https://issues.apache.org/jira/browse/MPOM-368;>MPOM-368] - Bump maven-install-plugin from 2.5.2 to 3.0.1 [https://issues.apache.org/jira/browse/MPOM-369;>MPOM-369] - Bump maven-shade-plugin from 3.3.0 to 3.4.1 Commits See full diff in https://github.com/apache/maven-apache-parent/commits;>compare view [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=org.apache:apache=maven=27=28)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- Dependabot commands and options You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: dev-unsubscr...@plc4x.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[BUILD-STABLE]: Job 'PLC4X/PLC4X/develop [develop] [1159]'
BUILD-STABLE: Job 'PLC4X/PLC4X/develop [develop] [1159]': Is back to normal.
Re: [DISCUSS] Make the PlcConnection return PlcFieldHandler and PlcValueHandler instances?
Nice job Sebastian and Christofer! Awesome work! :-) Am Di., 22. Nov. 2022 um 19:48 Uhr schrieb Christofer Dutz < christofer.d...@c-ware.de>: > Hi all, > > So, thanks to Sebastian’s great work on the Go SPI, making the ADS driver > use context aware TagHandlers and ValueHandlers, was super easy. > And regarding my last email … I’ve simply provided two Constructors … one > that takes a DriverContext and one that doesn’t. It the TagHandler doesn’t > have the DriverContext, it just does a statical structural check and if > it’s there if will add all of the cool stuff, we now have at our disposal. > > Chris > > > From: Christofer Dutz > Date: Tuesday, 22. November 2022 at 19:10 > To: dev@plc4x.apache.org > Subject: Re: [DISCUSS] Make the PlcConnection return PlcFieldHandler and > PlcValueHandler instances? > Hi all, > > I just noticed a “CheckTagAddress” function in PLC4Go’s PlcDriver type. > So if we provide address checking beyond the normal static checks, we > can’t really check the dynamic stuff on the PlcDriver level. > > Chris > > > From: Christofer Dutz > Date: Tuesday, 22. November 2022 at 16:44 > To: dev@plc4x.apache.org > Subject: [DISCUSS] Make the PlcConnection return PlcFieldHandler and > PlcValueHandler instances? > Hi all, > > till now we always created the PlcFieldHandler and PlcValueHandlers in the > Driver code statically. > > Now with the updated ADS driver we have some completely new possibilities: > > * We can check if a tag exists before executing the query > * We can check the type and structure of values we want to write > before sending them to the PLC > * We can start using some fancy array notation which we can validate > the query before sending the request. > > The only problem I currently have, it that the FieldHandler and > ValueHandler are both created detached from the Connection, where the > information is present. > > So, I would like to change that the Connection is responsible of creating > the PlcValueHandler and PlcValueHandler. > > > With this we could even do crazy stuff like: > > * In S7 give an error warning if the type of S7 doesn’t support the > datatype, that the user wanted to use? > * Possibly rewrite fields, if we’re using an incompatible S7 type > (Like if I’m on a S7-1200 and want to read a LINT, which the 1200 doesn’t > support), then we could replace this with a 2-element array of DINT and > still support datatypes the device itself doesn’t. > * We could provide an error if someone wants to use the S7 driver > subscription API with a PLC, that doesn’t support that. > * … I probably could go on forever ;-) > > > What do you folks think? > > > Chris >
Re: [DISCUSS] Make the PlcConnection return PlcFieldHandler and PlcValueHandler instances?
Hi all, So, thanks to Sebastian’s great work on the Go SPI, making the ADS driver use context aware TagHandlers and ValueHandlers, was super easy. And regarding my last email … I’ve simply provided two Constructors … one that takes a DriverContext and one that doesn’t. It the TagHandler doesn’t have the DriverContext, it just does a statical structural check and if it’s there if will add all of the cool stuff, we now have at our disposal. Chris From: Christofer Dutz Date: Tuesday, 22. November 2022 at 19:10 To: dev@plc4x.apache.org Subject: Re: [DISCUSS] Make the PlcConnection return PlcFieldHandler and PlcValueHandler instances? Hi all, I just noticed a “CheckTagAddress” function in PLC4Go’s PlcDriver type. So if we provide address checking beyond the normal static checks, we can’t really check the dynamic stuff on the PlcDriver level. Chris From: Christofer Dutz Date: Tuesday, 22. November 2022 at 16:44 To: dev@plc4x.apache.org Subject: [DISCUSS] Make the PlcConnection return PlcFieldHandler and PlcValueHandler instances? Hi all, till now we always created the PlcFieldHandler and PlcValueHandlers in the Driver code statically. Now with the updated ADS driver we have some completely new possibilities: * We can check if a tag exists before executing the query * We can check the type and structure of values we want to write before sending them to the PLC * We can start using some fancy array notation which we can validate the query before sending the request. The only problem I currently have, it that the FieldHandler and ValueHandler are both created detached from the Connection, where the information is present. So, I would like to change that the Connection is responsible of creating the PlcValueHandler and PlcValueHandler. With this we could even do crazy stuff like: * In S7 give an error warning if the type of S7 doesn’t support the datatype, that the user wanted to use? * Possibly rewrite fields, if we’re using an incompatible S7 type (Like if I’m on a S7-1200 and want to read a LINT, which the 1200 doesn’t support), then we could replace this with a 2-element array of DINT and still support datatypes the device itself doesn’t. * We could provide an error if someone wants to use the S7 driver subscription API with a PLC, that doesn’t support that. * … I probably could go on forever ;-) What do you folks think? Chris
Re: [DISCUSS] Make the PlcConnection return PlcFieldHandler and PlcValueHandler instances?
Hi all, I just noticed a “CheckTagAddress” function in PLC4Go’s PlcDriver type. So if we provide address checking beyond the normal static checks, we can’t really check the dynamic stuff on the PlcDriver level. Chris From: Christofer Dutz Date: Tuesday, 22. November 2022 at 16:44 To: dev@plc4x.apache.org Subject: [DISCUSS] Make the PlcConnection return PlcFieldHandler and PlcValueHandler instances? Hi all, till now we always created the PlcFieldHandler and PlcValueHandlers in the Driver code statically. Now with the updated ADS driver we have some completely new possibilities: * We can check if a tag exists before executing the query * We can check the type and structure of values we want to write before sending them to the PLC * We can start using some fancy array notation which we can validate the query before sending the request. The only problem I currently have, it that the FieldHandler and ValueHandler are both created detached from the Connection, where the information is present. So, I would like to change that the Connection is responsible of creating the PlcValueHandler and PlcValueHandler. With this we could even do crazy stuff like: * In S7 give an error warning if the type of S7 doesn’t support the datatype, that the user wanted to use? * Possibly rewrite fields, if we’re using an incompatible S7 type (Like if I’m on a S7-1200 and want to read a LINT, which the 1200 doesn’t support), then we could replace this with a 2-element array of DINT and still support datatypes the device itself doesn’t. * We could provide an error if someone wants to use the S7 driver subscription API with a PLC, that doesn’t support that. * … I probably could go on forever ;-) What do you folks think? Chris
[DISCUSS] Make the PlcConnection return PlcFieldHandler and PlcValueHandler instances?
Hi all, till now we always created the PlcFieldHandler and PlcValueHandlers in the Driver code statically. Now with the updated ADS driver we have some completely new possibilities: * We can check if a tag exists before executing the query * We can check the type and structure of values we want to write before sending them to the PLC * We can start using some fancy array notation which we can validate the query before sending the request. The only problem I currently have, it that the FieldHandler and ValueHandler are both created detached from the Connection, where the information is present. So, I would like to change that the Connection is responsible of creating the PlcValueHandler and PlcValueHandler. With this we could even do crazy stuff like: * In S7 give an error warning if the type of S7 doesn’t support the datatype, that the user wanted to use? * Possibly rewrite fields, if we’re using an incompatible S7 type (Like if I’m on a S7-1200 and want to read a LINT, which the 1200 doesn’t support), then we could replace this with a 2-element array of DINT and still support datatypes the device itself doesn’t. * We could provide an error if someone wants to use the S7 driver subscription API with a PLC, that doesn’t support that. * … I probably could go on forever ;-) What do you folks think? Chris
[BUILD-FAILURE]: Job 'PLC4X/PLC4X/develop [develop] [1158]'
BUILD-FAILURE: Job 'PLC4X/PLC4X/develop [develop] [1158]': Check console output at "https://ci-builds.apache.org/job/PLC4X/job/PLC4X/job/develop/1158/;>PLC4X/PLC4X/develop [develop] [1158]"
[GitHub] [plc4x] sruehl merged pull request #665: build(deps): bump jackson.version from 2.14.0 to 2.14.1
sruehl merged PR #665: URL: https://github.com/apache/plc4x/pull/665 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: dev-unsubscr...@plc4x.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
Re: error Plc4xSubscribe example
Hi Willem, I sent an Invite. Chris From: Willem Remie Date: Tuesday, 22. November 2022 at 12:08 To: dev@plc4x.apache.org Subject: RE: error Plc4xSubscribe example Hi Cesar, Thanks for your response and willingness to help. I'm using the example provided `HelloPlc4xSubscription --connection-string s7://10.15.72.50 --tag-addresses %DB1:0:WORD` Currently the following setup is installed at our office; - CPU 314C-2 PN/DP (10.15.72.50) - CP 343-1 Lean (10.15.72.51) - TP700 Comfort (10.15.72.52) We are working to setup VPN such that we can grant you access. I will send the configuration separately once finished. Chris could you please add me to the Slack channel as well? Regards, Willem -Original Message- From: Cesar Garcia Sent: Monday, 21 November 2022 14:45 To: dev@plc4x.apache.org Subject: Re: error Plc4xSubscribe example Hello, Willem, a pleasure to greet you, To help me with the details, Can you place the code that you are using for the subscription?. I will test it with a S7-400 CPU, so I will need the model and firmware version of your CPU in order to keep track. Grateful for your support. El dom, 20 nov 2022 a las 18:37, Willem Remie () escribió: > Hi, > > Although HelloPlc4xRead runs fine connected to an S7-300 the > subscription example fails with following exception > > Exception in thread "main" java.lang.ClassCastException: class > org.apache.plc4x.java.s7.readwrite.tag.S7Tag cannot be cast to class > org.apache.plc4x.java.s7.readwrite.tag.S7SubscriptionTag > (org.apache.plc4x.java.s7.readwrite.tag.S7Tag and > org.apache.plc4x.java.s7.readwrite.tag.S7SubscriptionTag are in > unnamed module of loader 'app') >at > org.apache.plc4x.java.s7.readwrite.protocol.S7ProtocolLogic.subscribe(S7ProtocolLogic.java:340) >at > org.apache.plc4x.java.spi.optimizer.BaseOptimizer.lambda$optimizedSubscribe$4(BaseOptimizer.java:120) >at > org.apache.plc4x.java.spi.optimizer.BaseOptimizer.send(BaseOptimizer.java:138) >at > org.apache.plc4x.java.spi.optimizer.BaseOptimizer.optimizedSubscribe(BaseOptimizer.java:120) >at > org.apache.plc4x.java.spi.connection.AbstractPlcConnection.subscribe(AbstractPlcConnection.java:183) >at > org.apache.plc4x.java.spi.messages.DefaultPlcSubscriptionRequest.execute(DefaultPlcSubscriptionRequest.java:65) >at > org.apache.plc4x.java.examples.helloplc4x.subscribe.HelloPlc4xSubscription.run(HelloPlc4xSubscription.java:63) >at > org.apache.plc4x.java.examples.helloplc4x.subscribe.HelloPlc4xSubscrip > tion.main(HelloPlc4xSubscription.java:98) > > I’m having this issue for both develop as 0.10 branch. Just sending > this for the record, I will try to debug later but if someone has a > suggestion please let me know. > > Regards, > Willem > -- *CEOS Automatización, C.A.* *GALPON SERVICIO INDUSTRIALES Y NAVALES FA, C.A.,* *PISO 1, OFICINA 2, AV. RAUL LEONI, SECTOR GUAMACHITO,* *FRENTE A LA ASOCIACION DE GANADEROS,BARCELONA,EDO. ANZOATEGUI* *Ing. César García* *Cel: +58 414-760.98.95* *Hotline Técnica SIEMENS: 0800 1005080* *Email: support.aan.automat...@siemens.com *
RE: error Plc4xSubscribe example
Hi Cesar, Thanks for your response and willingness to help. I'm using the example provided `HelloPlc4xSubscription --connection-string s7://10.15.72.50 --tag-addresses %DB1:0:WORD` Currently the following setup is installed at our office; - CPU 314C-2 PN/DP (10.15.72.50) - CP 343-1 Lean (10.15.72.51) - TP700 Comfort (10.15.72.52) We are working to setup VPN such that we can grant you access. I will send the configuration separately once finished. Chris could you please add me to the Slack channel as well? Regards, Willem -Original Message- From: Cesar Garcia Sent: Monday, 21 November 2022 14:45 To: dev@plc4x.apache.org Subject: Re: error Plc4xSubscribe example Hello, Willem, a pleasure to greet you, To help me with the details, Can you place the code that you are using for the subscription?. I will test it with a S7-400 CPU, so I will need the model and firmware version of your CPU in order to keep track. Grateful for your support. El dom, 20 nov 2022 a las 18:37, Willem Remie () escribió: > Hi, > > Although HelloPlc4xRead runs fine connected to an S7-300 the > subscription example fails with following exception > > Exception in thread "main" java.lang.ClassCastException: class > org.apache.plc4x.java.s7.readwrite.tag.S7Tag cannot be cast to class > org.apache.plc4x.java.s7.readwrite.tag.S7SubscriptionTag > (org.apache.plc4x.java.s7.readwrite.tag.S7Tag and > org.apache.plc4x.java.s7.readwrite.tag.S7SubscriptionTag are in > unnamed module of loader 'app') >at > org.apache.plc4x.java.s7.readwrite.protocol.S7ProtocolLogic.subscribe(S7ProtocolLogic.java:340) >at > org.apache.plc4x.java.spi.optimizer.BaseOptimizer.lambda$optimizedSubscribe$4(BaseOptimizer.java:120) >at > org.apache.plc4x.java.spi.optimizer.BaseOptimizer.send(BaseOptimizer.java:138) >at > org.apache.plc4x.java.spi.optimizer.BaseOptimizer.optimizedSubscribe(BaseOptimizer.java:120) >at > org.apache.plc4x.java.spi.connection.AbstractPlcConnection.subscribe(AbstractPlcConnection.java:183) >at > org.apache.plc4x.java.spi.messages.DefaultPlcSubscriptionRequest.execute(DefaultPlcSubscriptionRequest.java:65) >at > org.apache.plc4x.java.examples.helloplc4x.subscribe.HelloPlc4xSubscription.run(HelloPlc4xSubscription.java:63) >at > org.apache.plc4x.java.examples.helloplc4x.subscribe.HelloPlc4xSubscrip > tion.main(HelloPlc4xSubscription.java:98) > > I’m having this issue for both develop as 0.10 branch. Just sending > this for the record, I will try to debug later but if someone has a > suggestion please let me know. > > Regards, > Willem > -- *CEOS Automatización, C.A.* *GALPON SERVICIO INDUSTRIALES Y NAVALES FA, C.A.,* *PISO 1, OFICINA 2, AV. RAUL LEONI, SECTOR GUAMACHITO,* *FRENTE A LA ASOCIACION DE GANADEROS,BARCELONA,EDO. ANZOATEGUI* *Ing. César García* *Cel: +58 414-760.98.95* *Hotline Técnica SIEMENS: 0800 1005080* *Email: support.aan.automat...@siemens.com *