Class: McProtocolE::Frame3e::AccessRoute

Inherits:
Object
  • Object
show all
Defined in:
lib/mc_protocol_e/frame_3e/access_route.rb

Overview

This class shows a access route.

Constant Summary collapse

OWN_NETWORK_NUM =
0
OWN_PC_NUM =
255
NORMAL_UNIT_IO_NUM =
1023
NORMAL_UNIT_STATION_NUM =
0

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(network_num:, pc_num:, unit_io_num:, unit_station_num:) ⇒ AccessRoute

Constructor.

Parameters:

  • network_num (Integer)

    network number

  • pc_num (Integer)

    PC number

  • unit_io_num (Integer)

    unit io number

  • unit_station_num (Integer)

    unit station number



20
21
22
23
24
25
# File 'lib/mc_protocol_e/frame_3e/access_route.rb', line 20

def initialize(network_num:, pc_num:, unit_io_num:, unit_station_num:)
  @network_num = network_num
  @pc_num = pc_num
  @unit_io_num = unit_io_num
  @unit_station_num = unit_station_num
end

Instance Attribute Details

#network_numObject (readonly)

Returns the value of attribute network_num.



13
14
15
# File 'lib/mc_protocol_e/frame_3e/access_route.rb', line 13

def network_num
  @network_num
end

#pc_numObject (readonly)

Returns the value of attribute pc_num.



13
14
15
# File 'lib/mc_protocol_e/frame_3e/access_route.rb', line 13

def pc_num
  @pc_num
end

#unit_io_numObject (readonly)

Returns the value of attribute unit_io_num.



13
14
15
# File 'lib/mc_protocol_e/frame_3e/access_route.rb', line 13

def unit_io_num
  @unit_io_num
end

#unit_station_numObject (readonly)

Returns the value of attribute unit_station_num.



13
14
15
# File 'lib/mc_protocol_e/frame_3e/access_route.rb', line 13

def unit_station_num
  @unit_station_num
end

Class Method Details

.from_raw(raw) ⇒ AccessRoute

Returns instance from binary string.

Parameters:

  • raw (String)

    binary string showing a access route

Returns:

Raises:

  • (ArgumentError)


30
31
32
33
34
35
36
37
38
39
# File 'lib/mc_protocol_e/frame_3e/access_route.rb', line 30

def self.from_raw(raw)
  raise ArgumentError, "raw string is not access route" unless raw && raw.size >= 5

  new(
    network_num: raw[0].unpack1("C"),
    pc_num: raw[1].unpack1("C"),
    unit_io_num: raw[2..3].unpack1("v"),
    unit_station_num: raw[4].unpack1("C"),
  )
end

.own_stationAccessRoute

Returns instance of own station.

Returns:



43
44
45
# File 'lib/mc_protocol_e/frame_3e/access_route.rb', line 43

def self.own_station
  new(network_num: OWN_NETWORK_NUM, pc_num: OWN_PC_NUM, unit_io_num: NORMAL_UNIT_IO_NUM, unit_station_num: NORMAL_UNIT_STATION_NUM)
end

Instance Method Details

#to_bString

Returns binary string.

Returns:

  • (String)

    binary string



49
50
51
52
53
54
55
56
# File 'lib/mc_protocol_e/frame_3e/access_route.rb', line 49

def to_b
  [
    [network_num].pack("v")[0],
    [pc_num].pack("v")[0],
    [unit_io_num].pack("v"),
    [unit_station_num].pack("v")[0],
  ].join
end

#to_sString

Returns string.

Returns:

  • (String)

    string



60
61
62
# File 'lib/mc_protocol_e/frame_3e/access_route.rb', line 60

def to_s
  "network num: #{network_num} pc num: #{pc_num} unit io num: #{unit_io_num} unit station num: #{unit_station_num}"
end