MC Protocol Serial C++ 0.2.3
MC protocol serial library for MCU-oriented environments
Loading...
Searching...
No Matches
mcprotocol::serial::MelsecSerialClient Class Reference

Asynchronous MC protocol client for UART / serial integrations. More...

#include <client.hpp>

Public Member Functions

 MelsecSerialClient ()=default
 
Status configure (const ProtocolConfig &config) noexcept
 Stores protocol settings and validates the static configuration.
 
void set_rs485_hooks (const Rs485Hooks &hooks) noexcept
 Installs optional RS-485 TX begin/end hooks used by the async workflow.
 
bool busy () const noexcept
 Returns whether a request is currently in flight.
 
std::span< const std::bytepending_tx_frame () const noexcept
 Returns the encoded frame that should be sent to the UART layer.
 
Status notify_tx_complete (std::uint32_t now_ms, Status transport_status=ok_status()) noexcept
 Advances the state machine after the transport finished sending the pending frame.
 
void on_rx_bytes (std::uint32_t now_ms, std::span< const std::byte > bytes) noexcept
 Feeds received bytes into the response decoder.
 
void poll (std::uint32_t now_ms) noexcept
 Checks timeouts for the current in-flight request.
 
void cancel () noexcept
 Cancels the in-flight request and clears transient state.
 
Status async_batch_read_words (std::uint32_t now_ms, const BatchReadWordsRequest &request, std::span< std::uint16_t > out_words, CompletionHandler callback, void *user) noexcept
 Starts contiguous word read (0401).
 
Status async_read_extended_file_register_words (std::uint32_t now_ms, const ExtendedFileRegisterBatchReadWordsRequest &request, std::span< std::uint16_t > out_words, CompletionHandler callback, void *user) noexcept
 Starts extended file-register word read.
 
Status async_direct_read_extended_file_register_words (std::uint32_t now_ms, const ExtendedFileRegisterDirectBatchReadWordsRequest &request, std::span< std::uint16_t > out_words, CompletionHandler callback, void *user) noexcept
 Starts direct extended file-register word read.
 
Status async_link_direct_batch_read_words (std::uint32_t now_ms, const LinkDirectDevice &device, std::uint16_t points, std::span< std::uint16_t > out_words, CompletionHandler callback, void *user) noexcept
 Starts Jn\\... link-direct word read over device extension specification.
 
Status async_batch_read_bits (std::uint32_t now_ms, const BatchReadBitsRequest &request, std::span< BitValue > out_bits, CompletionHandler callback, void *user) noexcept
 Starts contiguous bit read (0401 bit path).
 
Status async_link_direct_batch_read_bits (std::uint32_t now_ms, const LinkDirectDevice &device, std::uint16_t points, std::span< BitValue > out_bits, CompletionHandler callback, void *user) noexcept
 Starts Jn\\... link-direct bit read over device extension specification.
 
Status async_batch_write_words (std::uint32_t now_ms, const BatchWriteWordsRequest &request, CompletionHandler callback, void *user) noexcept
 Starts contiguous word write (1401).
 
Status async_write_extended_file_register_words (std::uint32_t now_ms, const ExtendedFileRegisterBatchWriteWordsRequest &request, CompletionHandler callback, void *user) noexcept
 Starts extended file-register word write.
 
Status async_direct_write_extended_file_register_words (std::uint32_t now_ms, const ExtendedFileRegisterDirectBatchWriteWordsRequest &request, CompletionHandler callback, void *user) noexcept
 Starts direct extended file-register word write.
 
Status async_link_direct_batch_write_words (std::uint32_t now_ms, const LinkDirectDevice &device, std::span< const std::uint16_t > words, CompletionHandler callback, void *user) noexcept
 Starts Jn\\... link-direct contiguous word write over device extension specification.
 
Status async_batch_write_bits (std::uint32_t now_ms, const BatchWriteBitsRequest &request, CompletionHandler callback, void *user) noexcept
 Starts contiguous bit write (1401 bit path).
 
