-
Notifications
You must be signed in to change notification settings - Fork 0
/
nmea_static_checker.rb
79 lines (65 loc) · 2.14 KB
/
nmea_static_checker.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#!/usr/bin/env ruby
# encoding: utf-8
require 'sequel'
require 'set'
#Sequel.database_timezone = :utc
Sequel.database_timezone = :local
# CHECKS CURRENT STATIC RELATED DATA AGAINST DB DATA
class StaticDataChecker
def initialize(ais_type5_hash)
@ais_type5_hash = ais_type5_hash
end
def db_static_data_epfd18_read(mmsi, epfd_v)
static_db_data = DB[:tmv_static_nmea]
.where(:mmsi_static_nmea => "#{mmsi}", :epfd_static_nmea => 1..8)
.order(:id_static_nmea)
.last
if static_db_data.nil? == true
database_static_store = true
else
static_db_data_array = [
static_db_data[:mmsi_static_nmea],
static_db_data[:callsign_static_nmea],
static_db_data[:imo_static_nmea],
static_db_data[:name_static_nmea],
static_db_data[:bow_static_nmea],
static_db_data[:stern_static_nmea],
static_db_data[:port_static_nmea],
static_db_data[:starboard_static_nmea],
static_db_data[:epfd_static_nmea]
]
ais_type5_static_array = [
@ais_type5_hash[:mmsi],
@ais_type5_hash[:callsign],
@ais_type5_hash[:imo],
@ais_type5_hash[:name],
@ais_type5_hash[:bow],
@ais_type5_hash[:stern],
@ais_type5_hash[:port],
@ais_type5_hash[:starboard],
@ais_type5_hash[:epfd]
]
# THEN THE EPFD VALUES OF BOTH ARRAYS ARE BETWEEN 1 AND 8
if static_db_data_array.to_set == ais_type5_static_array.to_set
database_static_store = false
elsif static_db_data_array.to_set != ais_type5_static_array.to_set and
static_db_data[:epfd_static_nmea].between?(1, 8) == false
database_static_store = true
end
end
return database_static_store
end
def db_static_data_epfd015_read(mmsi, epfd_v)
static_db_data = DB[:tmv_static_nmea]
.where(:mmsi_static_nmea => "#{mmsi}")
.order(:id_static_nmea)
.last
## VESSEL PRESENT IN DB?
if static_db_data.nil? == true
database_static_store = true
else
database_static_store = false
end
return database_static_store
end
end