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
Const, Control116 and Service116 Interfaces Changed or New in UPOS 1.16 #21
base: master
Are you sure you want to change the base?
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! |
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. |
Comments in Const interfaces of new device classes changed to become similar to comments in other Const interfaces. Prefix OPOS_ removed from some extended error code value names.
And at least comment adjustments to match the style used in other Const interface classes. Additionally, OPOS_ prefix rfemoved from some extended error code values. |
Removal of GraphicDisplay constant GDSP_ST_HOST_HARDTOTALS and SoundPlayer constant SPLY_ST_HOST_HARDTOTALS. Both constants are meaningless because they should be values of the Storage property of the corresponding device which specifies the source for loading or playing data. Therefore, Storage must specify the source as host or HardTotals, not both.
Have removed the following constants: SPLY_ST_HOST_HARDTOTALS and GDSP_ST_HOST_HARDTOTALS. Reason: The description of both constants in the UPOS specification is senseless, both devices do not write to, they read from host or hard totals device, therefore, these constants are superfluous in practice. UPOS specification 1.16.1 needs rework at this point. |
@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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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). |
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???