Status async_link_direct_batch_write_bits (std::uint32_t now_ms, const LinkDirectDevice &device, std::span< const BitValue > bits, CompletionHandler callback, void *user) noexcept
 Starts Jn\\... link-direct contiguous bit write over device extension specification.
 
Status async_extended_batch_read_words (std::uint32_t now_ms, const QualifiedBufferWordDevice &device, std::uint16_t points, std::span< std::uint16_t > out_words, CompletionHandler callback, void *user) noexcept
 Starts helper qualified word read over module-buffer access.
 
Status async_extended_batch_write_words (std::uint32_t now_ms, const QualifiedBufferWordDevice &device, std::span< const std::uint16_t > words, CompletionHandler callback, void *user) noexcept
 Starts helper qualified word write over module-buffer access.
 
Status async_random_read (std::uint32_t now_ms, const RandomReadRequest &request, std::span< std::uint32_t > out_values, CompletionHandler callback, void *user) noexcept
 Starts native random read (0403).
 
Status async_link_direct_random_read (std::uint32_t now_ms, std::span< const LinkDirectRandomReadItem > items, std::span< std::uint32_t > out_values, CompletionHandler callback, void *user) noexcept
 Starts native Jn\\... random read (0403 + device extension specification).
 
Status async_random_write_words (std::uint32_t now_ms, std::span< const RandomWriteWordItem > items, CompletionHandler callback, void *user) noexcept
 Starts native random word/dword write (1402 word path).
 
Status async_random_write_extended_file_register_words (std::uint32_t now_ms, std::span< const ExtendedFileRegisterRandomWriteWordItem > items, CompletionHandler callback, void *user) noexcept
 Starts extended file-register random word write.
 
Status async_link_direct_random_write_words (std::uint32_t now_ms, std::span< const LinkDirectRandomWriteWordItem > items, CompletionHandler callback, void *user) noexcept
 Starts native Jn\\... random word write (1402 + device extension specification).
 
Status async_random_write_bits (std::uint32_t now_ms, std::span< const RandomWriteBitItem > items, CompletionHandler callback, void *user) noexcept
 Starts native random bit write (1402 bit path).
 
Status async_link_direct_random_write_bits (std::uint32_t now_ms, std::span< const LinkDirectRandomWriteBitItem > items, CompletionHandler callback, void *user) noexcept
 Starts native Jn\\... random bit write (1402 + device extension specification).
 
Status async_multi_block_read (std::uint32_t now_ms, const MultiBlockReadRequest &request, std::span< std::uint16_t > out_words, std::span< BitValue > out_bits, std::span< MultiBlockReadBlockResult > out_results, CompletionHandler callback, void *user) noexcept
 Starts native multi-block read (0406).
 
Status async_link_direct_multi_block_read (std::uint32_t now_ms, const LinkDirectMultiBlockReadRequest &request, std::span< std::uint16_t > out_words, std::span< BitValue > out_bits, std::span< MultiBlockReadBlockResult > out_results, CompletionHandler callback, void *user) noexcept
 Starts native Jn\\... multi-block read (0406 + device extension specification).
 
Status async_multi_block_write (std::uint32_t now_ms, const MultiBlockWriteRequest &request, CompletionHandler callback, void *user) noexcept
 Starts native multi-block write (1406).
 
Status async_link_direct_multi_block_write (std::uint32_t now_ms, const LinkDirectMultiBlockWriteRequest &request, CompletionHandler callback, void *user) noexcept
 Starts native Jn\\... multi-block write (1406 + device extension specification).
 
Status async_register_monitor (std::uint32_t now_ms, const MonitorRegistration &request, CompletionHandler callback, void *user) noexcept
 Starts monitor registration (0801).
 
Status async_register_extended_file_register_monitor (std::uint32_t now_ms, const ExtendedFileRegisterMonitorRegistration &request, CompletionHandler callback, void *user) noexcept
 Starts extended file-register monitor registration.
 
