v3.0.0-rc2
Pre-release
Pre-release
What's Changed
New user features:
- The "Exposure Mode" and "Focus Mode" actions can "Learn" from the active camera mode. (#33)
- Actions and presets to access the on-screen display (OSD) menu have been added. (#35)
- The "Custom command" action now supports user-filled numeric parameters. (#33, #42)
Bugfixes:
- The "EXP MODE" Exposure Mode preset now works. (#40)
- (The action itself has always worked, but instances created by dragging the preset on to a button page previously would not work.)
Internal changes:
- The VISCA message sending/receiving pipeline has been completely rewritten. (#33, #42)
- Responses to VISCA messages sent to the camera are now processed, rather than being totally ignored.
- This allows command errors to be detected, and it enables sending VISCA inquiries to the camera and reacting to the response information -- for example, to add the "Learn" support mentioned above.
- VISCA messages are now represented in a structured format. (#33, #42)
- Commands are messages that may contain parameters. Their expected response is ACK followed by Completion.
- Inquiries are fixed-byte-sequence messages. An inquiry's expected response must match an inquiry-specific format and can contain parameters. (Inquiries are not yet directly exposed to module users. But they are used inside module code itself, and more internal uses will be added in the future.)
- The module has been incrementally (but completely) converted to TypeScript and may be compiled using the standard
yarn install && yarn build
. (#37) - Support for testing using Jest (run them with
yarn test
) has been added.- Brief tests have been added for command representation and for the "Custom command" action upgrade script.
- Extensive tests have been added for VISCA command/inquiry sending and response processing.
- A Github workflow that automatically builds and tests the module on push/PR has been added.
This release is a major-version bump:
- The command/processing rewrite is more than complicated enough to warrant it.
- The "Custom command" changes presume that all user custom commands will receive an ACK followed by Completion (or an error) in response.
- If your custom command expects a different response, you likely won't be able to use it. (File an issue and perhaps this shortcoming can be fixed.)
Camera assumptions
This release makes certain assumptions about cameras:
- The camera must adhere to the PTZOptics VISCA over IP return message interface:
- ACK (
90 4y FF
) and later Completion (90 5y FF
) for a successful command (y
remaining consistent in the two return messages) - Syntax Error (
90 60 02 FF
) for unrecognized or invalidly specified commands/inquiries - Command Buffer Full (
90 60 03 FF
) when the camera is too backed-up to process the command/inquiry - Command Not Executable (
90 6y 41 FF
) when a command isn't currently executable (because, for example, the proper camera mode isn't active)- This must be the only return message for a command in error: it cannot be preceded by an ACK assigning it to socket
y
.
- This must be the only return message for a command in error: it cannot be preceded by an ACK assigning it to socket
- All camera inquiries must be responded to by
90 50 <one or more non-FF bytes> FF
.- The camera must specifically support the PTZOptics "Exposure Mode" and "Focus Mode" inquiries to "Learn" the modes' current values for the appropriate action.
- The camera must support the PTZOptics "Menu Open / Close" inquiry for the "OSD Open/Close" action (with "open" selected) to work.
- ACK (
Your mileage will vary if you use this module with a camera incompatible with these assumptions.
Full Changelog: v2.1.0...v3.0.0-rc2