MongoDB Schema (scada_AlarmStatus)
Column Name | Type | Description | Index | Notes |
---|---|---|---|---|
a | Number | alarm Id | Y | |
s | String | scada Id | Y | |
d | String | device Id | Y | |
t | String | tag Name | Y | |
status | Boolean | alarm is trigger | default is false | |
acked | Boolean | is acked | default is false | |
ts | Date | trigger or clear time | default is null | |
ackTs | Date | ack time | default is null | |
v | Object | alarm value | default is null |
AlarmStatus Object
Column Name | Type |
---|---|
alarmId | Number |
scadaId | String |
deviceId | String |
tagName | Strin |
status | Boolean |
acked | Boolean |
ts | Date |
ackTs | Date |
value | Object |
Method (alarmStatusHelper.js)
getAlarmStatus
- Purpose: get alarm's status
- Input:
Name | Data Type | Description |
---|---|---|
params | Object | filter Object |
params.alarmId | Number | filter alarmId (totally compare) |
params.scadaId | String | filter scadaId(totally compare) |
params.deviceId | String | filter deviceId(totally compare) |
params.tagName | String | filter tagName |
params.acked | Boolean | filter acked |
params.status | Boolean | filter status |
- Output:
- Array of AlarmStatus Object
- Logical description:
- filter = { a: alarmId, s: scadaId, d: deviceId, t: tagName, status: status, acked: acked }
- Organize the output format = { alarmId: $a, scadaId: $s, deviceId: $d, tagName: $t, value: $v, acked: $acked, status: $status, ackeTs; $ackeTs, ts: $ts }
initAlarmStatus
- Purpose: init alarm's status
- Input:
Name | Data Type | Description |
---|---|---|
alarmId | Number | alarm Id |
scadaId | String | scada Id |
deviceId | String | device Id |
tagName | String | tag Name |
- Logical description:
- findOneAndUpdate({upsert: true, setDefaultsOnInsert: true)
triggerAlarmStatus
- Purpose: trigger alarm's status
- Input:
Name | Data Type | Description |
---|---|---|
alarmId | Number | alarm Id |
scadaId | String | scada Id |
deviceId | String | device Id |
tagName | String | tag Name |
ts | Date | default: new Date() |
- Output:
- if document updated or not.
- Logical description:
- filter = { a: alarmId, s: scadaId, d: deviceId, t: tagName, status: false, ts: null || ts < ts }
- update = { status: true, ts: ts }
- _updateAlarmStatus(filter, update)
ackAlarmStatus
- Purpose: ack alarm status
- Input:
Name | Data Type | Description |
---|---|---|
alarmId | Number | alarm Id |
scadaId | String | scada Id |
deviceId | String | device Id |
tagName | String | tag Name |
- Output:
- if document updated or not.
- Logical description:
- filter = { a: alarmId, s: scadaId, d: deviceId, t: tagName, status: true, acked: false }
- update = { acked: true, ackTs: new Date() }
- _updateAlarmStatus(filter, update)
clearAlarmStatus
- Purpose: clear alarm status
- Input:
Name | Data Type | Description |
---|---|---|
alarmId | Number | alarm Id |
scadaId | String | scada Id |
deviceId | String | device Id |
tagName | String | tag Name |
ts | Date | default: new Date() |
- Output:
- if document updated or not.
- Logical description:
- filter = { a: alarmId, s: scadaId, d: deviceId, t: tagName, status: true, ts: ts < ts }
- update = { acked: false, status: false, ackTs: null }
- _updateAlarmStatus(filter, update)
deleteAlarmStatus
- Purpose: delete alarm status
- Input:
Name | Data Type | Description |
---|---|---|
alarmId | Number | alarm Id |
scadaId | String | scada Id |
deviceId | String | device Id |
tagName | String | tag Name |
- Logical description:
- filter = { a: alarmId, s: scadaId, d: deviceId, t: tagName }
- _deleteAlarmStatus(filter)
deleteAlarmStatusByAlarmId
- Purpose: delete alarm status by alarmId
- Input:
Name | Data Type | Description |
---|---|---|
alarmId | Number | alarm Id |
- Logical description:
- filter = { a: alarmId }
- _deleteAlarmStatus(filter)
deleteAlarmStatusByScadaId
- Purpose: delete alarm status by scadaId
- Input:
Name | Data Type | Description |
---|---|---|
scadaId | String | scada Id |
- Logical description:
- filter = { s: scadaId }
- _deleteAlarmStatus(filter)
_deleteAlarmStatus
- Purpose: delete alarm status
- Input:
Name | Data Type | Description |
---|---|---|
filter | Object | filter Object |
- Logical description:
- remove(filter)
_updateAlarmStatus
- Purpose: update alarm status
- Input:
Name | Data Type | Description |
---|---|---|
filter | Object | filter |
update | Object | update object |
- Output:
- if document updated or not.
- Logical description:
- findOneAndUpdate({rawResult: true})