Status async_link_direct_register_monitor (std::uint32_t now_ms, const LinkDirectMonitorRegistration &request, CompletionHandler callback, void *user) noexcept
 Starts native Jn\\... monitor registration (0801 + device extension specification).
 
Status async_read_monitor (std::uint32_t now_ms, std::span< std::uint32_t > out_values, CompletionHandler callback, void *user) noexcept
 Starts monitor read (0802) using the most recent registration.
 
Status async_read_extended_file_register_monitor (std::uint32_t now_ms, std::span< std::uint16_t > out_words, CompletionHandler callback, void *user) noexcept
 Starts extended file-register monitor read.
 
Status async_read_host_buffer (std::uint32_t now_ms, const HostBufferReadRequest &request, std::span< std::uint16_t > out_words, CompletionHandler callback, void *user) noexcept
 Starts host-buffer read (0613).
 
Status async_write_host_buffer (std::uint32_t now_ms, const HostBufferWriteRequest &request, CompletionHandler callback, void *user) noexcept
 Starts host-buffer write (1613).
 
Status async_read_module_buffer (std::uint32_t now_ms, const ModuleBufferReadRequest &request, std::span< std::byte > out_bytes, CompletionHandler callback, void *user) noexcept
 Starts module-buffer byte read (0601).
 
Status async_write_module_buffer (std::uint32_t now_ms, const ModuleBufferWriteRequest &request, CompletionHandler callback, void *user) noexcept
 Starts module-buffer byte write (1601).
 
Status async_read_cpu_model (std::uint32_t now_ms, CpuModelInfo &out_info, CompletionHandler callback, void *user) noexcept
 Starts CPU-model read.
 
Status async_remote_run (std::uint32_t now_ms, RemoteOperationMode mode, RemoteRunClearMode clear_mode, CompletionHandler callback, void *user) noexcept
 Starts remote RUN (1001).
 
Status async_remote_stop (std::uint32_t now_ms, CompletionHandler callback, void *user) noexcept
 Starts remote STOP (1002).
 
Status async_remote_pause (std::uint32_t now_ms, RemoteOperationMode mode, CompletionHandler callback, void *user) noexcept
 Starts remote PAUSE (1003).
 
Status async_remote_latch_clear (std::uint32_t now_ms, CompletionHandler callback, void *user) noexcept
 Starts remote latch clear (1005).
 
Status async_unlock_remote_password (std::uint32_t now_ms, std::string_view remote_password, CompletionHandler callback, void *user) noexcept
 Unlocks remote-password-protected access (1630).
 
Status async_lock_remote_password (std::uint32_t now_ms, std::string_view remote_password, CompletionHandler callback, void *user) noexcept
 Locks remote-password-protected access (1631).
 
Status async_clear_error_information (std::uint32_t now_ms, CompletionHandler callback, void *user) noexcept
 Starts clear error information (1617) for serial/C24 targets.
 
Status async_remote_reset (std::uint32_t now_ms, CompletionHandler callback, void *user) noexcept
 Starts remote RESET (1006).
 
Status async_read_user_frame (std::uint32_t now_ms, const UserFrameReadRequest &request, UserFrameRegistrationData &out_data, CompletionHandler callback, void *user) noexcept
 Starts user-frame registration-data read (0610).
 
Status async_write_user_frame (std::uint32_t now_ms, const UserFrameWriteRequest &request, CompletionHandler callback, void *user) noexcept
 Starts user-frame registration-data write (1610, subcommand 0000).
 
Status async_delete_user_frame (std::uint32_t now_ms, const UserFrameDeleteRequest &request, CompletionHandler callback, void *user) noexcept
 Starts user-frame registration-data delete (1610, subcommand 0001).
 
Status async_control_global_signal (std::uint32_t now_ms, const GlobalSignalControlRequest &request, CompletionHandler callback, void *user) noexcept
 Starts C24 global-signal ON/OFF control (1618).
 
