Class: McProtocolE::Frame1e::Request
- Inherits:
-
Object
- Object
- McProtocolE::Frame1e::Request
- Defined in:
- lib/mc_protocol_e/frame_1e/request.rb
Overview
This class shows a request of MC protocol.
Constant Summary collapse
- DEFAULT_READ_TIMEOUT =
3
Class Method Summary collapse
-
.batch_read_in_word(access_route:, wait_sec:, device_range:) ⇒ Object
Returns a request to batch read.
-
.batch_write_in_word(access_route:, wait_sec:, device_range:, values:) ⇒ Object
Returns a request to batch write.
Instance Method Summary collapse
-
#exec(socket, read_timeout = DEFAULT_READ_TIMEOUT) ⇒ Object
Writes and returns a response.
-
#initialize(access_route:, wait_sec:, command:) ⇒ Request
constructor
Constructor.
-
#to_b ⇒ String
Returns binary string.
Constructor Details
#initialize(access_route:, wait_sec:, command:) ⇒ Request
Constructor.
18 19 20 21 22 23 |
# File 'lib/mc_protocol_e/frame_1e/request.rb', line 18 def initialize(access_route:, wait_sec:, command:) @sub_header = command.request_header @access_route = access_route @wait_sec = WaitSec.new(wait_sec) @command = command end |
Class Method Details
.batch_read_in_word(access_route:, wait_sec:, device_range:) ⇒ Object
Returns a request to batch read.
29 30 31 |
# File 'lib/mc_protocol_e/frame_1e/request.rb', line 29 def self.batch_read_in_word(access_route:, wait_sec:, device_range:) new(access_route: access_route, wait_sec: wait_sec, command: BatchReadInWord.new(device_range: device_range)) end |
.batch_write_in_word(access_route:, wait_sec:, device_range:, values:) ⇒ Object
Returns a request to batch write.
38 39 40 |
# File 'lib/mc_protocol_e/frame_1e/request.rb', line 38 def self.batch_write_in_word(access_route:, wait_sec:, device_range:, values:) new(access_route: access_route, wait_sec: wait_sec, command: BatchWriteInWord.new(device_range: device_range, values: values)) end |
Instance Method Details
#exec(socket, read_timeout = DEFAULT_READ_TIMEOUT) ⇒ Object
Writes and returns a response.
46 47 48 49 50 |
# File 'lib/mc_protocol_e/frame_1e/request.rb', line 46 def exec(socket, read_timeout = DEFAULT_READ_TIMEOUT) socket.write(to_b) res = Response.recv(socket, read_timeout) command.parse(res) end |
#to_b ⇒ String
Returns binary string.
54 55 56 |
# File 'lib/mc_protocol_e/frame_1e/request.rb', line 54 def to_b sub_header + access_route.to_b + wait_sec.to_b + command.to_b end |