Event log開發文件
DB Schema
- event_log_record (紀錄測點)
- 3#
| Column Name | Type | Not Null | PK | Description | Index | Notes |
|---|---|---|---|---|---|---|
| event_id | integer | Y | Y | Y | ||
| device_id | varchar(256) | Y | Y | 紀錄測點的設備識別名 | Y | |
| tag_name | varchar(128) | Y | Y | 紀錄測點名稱 | Y |
- event_log_list (事件測點和參考測點)
- 15#
| Column Name | Type | Not Null | PK | Description | Index | Notes |
|---|---|---|---|---|---|---|
| event_id | integer | Y | Y | Y | AUTO_INCREMENT | |
| event_name | varchar(128) | Y | 事件紀錄名稱 | |||
| scada_id | varchar(36) | Y | 事件測點的節點識別碼 | |||
| description | varchar(256) | N | 事件描述 | |||
| device_id | varchar(256) | Y | 事件測點的設備識別名 | |||
| tag_name | varchar(128) | Y | 事件測點名稱 | |||
| event_type | integer | Y | 事件類型 | {1:>=參考值, 2:<=參考值, 3:==參考值, 4:>=參考測點, 5:<=參考測點, 6:==參考測點, 7:依取樣間隔紀錄} | ||
| ref_value | double | N | 參考值 | |||
| ref_device_id | varchar(256) | N | 參考測點的設備識別名 | |||
| ref_tag_name | varchar(128) | N | 參考測點名稱 | |||
| sample_interval | integer | Y | 取樣間隔 | |||
| sample_unit | integer | Y | 取樣間隔單位 | value: {1:秒, 2:分, 3:小時} | ||
| sample_amount | integer | Y | 事件之後紀錄之取樣數量 | 值如果為0,代表「持續記錄」 | ||
| instance_launched | boolean | Y | 是否透過eventManager啟動event instance | default:false | ||
| ref_text_value | varchar(256) | N | 文字參考值 |
API
[POST] /EventLogs
- 包含紀錄測點一起帶給這支api
- 紀錄測點為array, 可以為空
- user(token)對選定的事件點、參考點、多個記錄點都需要有deviceRight,否則無法新增(權限不足)
[GET] /EventLogs/list
- 取得列表,只回傳eventId/eventName/scadaId/description/instanceLaunched
- 只取出事件點、參考點、多個記錄點都有deviceRight的events
[GET] /EventLogs/list/{scadaId}
- 取得相同scada的event列表,只回傳eventId/eventName/scadaId/description/instanceLaunched
- 只取出事件點、參考點、多個記錄點都有deviceRight的events
[GET] /EventLogs/info/{eventId}
- 取得單一事件的設定細節,包含記錄測點
- 只取出事件點、參考點、多個記錄點都有deviceRight的event, 否則回傳權限錯誤
[DELETE] /EventLogs/{eventId}
- 刪除事件測點及其記錄測點
- 只刪除事件點、參考點、多個記錄點都有deviceRight的event, 否則回傳權限錯誤
[POST] /EventLogs/syncInstance
- 選擇哪一個eventId要launch或close worker裡的event instance
- 只同步事件點、參考點、多個記錄點都有deviceRight的event, 否則回傳權限錯誤
- [POST] /EventLogs/data
- 取得紀錄點的值
- 只能取出事件點、參考點、多個記錄點都有deviceRight的event data, 否則回傳權限錯誤
Note
刪除event會做的事情
- 如果deleteData為true
- 會刪掉config/instance/data
- 如果deleteData為false
- 會刪掉config/instance
- 如果deleteData為true
eventLogRecord (Array)在insert/update的差別
- Insert
- null/empty arr在insert的話都是相同結果
- Update
- empty arr "[]"
- 會把原本的records(如果有)都刪掉
- null arr
- 不對紀錄測點做任何變動
- empty arr "[]"
- Insert
permission
- user_allow_device
- 要檢查到device層級
- 所有API都使用manage_event (scope)
- user_allow_device
連動刪除
- 刪除project或scada時,會去連動刪除event的config/instance/log
- 但刪除device/tag時,不會去做連動,所以有可能發生event裡的device/tag的config已經不在的情況
- 有做提示,若event裡的device/tag已經不在,則device/tag的value改成提示訊息