Status async_initialize_c24_transmission_sequence (std::uint32_t now_ms, CompletionHandler callback, void *user) noexcept
 Starts C24 transmission-sequence initialization (1615).
 
Status async_deregister_cpu_monitoring (std::uint32_t now_ms, CompletionHandler callback, void *user) noexcept
 Starts programmable-controller CPU monitoring deregistration (0631).
 
Status async_loopback (std::uint32_t now_ms, std::span< const char > hex_ascii, std::span< char > out_echoed, CompletionHandler callback, void *user) noexcept
 Starts loopback using hexadecimal ASCII payload bytes.
 

Detailed Description

Asynchronous MC protocol client for UART / serial integrations.

The intended MCU-side workflow is:

  1. call configure()
  2. start an async_* request
  3. transmit pending_tx_frame() with the board UART layer
  4. call notify_tx_complete() when TX finishes
  5. feed received bytes with on_rx_bytes()
  6. call poll() from the main loop or scheduler for timeout handling

Output spans passed to async_* requests must remain valid until the completion callback fires or until the request is cancelled.

Definition at line 37 of file client.hpp.

Constructor & Destructor Documentation

◆ MelsecSerialClient()

mcprotocol::serial::MelsecSerialClient::MelsecSerialClient ( )
default

Member Function Documentation

◆ async_batch_read_bits()

Status mcprotocol::serial::MelsecSerialClient::async_batch_read_bits ( std::uint32_t  now_ms,
const BatchReadBitsRequest request,
std::span< BitValue out_bits,
CompletionHandler  callback,
void *  user 
)
noexcept

Starts contiguous bit read (0401 bit path).

◆ async_batch_read_words()

Status mcprotocol::serial::MelsecSerialClient::async_batch_read_words ( std::uint32_t  now_ms,
const BatchReadWordsRequest request,
std::span< std::uint16_t out_words,
CompletionHandler  callback,
void *  user 
)
noexcept

Starts contiguous word read (0401).

◆ async_batch_write_bits()

Status mcprotocol::serial::MelsecSerialClient::async_batch_write_bits ( std::uint32_t  now_ms,
const BatchWriteBitsRequest request,
CompletionHandler  callback,
void *  user 
)
noexcept

Starts contiguous bit write (1401 bit path).

◆ async_batch_write_words()

Status mcprotocol::serial::MelsecSerialClient::async_batch_write_words ( std::uint32_t  now_ms,
const BatchWriteWordsRequest request,
CompletionHandler  callback,
void *  user 
)
noexcept

Starts contiguous word write (1401).

◆ async_clear_error_information()

Status mcprotocol::serial::MelsecSerialClient::async_clear_error_information ( std::uint32_t  now_ms,
CompletionHandler  callback,
void *  user 
)
noexcept

Starts clear error information (1617) for serial/C24 targets.

◆ async_control_global_signal()

Status mcprotocol::serial::MelsecSerialClient::async_control_global_signal ( std::uint32_t  now_ms,
const GlobalSignalControlRequest request,
CompletionHandler  callback,
void *  user 
)
noexcept

Starts C24 global-signal ON/OFF control (1618).

◆ async_delete_user_frame()

Status mcprotocol::serial::MelsecSerialClient::async_delete_user_frame ( std::uint32_t  now_ms,
const UserFrameDeleteRequest request,
CompletionHandler  callback,
void *  user 
)
noexcept

Starts user-frame registration-data delete (1610, subcommand 0001).

◆ async_deregister_cpu_monitoring()

Status mcprotocol::serial::MelsecSerialClient::async_deregister_cpu_monitoring ( std::uint32_t  now_ms,
CompletionHandler  callback,
void *  user 
)
noexcept

Starts programmable-controller CPU monitoring deregistration (0631).

◆ async_direct_read_extended_file_register_words()

