This repository has been archived by the owner on Jan 22, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 6
Draft Universal Data Model
rob42 edited this page Mar 23, 2014
·
18 revisions
Ran this up as a starting point - this was created by thinking on what I need to store to allow numerous lightweight processes that receive, update, calculate, or consume data. Basically the more elaborate ones are stuff I do now, the simple ones a best guess - rob42
{
vessels[]
{
uid:{ //what to use for uid - mmsi, name, generated id?
name:
mmsi:
source{self|AIS|NET}
timezone
navigation:{
state moored|anchored|leaving|motoring|sailing|anchoring|mooring|fishing|drifting|mayday|panpan|mob...
headingNorth
headingMagnetic
declination
speedOverGround
speedOverWater
latitude
longitude
altitude
pitch
roll
rateOfTurn
currentRoute:{
route
startTime
eta
lastWaypoint
lastWaypointTime
nextWaypoint
nextWaypointEta
directBearing
actualBearing
courseRequired
xte
}
set
drift
}
communication:{
dscCallsign
vhfCallsign
hfCallsign
hfEmail
email
cellPhone
satPhone
skipperName
}
environmental{
waterTemp
salinity
highTideHeight
highTideTime
lowTideHeight
lowTideTime
actualTideHeight
//water currents
currentSpeed
currentDirection
airTemp
airPressure
airPressureChangeRateAlarm
humidity
trueWindSpeed
trueWindDirection
apparentWindSpeed
apparentWindDirection
windSpeedChangeAlarm //max change in speed
windDirectionChangeAlarm //max change in degrees
gpsSatelliteData
}
alarms{
silentInterval
windAlarmMethod message|sound|email|sms|dsc|?
windAlarmState off|on|alarm|silent //silent is temp
anchorAlarmMethod message|sound|email|sms|dsc|?
anchorAlarmState off|on|alarm|silent
gpsAlarmMethod message|sound|email|sms|dsc|?
gpsAlarmState off|on|alarm|silent
autopilotAlarmMethod message|sound|email|sms|dsc|?
autopilotAlarmState off|on|alarm|silent
panpanAlarmMethod message|sound|email|sms|dsc|?
maydayAlarmMethod message|sound|email|sms|dsc|?
fireAlarmMethod message|sound|email|sms|dsc|?
gasAlarmMethod message|sound|email|sms|dsc|?
powerAlarmMethod message|sound|email|sms|dsc|?
engineAlarmMethod message|sound|email|sms|dsc|?
//more thought on alarms...should alarm values all be in one place?
}
power:{
normalVoltage
actualVoltage
....lots here...
}
propulsion[]
engine{
type diesil|petrol|electric|?
state stopped|started|unusable
rpm
rpmAlarm
engineTemperature
engineTemperatureAlarm
engineTemperatureAlarm
oilTemperature
oilTemperatureAlarm
oilPressure
oilPressureAlarm
waterTemp
waterTempAlarm
exhaustTemp
exhaustTempAlarm
fuelUsageRate //in Ltrs/h or AmpHours/h ?
}
tanks[]{
type fuel|water|holding|lpg|? wine|beer|rum :-)
capacity
level
alarmLevel
}
steering{
rudderAngle
rudderAngleTarget
autopilot{
state on|off|alarm
mode powersave|normal|accurate
targetHeading
currentHeading
alarmHeadingXte
headingSource wind|compass|gps
deadZone
backlash
gain
maxDriveAmps
maxDriveRate
portLock
starboardLock
}
}
}
charts[]
{
datum
boundary
date
scale
url
}
waypoints[] //points on the chart
{
name
latitude
longitude
comment
type location|fish|anchor|hazard|rock|bar|?
source
}
regions[] //areas of the chart
{
name
comment
source
type hazard|safe|reserve|?
boundary[waypoints]
}
routes[]
{
uid
name
comment
source
waypoints[]
distance
}
}
}