Skip to content

Objects

KlausKiefer edited this page Oct 10, 2024 · 2 revisions

An object represents the individual instance of a type of device. For example, a row in the GAM_OBJECT table represents one Helios 100A dewar.

There are a lot of attributes in the GAM_OBJECT table storing data pertaining to each individual device, and many of these attributes are not used for all types of devices, and some attributes have different meanings based on the type of device. The meaning and use of the optional attributes in the object table is determined by the class of the object.

Relationships

There is a many to one relationship between the GAM_OBJECT and GAM_OBJECTTYPE tables, with total participation on the GAM_OBJECT side. Each object needs to belong to a type, and there can multiple objects of the same type.

There are two one to many relationships between the GAM_OBJECT and GAM_OBJECTRELATION tables. Each object can participate in multiple relationships, or none. The GAM_OBJECTRELATION table represents a relationship between two objects.

There is a one to many relationship between the GAM_OBJECT and GAM_MEASUREMENT tables, each object can have multiple measurements, or none at all. Each measurement must belong to an object.

There is a many to one relationship between the GAM_OBJECT and GAM_NETWORK tables. Each network has multiple objects, and an object can belong to one and only one network, but does not have to.

There is a one to many relationship between the GAM_OBJECT and the GAM_COORDINATE tables. An object can have multiple coordinates, or none at all. Each coordinate must belong to one object.

There is a many to one relationship between the GAM_OBJECT and GAM_DISPLAYGROUP tables. Each display group must have one or more objects, and an object may or may not belong to a display group.

Between the GAM_OBJECT and GAM_DISPLAYFORMAT tables there are 5 optional many-to-one relationships. A display format can be applied to multiple objects, and each object can have up to 5 display formats.

Object table

Attribute name Attribute meaning Data type Mandatory Notes
OB_ID ID of object 24-bit Integer Yes It is the primary key. It is automatically incremented, no need to set it manually.
OB_OBJECTTYPE_ID ID of the type of this object 24-bit Integer Yes It is a foreign key to the GAM_OBJECTTYPE table
OB_NAME Name of object String, up to 50 bytes in size Yes
OB_ADDRESS The XBee Address (or IP for LAN Gascount. Mod.) String, up to 20 bytes in size No
OB_COMMENT Comments regarding this object String, up to 1000 bytes in size No
OB_POSINFORMATION Physical position of the device String, up to 1000 bytes in size No e.g. "Cryogenic Lab Upstairs"
OB_STATUS Behaves differently for each object class, see OB_STATUS. Integer from 0 to 255 No Currently used mainly for gas counter monitors (0, 1, 3).
OB_LASTTIMEACTIVE Last measurement, see notes. String showing date in YYYY-MM-DD hh:mm:ss format No Vessel: book-in/book-out (last measurement by the balance)
Levelmeter: last measurement
He. Level Module: last measurement
Gas Counter Module: last measurement
OB_ACTIVE Whether the device is active Integer from 0 to 9 No Vessel: is on campus/booked-in
OB_IP The IP address of the device String, up to 20 bytes in size No
OB_VOLUME Volume of the object Decimal number, with a precision of 10 and a scale of 4 No Is presently not used. The volume of e.g. a vessel is given by the objecttype OT_VOLUME
OB_VALUE Value of the object Decimal number, with a precision of 10 and a scale of 4 No
OB_MINVALUE Device type-specific minimum value Decimal number, with a precision of 10 and a scale of 4 No Vessel resistance (ohm), Level Meter battery voltage (volt)
OB_MAXVALUE Device type-specific maximum value Decimal number, with a precision of 10 and a scale of 4 No Vessel resistance (ohm), Level Meter battery voltage (volt)
OB_CRITVALUE Device Critical value Decimal number, with a precision of 10 and a scale of 4 No Vessel Min. Level % required for Autofill, Level Meter Critical Battery Capacity %
OB_COMPORT Device COM Port String, up to 10 bytes in size No For Coordinator
OB_TARE Tare/unladen weight of the vessel in kg Decimal number, with a precision of 7 and a scale of 3 No
OB_ENABLED1 Object class-specific setting #1, see OB_ENABLED Integer, from 0 to 9 No ILM Module, Software Level Device:
Channel 1 (on/off)