Status mcprotocol::serial::MelsecSerialClient::async_direct_read_extended_file_register_words ( std::uint32_t  now_ms,
const ExtendedFileRegisterDirectBatchReadWordsRequest request,
std::span< std::uint16_t out_words,
CompletionHandler  callback,
void *  user 
)
noexcept

Starts direct extended file-register word read.

◆ async_direct_write_extended_file_register_words()

Status mcprotocol::serial::MelsecSerialClient::async_direct_write_extended_file_register_words ( std::uint32_t  now_ms,
const ExtendedFileRegisterDirectBatchWriteWordsRequest request,
CompletionHandler  callback,
void *  user 
)
noexcept

Starts direct extended file-register word write.

◆ async_extended_batch_read_words()

Status mcprotocol::serial::MelsecSerialClient::async_extended_batch_read_words ( std::uint32_t  now_ms,
const QualifiedBufferWordDevice device,
std::uint16_t  points,
std::span< std::uint16_t out_words,
CompletionHandler  callback,
void *  user 
)
noexcept

Starts helper qualified word read over module-buffer access.

◆ async_extended_batch_write_words()

Status mcprotocol::serial::MelsecSerialClient::async_extended_batch_write_words ( std::uint32_t  now_ms,
const QualifiedBufferWordDevice device,
std::span< const std::uint16_t words,
CompletionHandler  callback,
void *  user 
)
noexcept

Starts helper qualified word write over module-buffer access.

◆ async_initialize_c24_transmission_sequence()

Status mcprotocol::serial::MelsecSerialClient::async_initialize_c24_transmission_sequence ( std::uint32_t  now_ms,
CompletionHandler  callback,
void *  user 
)
noexcept

Starts C24 transmission-sequence initialization (1615).

◆ async_link_direct_batch_read_bits()

Status mcprotocol::serial::MelsecSerialClient::async_link_direct_batch_read_bits ( std::uint32_t  now_ms,
const LinkDirectDevice device,
std::uint16_t  points,
std::span< BitValue out_bits,
CompletionHandler  callback,
void *  user 
)
noexcept

Starts Jn\\... link-direct bit read over device extension specification.

◆ async_link_direct_batch_read_words()

Status mcprotocol::serial::MelsecSerialClient::async_link_direct_batch_read_words ( std::uint32_t  now_ms,
const LinkDirectDevice device,
std::uint16_t  points,
std::span< std::uint16_t out_words,
CompletionHandler  callback,
void *  user 
)
noexcept

Starts Jn\\... link-direct word read over device extension specification.

◆ async_link_direct_batch_write_bits()

Status mcprotocol::serial::MelsecSerialClient::async_link_direct_batch_write_bits ( std::uint32_t  now_ms,
const LinkDirectDevice device,
std::span< const BitValue bits,
CompletionHandler  callback,
void *  user 
)
noexcept

Starts Jn\\... link-direct contiguous bit write over device extension specification.

◆ async_link_direct_batch_write_words()

Status mcprotocol::serial::MelsecSerialClient::async_link_direct_batch_write_words ( std::uint32_t  now_ms,
const LinkDirectDevice device,
std::span< const std::uint16_t words,
CompletionHandler  callback,
void *  user 
)
noexcept

Starts Jn\\... link-direct contiguous word write over device extension specification.

◆ async_link_direct_multi_block_read()

Status mcprotocol::serial::MelsecSerialClient::async_link_direct_multi_block_read ( std::uint32_t  now_ms,
const LinkDirectMultiBlockReadRequest request,
std::span< std::uint16_t out_words,
std::span< BitValue out_bits,
std::span< MultiBlockReadBlockResult out_results,
CompletionHandler  callback,
void *  user 
)
noexcept

Starts native Jn\\... multi-block read (0406 + device extension specification).

The returned out_results preserve block order, point counts, and offsets. Their head_device field contains the inner device code/address, while the network number stays in the original request blocks.

◆ async_link_direct_multi_block_write()

