Class: Net::NTP::Response

Inherits:
Object
  • Object
show all
Defined in:
lib/net/ntp/ntp.rb

Instance Method Summary collapse

Constructor Details

#initialize(raw_data) ⇒ Response

Returns a new instance of Response.



101
102
103
104
# File 'lib/net/ntp/ntp.rb', line 101

def initialize(raw_data)
  @raw_data = raw_data
  @client_time_receive = Time.new.to_i
end

Instance Method Details

#leap_indicatorObject



106
107
108
# File 'lib/net/ntp/ntp.rb', line 106

def leap_indicator
  @leap_indicator ||= (packet_data_by_field[:byte1][0] & 0xC0) >> 6
end

#leap_indicator_textObject



110
111
112
# File 'lib/net/ntp/ntp.rb', line 110

def leap_indicator_text
  @leap_indicator_text ||= LEAP_INDICATOR[leap_indicator]
end

#modeObject



118
119
120
# File 'lib/net/ntp/ntp.rb', line 118

def mode
  @mode ||= (packet_data_by_field[:byte1][0] & 0x07)
end

#mode_textObject



122
123
124
# File 'lib/net/ntp/ntp.rb', line 122

def mode_text
  @mode_text ||= MODE[mode]
end

#originate_timestampObject



162
163
164
# File 'lib/net/ntp/ntp.rb', line 162

def originate_timestamp
  @originate_timestamp ||= (packet_data_by_field[:org_time] + bin2frac(packet_data_by_field[:org_time_fb]))
end

#poll_intervalObject



134
135
136
# File 'lib/net/ntp/ntp.rb', line 134

def poll_interval
  @poll_interval ||= packet_data_by_field[:poll]
end

#precisionObject



138
139
140
# File 'lib/net/ntp/ntp.rb', line 138

def precision
  @precision ||= packet_data_by_field[:precision] - 255
end

#receive_timestampObject



166
167
168
# File 'lib/net/ntp/ntp.rb', line 166

def receive_timestamp
  @receive_timestamp ||= ((packet_data_by_field[:recv_time] + bin2frac(packet_data_by_field[:recv_time_fb])) - NTP_ADJ)
end

#reference_clock_identifierObject



150
151
152
# File 'lib/net/ntp/ntp.rb', line 150

def reference_clock_identifier
  @reference_clock_identifier ||= unpack_ip(packet_data_by_field[:stratum], packet_data_by_field[:ident])
end

#reference_clock_identifier_textObject



154
155
156
# File 'lib/net/ntp/ntp.rb', line 154

def reference_clock_identifier_text
  @reference_clock_identifier_text ||= REFERENCE_CLOCK_IDENTIFIER[reference_clock_identifier]
end

#reference_timestampObject



158
159
160
# File 'lib/net/ntp/ntp.rb', line 158

def reference_timestamp
  @reference_timestamp ||= ((packet_data_by_field[:ref_time] + bin2frac(packet_data_by_field[:ref_time_fb])) - NTP_ADJ)
end

#root_delayObject



142
143
144
# File 'lib/net/ntp/ntp.rb', line 142

def root_delay
  @root_delay ||= bin2frac(packet_data_by_field[:delay_fb])
end

#root_dispersionObject



146
147
148
# File 'lib/net/ntp/ntp.rb', line 146

def root_dispersion
  @root_dispersion ||= packet_data_by_field[:disp]
end

#stratumObject



126
127
128
# File 'lib/net/ntp/ntp.rb', line 126

def stratum
  @stratum ||= packet_data_by_field[:stratum]
end

#stratum_textObject



130
131
132
# File 'lib/net/ntp/ntp.rb', line 130

def stratum_text
  @stratum_text ||= STRATUM[stratum]
end

#timeObject



174
175
176
# File 'lib/net/ntp/ntp.rb', line 174

def time
  @time ||= Time.at(receive_timestamp)
end

#transmit_timestampObject



170
171
172
# File 'lib/net/ntp/ntp.rb', line 170

def transmit_timestamp
  @transmit_timestamp ||= ((packet_data_by_field[:trans_time] + bin2frac(packet_data_by_field[:trans_time_fb])) - NTP_ADJ)
end

#version_numberObject



114
115
116
# File 'lib/net/ntp/ntp.rb', line 114

def version_number
  @version_number ||= (packet_data_by_field[:byte1][0] & 0x38) >> 3
end