pub struct Message(/* private fields */);
Expand description
Single command message object type.
There are several way to build a message:
-
The main constructor Message::new() for “standard” messages.
-
Use the builder pattern with MessageBuilder.
-
Many convenient constructors are provided for “extended” commands.
-
Message::from_bytes() allows to manually specify the address and data words bytes, and will automatically fill the sync byte and checksum.
-
Full control of all the bytes values is possible with the trait implementaion From<[u8;7]>.
The bytes of a Message
can be accessed with Message::as_ref()
.
Message
objects can also be sent to the target device with
PelcoDPort::send_message().
Implementations§
Source§impl Message
impl Message
Sourcepub fn new(
address: u8,
cmd1: Command1,
cmd2: Command2,
data1: u8,
data2: u8,
) -> Message
pub fn new( address: u8, cmd1: Command1, cmd2: Command2, data1: u8, data2: u8, ) -> Message
New “standard” command message. This constructor cannot be used for “extended” commands, for which dedicated constructors or Message::from_bytes() should be used.
Example:
let msg = Message::new(
10,
Command1::SENSE | Command1::CAMERA_ON_OFF,
Command2::FOCUS_FAR | Command2::DOWN,
0x00,
0x40,
);
assert_eq!(&[0xFF, 0x0A, 0x88, 0x90, 0x00, 0x40, 0x62], msg.as_ref());
Sourcepub fn from_bytes(address: u8, words: [u8; 4]) -> Message
pub fn from_bytes(address: u8, words: [u8; 4]) -> Message
Alternate constructor taking the raw words to insert in the message. The sync byte and checksum automatically inserted.
Sourcepub fn set_preset(address: u8, preset_id: u8) -> Result<Message>
pub fn set_preset(address: u8, preset_id: u8) -> Result<Message>
Set Preset. An error is returned if preset_id
is 0, but special values
(like “flip 180”) are not checked.
Sourcepub fn clear_preset(address: u8, preset_id: u8) -> Result<Message>
pub fn clear_preset(address: u8, preset_id: u8) -> Result<Message>
Clear Preet. An error is returned if preset_id
is 0.
Sourcepub fn go_to_preset(address: u8, preset_id: u8) -> Result<Message>
pub fn go_to_preset(address: u8, preset_id: u8) -> Result<Message>
Call Preet. An error is returned if preset_id
is 0.
Sourcepub fn go_to_zero_pan(address: u8) -> Result<Message>
pub fn go_to_zero_pan(address: u8) -> Result<Message>
Call the special preset “Go To Zero Pan”.
Sourcepub fn set_auxiliary(address: u8, sub_opcode: u8, aux_id: u8) -> Result<Message>
pub fn set_auxiliary(address: u8, sub_opcode: u8, aux_id: u8) -> Result<Message>
Set Auxiliary. No particular check is done on the arguments.
Sourcepub fn clear_auxiliary(
address: u8,
sub_opcode: u8,
aux_id: u8,
) -> Result<Message>
pub fn clear_auxiliary( address: u8, sub_opcode: u8, aux_id: u8, ) -> Result<Message>
Clear Auxiliary. No particular check is done on the arguments.
Sourcepub fn remote_reset(address: u8) -> Result<Message>
pub fn remote_reset(address: u8) -> Result<Message>
Reset.
Sourcepub fn write_char_to_screen(
address: u8,
column: u8,
character: char,
) -> Result<Message>
pub fn write_char_to_screen( address: u8, column: u8, character: char, ) -> Result<Message>
Write Character To Screen.
Sourcepub fn clear_screen(address: u8) -> Result<Message>
pub fn clear_screen(address: u8) -> Result<Message>
Clear Screen.
Sourcepub fn zone_scan_on(address: u8) -> Result<Message>
pub fn zone_scan_on(address: u8) -> Result<Message>
Zone Scan On.
Sourcepub fn zone_scan_off(address: u8) -> Result<Message>
pub fn zone_scan_off(address: u8) -> Result<Message>
Zone Scan Off.
Sourcepub fn set_focus_speed(address: u8, speed: FocusSpeed) -> Result<Message>
pub fn set_focus_speed(address: u8, speed: FocusSpeed) -> Result<Message>
Set Focus Speed.
Sourcepub fn reset_camera_to_defaults(address: u8) -> Result<Message>
pub fn reset_camera_to_defaults(address: u8) -> Result<Message>
Reset Camera to Defaults.
Sourcepub fn backlight_compensation(address: u8, ctrl: OnOff) -> Result<Message>
pub fn backlight_compensation(address: u8, ctrl: OnOff) -> Result<Message>
Backlight Compensation.
Sourcepub fn enable_device_phase_delay_mode(address: u8) -> Result<Message>
pub fn enable_device_phase_delay_mode(address: u8) -> Result<Message>
Enable Device Phase Delay Mode.
Sourcepub fn set_shutter_speed(address: u8, ctrl: ShutterSpeed) -> Result<Message>
pub fn set_shutter_speed(address: u8, ctrl: ShutterSpeed) -> Result<Message>
Set Shutter Speed.
Sourcepub fn adjust_line_lock_phase_delay(
address: u8,
ctrl: AdjustmentValue,
) -> Result<Message>
pub fn adjust_line_lock_phase_delay( address: u8, ctrl: AdjustmentValue, ) -> Result<Message>
Adjust Line Lock Phase Delay.
Sourcepub fn adjust_white_balance_rb(
address: u8,
ctrl: AdjustmentValue,
) -> Result<Message>
pub fn adjust_white_balance_rb( address: u8, ctrl: AdjustmentValue, ) -> Result<Message>
Adjust White Balance (R-B)
Sourcepub fn adjust_white_balance_mg(
address: u8,
ctrl: AdjustmentValue,
) -> Result<Message>
pub fn adjust_white_balance_mg( address: u8, ctrl: AdjustmentValue, ) -> Result<Message>
Adjust White Balance (M-G)
Sourcepub fn adjust_gain(address: u8, ctrl: AdjustmentValue) -> Result<Message>
pub fn adjust_gain(address: u8, ctrl: AdjustmentValue) -> Result<Message>
Adjust Gain.
Sourcepub fn adjust_auto_iris_level(
address: u8,
ctrl: AdjustmentValue,
) -> Result<Message>
pub fn adjust_auto_iris_level( address: u8, ctrl: AdjustmentValue, ) -> Result<Message>
Adjust Auto-Iris Level
Sourcepub fn adjust_auto_iris_peak(
address: u8,
ctrl: AdjustmentValue,
) -> Result<Message>
pub fn adjust_auto_iris_peak( address: u8, ctrl: AdjustmentValue, ) -> Result<Message>
Adjust Auto-Iris Peak Value.