Status mcprotocol::serial::MelsecSerialClient::async_link_direct_multi_block_write ( std::uint32_t  now_ms,
const LinkDirectMultiBlockWriteRequest request,
CompletionHandler  callback,
void *  user 
)
noexcept

Starts native Jn\\... multi-block write (1406 + device extension specification).

◆ async_link_direct_random_read()

Status mcprotocol::serial::MelsecSerialClient::async_link_direct_random_read ( std::uint32_t  now_ms,
std::span< const LinkDirectRandomReadItem items,
std::span< std::uint32_t out_values,
CompletionHandler  callback,
void *  user 
)
noexcept

Starts native Jn\\... random read (0403 + device extension specification).

◆ async_link_direct_random_write_bits()

Status mcprotocol::serial::MelsecSerialClient::async_link_direct_random_write_bits ( std::uint32_t  now_ms,
std::span< const LinkDirectRandomWriteBitItem items,
CompletionHandler  callback,
void *  user 
)
noexcept

Starts native Jn\\... random bit write (1402 + device extension specification).

◆ async_link_direct_random_write_words()

Status mcprotocol::serial::MelsecSerialClient::async_link_direct_random_write_words ( std::uint32_t  now_ms,
std::span< const LinkDirectRandomWriteWordItem items,
CompletionHandler  callback,
void *  user 
)
noexcept

Starts native Jn\\... random word write (1402 + device extension specification).

◆ async_link_direct_register_monitor()

Status mcprotocol::serial::MelsecSerialClient::async_link_direct_register_monitor ( std::uint32_t  now_ms,
const LinkDirectMonitorRegistration request,
CompletionHandler  callback,
void *  user 
)
noexcept

Starts native Jn\\... monitor registration (0801 + device extension specification).

◆ async_lock_remote_password()

Status mcprotocol::serial::MelsecSerialClient::async_lock_remote_password ( std::uint32_t  now_ms,
std::string_view  remote_password,
CompletionHandler  callback,
void *  user 
)
noexcept

Locks remote-password-protected access (1631).

◆ async_loopback()

Status mcprotocol::serial::MelsecSerialClient::async_loopback ( std::uint32_t  now_ms,
std::span< const char >  hex_ascii,
std::span< char >  out_echoed,
CompletionHandler  callback,
void *  user 
)
noexcept

Starts loopback using hexadecimal ASCII payload bytes.

◆ async_multi_block_read()

Status mcprotocol::serial::MelsecSerialClient::async_multi_block_read ( std::uint32_t  now_ms,
const MultiBlockReadRequest request,
std::span< std::uint16_t out_words,
std::span< BitValue out_bits,
std::span< MultiBlockReadBlockResult out_results,
CompletionHandler  callback,
void *  user 
)
noexcept

Starts native multi-block read (0406).

◆ async_multi_block_write()

Status mcprotocol::serial::MelsecSerialClient::async_multi_block_write ( std::uint32_t  now_ms,
const MultiBlockWriteRequest request,
CompletionHandler  callback,
void *  user 
)
noexcept

Starts native multi-block write (1406).

◆ async_random_read()

Status mcprotocol::serial::MelsecSerialClient::async_random_read ( std::uint32_t  now_ms,
const RandomReadRequest request,
std::span< std::uint32_t out_values,
CompletionHandler  callback,
void *  user 
)
noexcept

Starts native random read (0403).

◆ async_random_write_bits()

Status mcprotocol::serial::MelsecSerialClient::async_random_write_bits ( std::uint32_t  now_ms,
std::span< const RandomWriteBitItem items,
CompletionHandler  callback,
void *  user 
)
noexcept

Starts native random bit write (1402 bit path).

◆ async_random_write_extended_file_register_words()

Status mcprotocol::serial::MelsecSerialClient::async_random_write_extended_file_register_words ( std::uint32_t  now_ms,
std::span< const ExtendedFileRegisterRandomWriteWordItem items,
CompletionHandler  callback,
void *  user 
)
noexcept

