register_structure
register_structure, projede kullanılan register bit haritasını tanımlar. measurements_register tablosundaki register_status, register_stop ve register_publish alanları birer bitmask olarak gelir; bu tablodaki kayıtlar her bitin ne anlama geldiğini, varsayılan stop/publish davranışını ve aktiflik durumunu proje bazında tanımlar.
Bu tablo proje bazındadır; aynı bit numarası farklı projeler için farklı anlam taşıyabilir. (project_id, bit) unique constraint bu ikilinin tek bir tanıma karşılık gelmesini garantiler.
Kolonlar
| Kolon | Tip | Null | Anlamı |
|---|---|---|---|
id | int | hayır | Birincil anahtar (auto increment) |
project_id | int | hayır | Hangi projeye ait; projects.id ile ilişkili |
bit | int | hayır | Register içindeki bit numarası (0-tabanlı) |
name | varchar(50) | hayır | Bit'in kısa adı (örn: phase_loss, pump_running) |
description | varchar(255) | evet | Bit'in anlamını açıklayan metin |
default_stop_enabled | boolean | hayır | Bu bit set olduğunda varsayılan davranış: stop tetiklenir (DEFAULT: false) |
default_publish_enabled | boolean | hayır | Bu bit set olduğunda varsayılan davranış: publish tetiklenir (DEFAULT: false) |
is_active | boolean | hayır | Bit tanımının aktif olup olmadığı (DEFAULT: true) |
create_time | timestamp | hayır | Kayıt oluşturulma zamanı |
update_time | timestamp | hayır | Son güncelleme zamanı |
İndeksler
| İndeks | Amacı |
|---|---|
(project_id, bit) [unique] | Aynı projede aynı bit numarasının iki kez tanımlanmasını engeller |
Örnek Kayıtlar
- Proje 1 (Pompa)
- Proje 5 (Gerilim İzleme)
| id | project_id | bit | name | description | default_stop_enabled | default_publish_enabled | is_active |
|---|---|---|---|---|---|---|---|
| 1 | 1 | 0 | phase_loss | Faz kaybı algılandı | true | true | true |
| 2 | 1 | 1 | phase_sequence_error | Faz sırası hatalı | true | true | true |
| 3 | 1 | 2 | thermal_trip | Termik röle attı | true | true | true |
| 4 | 1 | 3 | motor_protection_trip | Motor koruma şalteri açtı | true | true | true |
| 5 | 1 | 4 | dry_run | Kuru çalışma algılandı | true | true | true |
| 6 | 1 | 5 | door_open | Pano kapısı açık | false | true | true |
| 7 | 1 | 6 | manual_mode | Sistem manuel modda | false | false | true |
| 8 | 1 | 7 | pump_running | Pompa çalışıyor | false | false | true |
Özet: Proje 1 için 8 bit tanımlı; bit 0–4 arası kritik arıza bitleridir, her ikisi de (stop + publish) tetikler. Bit 5 yalnızca publish tetikler. Bit 6–7 bilgi amaçlıdır, hiçbir tetikleyici davranışı yoktur.
| id | project_id | bit | name | description | default_stop_enabled | default_publish_enabled | is_active |
|---|---|---|---|---|---|---|---|
| 9 | 5 | 0 | high_voltage | Yüksek gerilim algılandı | true | true | true |
| 10 | 5 | 1 | low_voltage | Düşük gerilim algılandı | true | true | true |
| 11 | 5 | 2 | phase_imbalance | Faz dengesizliği algılandı | true | true | true |
| 12 | 5 | 3 | load_active | Yük aktif durumda | false | false | true |
Özet: Proje 5 için 4 bit tanımlı; arıza bitleri (0–2) her ikisini de (stop + publish) tetikler. load_active salt durum bilgisidir, herhangi bir tetikleyici davranışı yoktur.