Position:
"Display on floorplan for drag&drop"

Gas Counter Module:
Temperature compensation

Vessels:
N/A
OB_SUBSTANCE1 Object substance #1 (see notes) String, up to 20 bytes in size No ILM Module, Software Level Device: Channel 1 Gas
OB_SPAN1 Object class-specific span #1 (see notes) Decimal number, with a precision of 10 and a scale of 4 No ILM Module: Channel 1 Span,
Vessel: analog pressure sensor
OB_ZERO1 Object class-specific zero #1 (see notes) Decimal number, with a precision of 10 and a scale of 4 No ILM Module: Channel 1 Zero,
Vessel: analog pressure sensor
OB_ENABLED2 Object class-specific setting #2, see OB_ENABLED Integer, from 0 to 9 No ILM Module, Software Level Device:
Channel 2 (on/off)

Position:
Display level meters - "Include in levelmeter position list"

Gas Counter Module:
Pressure compensation

Vessel:
"Level Meter Properties are valid"
OB_SUBSTANCE2 Object substance #2 (see notes) String, up to 20 bytes in size No ILM Module, Software Level Device: Channel 2 Gas
OB_SPAN2 Object class-specific span #2 (see notes) Decimal number, with a precision of 10 and a scale of 4 No ILM Module: Channel 2 Span
OB_ZERO2 Object class-specific zero #2 (see notes) Decimal number, with a precision of 10 and a scale of 4 No ILM Module: Channel 2 Zero
OB_ENABLED3 Object class-specific setting #3, see OB_ENABLED Integer, from 0 to 9 No ILM Module, Software Level Device:
Channel 3 (on/off)

Position:
N/A

Gas Counter Module:
N/A