Starts extended file-register random word write.

◆ async_random_write_words()

Status mcprotocol::serial::MelsecSerialClient::async_random_write_words ( std::uint32_t  now_ms,
std::span< const RandomWriteWordItem items,
CompletionHandler  callback,
void *  user 
)
noexcept

Starts native random word/dword write (1402 word path).

◆ async_read_cpu_model()

Status mcprotocol::serial::MelsecSerialClient::async_read_cpu_model ( std::uint32_t  now_ms,
CpuModelInfo out_info,
CompletionHandler  callback,
void *  user 
)
noexcept

Starts CPU-model read.

◆ async_read_extended_file_register_monitor()

Status mcprotocol::serial::MelsecSerialClient::async_read_extended_file_register_monitor ( std::uint32_t  now_ms,
std::span< std::uint16_t out_words,
CompletionHandler  callback,
void *  user 
)
noexcept

Starts extended file-register monitor read.

◆ async_read_extended_file_register_words()

Status mcprotocol::serial::MelsecSerialClient::async_read_extended_file_register_words ( std::uint32_t  now_ms,
const ExtendedFileRegisterBatchReadWordsRequest request,
std::span< std::uint16_t out_words,
CompletionHandler  callback,
void *  user 
)
noexcept

Starts extended file-register word read.

◆ async_read_host_buffer()

Status mcprotocol::serial::MelsecSerialClient::async_read_host_buffer ( std::uint32_t  now_ms,
const HostBufferReadRequest request,
std::span< std::uint16_t out_words,
CompletionHandler  callback,
void *  user 
)
noexcept

Starts host-buffer read (0613).

◆ async_read_module_buffer()

Status mcprotocol::serial::MelsecSerialClient::async_read_module_buffer ( std::uint32_t  now_ms,
const ModuleBufferReadRequest request,
std::span< std::byte out_bytes,
CompletionHandler  callback,
void *  user 
)
noexcept

Starts module-buffer byte read (0601).

◆ async_read_monitor()

Status mcprotocol::serial::MelsecSerialClient::async_read_monitor ( std::uint32_t  now_ms,
std::span< std::uint32_t out_values,
CompletionHandler  callback,
void *  user 
)
noexcept

Starts monitor read (0802) using the most recent registration.

◆ async_read_user_frame()

Status mcprotocol::serial::MelsecSerialClient::async_read_user_frame ( std::uint32_t  now_ms,
const UserFrameReadRequest request,
UserFrameRegistrationData out_data,
CompletionHandler  callback,
void *  user 
)
noexcept

Starts user-frame registration-data read (0610).

◆ async_register_extended_file_register_monitor()

Status mcprotocol::serial::MelsecSerialClient::async_register_extended_file_register_monitor ( std::uint32_t  now_ms,
const ExtendedFileRegisterMonitorRegistration request,
CompletionHandler  callback,
void *  user 
)
noexcept

Starts extended file-register monitor registration.

◆ async_register_monitor()

Status mcprotocol::serial::MelsecSerialClient::async_register_monitor ( std::uint32_t  now_ms,
const MonitorRegistration request,
CompletionHandler  callback,
void *  user 
)
noexcept

Starts monitor registration (0801).

◆ async_remote_latch_clear()

Status mcprotocol::serial::MelsecSerialClient::async_remote_latch_clear ( std::uint32_t  now_ms,
CompletionHandler  callback,
void *  user 
)
noexcept

Starts remote latch clear (1005).

◆ async_remote_pause()

Status mcprotocol::serial::MelsecSerialClient::async_remote_pause ( std::uint32_t  now_ms,
RemoteOperationMode  mode,
CompletionHandler  callback,
void *  user 
)
noexcept

Starts remote PAUSE (1003).

◆ async_remote_reset()

Status mcprotocol::serial::MelsecSerialClient::async_remote_reset ( std::uint32_t  now_ms,
CompletionHandler  callback,
void *  user 
)
noexcept

