Const, Control116 and Service116 Interfaces Changed or New in UPOS 1.16#21
Const, Control116 and Service116 Interfaces Changed or New in UPOS 1.16#21mjpcger wants to merge 29 commits intoJavaPOSWorkingGroup:masterfrom mjpcger:master
Conversation
Added interfaces for new or changed device classes in UPOS 1.16. Updated interfaces for existing LightsConst and POSPowerConst to support added constants.
Interfaces for devices that have not been changed in UPOS 1.16 have been added. Licence headers of the other 1.16 interfaces have been changed to match the Javapos conditions.
|
Have changed some headers and created interfaces for device classe that are unchanged in UPOS 1.16 |
|
Thanks for the PR, @mjpcger! |
Also, updated Eclipse meta files for Eclipse 2023-09.
Solves GH issues #19.
As a workaround for a type error in `PointCardRW.CapCardEntranceSensor` which is there since Version 1.5. Solves GH issues #20.
reported by the Gradle build scan.
Bug fixed: getUrl() must return String, not int.
Bug fixed: getUrl() must return String, not int.
|
Fixed some bugs in GraphicDisplay: getURL must return String, not int... |
|
@mjpcger, the build failed for this PR because the javadoc runs out of memory. And then commit it to the PR. This should re-trigger the build, automatically. Hopefully, this will solve the compilation problem. |
Increase memory for javadoc
|
I did it, unfortunately, build errors still happen. |
|
Seems our javadoc generation needs a lot of memory... |
Just more memory for javadoc
|
Does not look better... |
Missing setter for property Storage.
Missing setter for property Storage.
|
Due to missing setter for property Storage in GestureControl, I checked again the properties for all new device classes and found no more missing setters, getters, methods or wrong data types. |
Layout of service and control interfaces has been reworked to match the structure of previously defined device classes.
Layout of service and control interfaces has been reworked to match the structure of previously defined device classes.
|
Just another rework for UPOS 1.16 interfaces, new ordering by capability, property and method in lexical order. |
@mjpcger , even if they useless - if they are defined in the UPOS specification and already implemented in OPOS we should add them to JavaPOS too! Just to have the same constants in OPOS and JavaPOS and to "consume" the constant value. But in general you are right. All the Storage property descriptions are wrong as the devices do not write data, only read. In that sense a combination of 2 sources for reading is meaningless. I guess, this is a simple copy'n'paste error in the specification. |
|
Then at least the two constants should be marked as deprecated. |
Useless constants have been re-added but marked as deprecated because they are (erroneously) present within the specification and in OPOS header files as well.
There was a problem hiding this comment.
Hi @mjpcger ,
I validated all the Control sources against the UPOS 1.16 RCDS document (dtc/22-02-18).
The comments are not for you (except for one), but general comments.
Only some of them, like parameter naming ones, you may work on. But you do not need to do it. I can do it when I merge it to the main trunk.
| public static final int SPLY_ST_HOST = 1; | ||
| public static final int SPLY_ST_HARDTOTALS = 2; | ||
| @Deprecated | ||
| public static final int SPLY_ST_HOST_HARDTOTALS = 3; |
There was a problem hiding this comment.
Error in spec!
As this is a output device it does not make sense to read from 2 sources.
| // "ErrorEvent" "ErrorCodeExtended" Property Constants | ||
| ///////////////////////////////////////////////////////////////////// | ||
|
|
||
| public static final int ESPLY_NOROOM = 201; |
There was a problem hiding this comment.
Error in spec!
As this is an output device the storage space cannot be exhausted.
| public static final int GDSP_ST_HOST = 1; | ||
| public static final int GDSP_ST_HARDTOTALS = 2; | ||
| @Deprecated | ||
| public static final int GDSP_ST_HOST_HARDTOTALS = 3; |
There was a problem hiding this comment.
Error in spec!
Does not make any sense for an output device as it cannot read from 2 sources.
| // "ErrorEvent" "ErrorCodeExtended" Property Constants | ||
| ///////////////////////////////////////////////////////////////////// | ||
|
|
||
| public static final int EGDSP_NOROOM = 201; // (Several) |
There was a problem hiding this comment.
Error in spec!
Constant does not make sense as there is nothing written to storage, so it cannot be exhausted.
As recommended to allow error free javadoc processing
In fact, it was forgotten to fetch the PR's head before working on it. So, now a comparison has been done and some adjustments has been made. Mainly, - sorting was corrected - @Deprecation was added to some meaningless storage constants - methods clearInput and clearInputProperties were added to SpeechSynthesis, even if they are meaningless for this category but defined in the UnifiedPOS standard
Some more memory for javadoc...
|
I let the "error in spec" issue above open as well as the PR until this has been discussed and decided in the UnifiedPOS committee. |
|
@mjpcger, you may try the snapshots built from your contribution: Any feedback is appreciated. |
|
Have tried to link both snapshots to JavaPOS-SPF and JavaPOS-SPF-Test. Unfortunately, the constants JposConst.JPOS_TRUE and JposConst.JPOS_FALSE remain missing. Due to a design error for property CapCardEntranceSensor of device class PointCardRW, these constants should be added at least to jpos 1.16, better to 1.15.3 as well. |
|
I added my modified JposCons.class file to my projects and made a brief test with DeviceMonitor and GraphicDisplay. Seems to work as expected for both device classes. |
That's because the branch is not up to date to the master branch: pr-21-javapos116...master |
In fact, it was forgotten to fetch the PR's head before working on it. So, now a comparison has been done and some adjustments has been made. Mainly, - sorting was corrected - @Deprecation was added to some meaningless storage constants - methods clearInput and clearInputProperties were added to SpeechSynthesis, even if they are meaningless for this category but defined in the UnifiedPOS standard
|
@mjpcger, I rebased the PR branch on master and published it again as second snapshot. Now the constants from 1.15.2 should be contained. Please check the 2nd snapshot release. The snapshot artifact is available at https://oss.sonatype.org/content/repositories/snapshots/org/javapos/javapos-contracts/1.16.0-SNAPSHOT/ |
|
Works as expected. Use javapos-config-loader from master now because no snapshot for 1.16 is available. I would recommend to generate a snapshot from javapos-config-loader as well, with new device classes in jpos.dtd file, may be as in the sample jpos.dtd in the attached |
|
Or shall I create a pull request for the config loader? |
|
Yes, you are right, @mjpcger! The javapos-config-loader needs to be updated too if new categories are added. I hope, I will find the time for that shortly. |
|
The JavaPOS 1.16 compliant javapos-config-loader is now also available as snapshot artifact at https://oss.sonatype.org/content/repositories/snapshots/org/javapos/javapos-config-loader/3.2.0-SNAPSHOT/. |
|
The snapshot works perfectly for those device classes I have integrated into JavaPOS-SPF and JavaPOS-SPF-Test up to now: DeviceMonitor and GraphicDisplay. |
Good to hear! Does the javapos-controlssnapshot works also for you? |
|
Yes, all three snapshots work as expected (GraphicDisplay and DeviceMonitor, the other device classes: I don't know). |
|
Don't know why checks have failed - These are only constants and two @deprecated marks... |
This reverts commit 7c996a8.
New constants specified in UPOS 1.15.1 have been added to EVRW, FiscalPrinter, POSPrinter and Scanner.
The DeviceClassConst, DeviceClassControl116 and services/DeviceClassService116 interfaces of those device classes that have been changed or that are new in UPOS 1.16 (DeviceMonitor, GestureControl, GraphicDisplay, IndividualRecognition, Lights, POSPower, SoundPlayer, SoundRecorder, SpeechSynthesis, VideoCapture and VoiceRecognition).
Remark: Diff shows much more changes within the Lights and POSPower interfaces as have really been made. Don't know the reason: different linefeeds convention? tabs / spaces? Problem of diff???