Vessel:
"Display reversed"
OB_SUBSTANCE3 Object substance #3 (see notes) String, up to 20 bytes in size No ILM Module, Software Level Device: Channel 3 Gas
OB_SPAN3 Object class-specific span #3 (see notes) Decimal number, with a precision of 10 and a scale of 4 No ILM Module: Channel 3 Span
OB_ZERO3 Object class-specific zero #3 (see notes) Decimal number, with a precision of 10 and a scale of 4 No ILM Module: Channel 3 Zero
OB_SHORTINTERVAL Vessel short measurement interval in seconds (filling) 32-bit Integer No Vessel: Minimum 30 seconds, Maximum 10 minutes
OB_LONGINTERVAL Vessel long measurement interval in minutes (normal) 32-bit Integer No Vessel: Minimum 10 minutes, Maximum 24 hours
OB_QUENCHTIME Vessel quench time in milliseconds 32-bit Integer No For Vessel
OB_QUENCHCURRENT Vessel quench current in milliamperes (mA) 32-bit Integer No For Vessel
OB_WAITTIME Vessel wait time in milliseconds 32-bit Integer No For Vessel
OB_MEASCURRENT Vessel measurement current in milliamperes (mA) 32-bit Integer No For Vessel
OB_ADCLOOP Vessel number of cycles for integrations 32-bit Integer No For Vessel 40 is ok
OB_FILLTIMEOUT Vessel fill timeout in minutes 32-bit Integer No For Vessel
OB_CELLCOUNT Not presently used (see notes). Integer from 0 to 9 No This was for an application that monitors the loading cycles of the batteries.
OB_INSTALLED Date this device was created String showing date in YYYY-MM-DD hh:mm:ss format No
OB_SERNO Serial number of this device String, up to 50 bytes in size No
OB_OFFSET_VALUE The offset value for measurements Decimal number, with a precision of 10 and a scale of 3 No It is used for gas counter modules, so that when a new gas counter module connects to its gas counter, it takes into account the amount of gas measured before the gas counter was installed.
OB_OFFSET_VOLUME The offset volume for when a gas counter is replaced Decimal number, with a precision of 10 and a scale of 3 No It is only used for a gas counter module when its gas counter is replaced by a newer one. The offset makes sure that the measurement continues on from the last value of the old gas counter.
OB_OFFSET_CORRVOLUME The offset corrected volume for when a gas counter is replaced Decimal number, with a precision of 10 and a scale of 3 No It is only used for positions where a gas counter is replaced. The offset is similar to OB_OFFSET_VOLUME, but is instead for volume corrected to take into account pressure and temperature.
OB_SEND_DELTA_V A gas counter monitor will send data when the difference of the measured volume to the last transmitted message is larger than this value. Decimal number, with a precision of 10 and a scale of 3 No
OB_SEND_DELTA_P A gas counter monitor will send data when the difference of the measured pressure to the last transmitted message is larger than this value. Integer with up to 4 digits No
OB_DISPLAYGROUP_ID ID of the display group this object belongs to 24-bit Integer No It is a foreign key to the primary key of the GAM_DISPLAYGROUP table
OB_NW_ID ID of the network this object is on 24-bit Integer No It is a foreign key to the primary key of the GAM_NETWORK table
OB_ALIASNAME Object alias, as the name itself can be quite cryptic. String, up to 10 bytes in size No For GasCounter, Position, ...
In addition the Levelmeters need a 4 letters/digits name for the position to be transmitted to the next level meter.
OB_DF_ID_1 ID of the first display format of this object. 24-bit Integer No It is a foreign key to the primary key of the GAM_DISPLAYFORMAT table.
OB_DF_ID_2 ID of the second display format of this object. 24-bit Integer No It is a foreign key to the primary key of the GAM_DISPLAYFORMAT table.
OB_DF_ID_3 ID of the third display format of this object. 24-bit Integer No It is a foreign key to the primary key of the GAM_DISPLAYFORMAT table.
OB_DF_ID_4 ID of the fourth display format of this object. 24-bit Integer No It is a foreign key to the primary key of the GAM_DISPLAYFORMAT table.
OB_DF_ID_5 ID of the fifth display format of this object. 24-bit Integer No It is a foreign key to the primary key of the GAM_DISPLAYFORMAT table.
OB_ENDOFOPERATION Date when this object is no longer being used String showing date in YYYY-MM-DD hh:mm:ss format No When an object is "Deleted" through the HM app, it is assigned an ENDOFOPERATION date within the DB. This is because objects, object types or object classes should never be cleared (or anything else) from the database as old measurements will reference to it.

Software Level Devices/ILM Modules - SLD Requirements

Certain objects require an SLD/ILM Module, which will receive the measurements instead of the object. The object itself and the SLD/ILM object will have a relation, which is how the HZB app will know the measurement is for that object.

Currently, object classes that require an SLD/ILM Module are Vessels, Cryostats and Gas Counters.

Each SLD/ILM can only be assigned to one object (e.g. for each vessel object, there will be an SLD/ILM object assigned to it).

E.g. Vessel1 (GAM_OBJECT) -- Relation_Record (GAM_OBJECTRELATION) -- SLD_Vessel1 (GAM_OBJECT) <-- Measurement_SLD_Vessel1 (GAM_MEASUREMENT)

OB_STATUS

Status Level Meter Gas Counter Module Coordinator
0 inactive inactive inactive
1 connecting new login open
2 connected connected not connected
3 fill begin login confirmed
4 filling
5 timeout timeout
6
7 req. meas.

OB_ENABLED

Object class ENABLED1 ENABLED2 ENABLED3
Vessels Parameters valid Display reversed
Positions Display floorplan Display level meters
Helium Level Module Channel 1 Channel 2 Channel 3
Gas Counter Module Temperature compensation Pressure compensation
Clone this wiki locally