Starts remote RESET (1006).

The manual notes that some targets may reset before returning a response. In that case this client treats a pure response-timeout with no received bytes as success for this operation.

◆ async_remote_run()

Status mcprotocol::serial::MelsecSerialClient::async_remote_run ( std::uint32_t  now_ms,
RemoteOperationMode  mode,
RemoteRunClearMode  clear_mode,
CompletionHandler  callback,
void *  user 
)
noexcept

Starts remote RUN (1001).

◆ async_remote_stop()

Status mcprotocol::serial::MelsecSerialClient::async_remote_stop ( std::uint32_t  now_ms,
CompletionHandler  callback,
void *  user 
)
noexcept

Starts remote STOP (1002).

◆ async_unlock_remote_password()

Status mcprotocol::serial::MelsecSerialClient::async_unlock_remote_password ( std::uint32_t  now_ms,
std::string_view  remote_password,
CompletionHandler  callback,
void *  user 
)
noexcept

Unlocks remote-password-protected access (1630).

◆ async_write_extended_file_register_words()

Status mcprotocol::serial::MelsecSerialClient::async_write_extended_file_register_words ( std::uint32_t  now_ms,
const ExtendedFileRegisterBatchWriteWordsRequest request,
CompletionHandler  callback,
void *  user 
)
noexcept

Starts extended file-register word write.

◆ async_write_host_buffer()

Status mcprotocol::serial::MelsecSerialClient::async_write_host_buffer ( std::uint32_t  now_ms,
const HostBufferWriteRequest request,
CompletionHandler  callback,
void *  user 
)
noexcept

Starts host-buffer write (1613).

◆ async_write_module_buffer()

Status mcprotocol::serial::MelsecSerialClient::async_write_module_buffer ( std::uint32_t  now_ms,
const ModuleBufferWriteRequest request,
CompletionHandler  callback,
void *  user 
)
noexcept

Starts module-buffer byte write (1601).

◆ async_write_user_frame()

Status mcprotocol::serial::MelsecSerialClient::async_write_user_frame ( std::uint32_t  now_ms,
const UserFrameWriteRequest request,
CompletionHandler  callback,
void *  user 
)
noexcept

Starts user-frame registration-data write (1610, subcommand 0000).

◆ busy()

bool mcprotocol::serial::MelsecSerialClient::busy ( ) const
noexcept

Returns whether a request is currently in flight.

◆ cancel()

void mcprotocol::serial::MelsecSerialClient::cancel ( )
noexcept

Cancels the in-flight request and clears transient state.

◆ configure()

Status mcprotocol::serial::MelsecSerialClient::configure ( const ProtocolConfig config)
noexcept

Stores protocol settings and validates the static configuration.

◆ notify_tx_complete()

Status mcprotocol::serial::MelsecSerialClient::notify_tx_complete ( std::uint32_t  now_ms,
Status  transport_status = ok_status() 
)
noexcept

Advances the state machine after the transport finished sending the pending frame.

◆ on_rx_bytes()

void mcprotocol::serial::MelsecSerialClient::on_rx_bytes ( std::uint32_t  now_ms,
std::span< const std::byte bytes 
)
noexcept

Feeds received bytes into the response decoder.

◆ pending_tx_frame()

std::span< const std::byte > mcprotocol::serial::MelsecSerialClient::pending_tx_frame ( ) const
noexcept

Returns the encoded frame that should be sent to the UART layer.

◆ poll()

void mcprotocol::serial::MelsecSerialClient::poll ( std::uint32_t  now_ms)
noexcept

Checks timeouts for the current in-flight request.

◆ set_rs485_hooks()

void mcprotocol::serial::MelsecSerialClient::set_rs485_hooks ( const Rs485Hooks hooks)
noexcept

Installs optional RS-485 TX begin/end hooks used by the async workflow.


The documentation for this class was generated from the following file: