calibration_assignments
calibration_assignments, bir kalibrasyon profilinin hangi kapsama (global, cihaz veya grup) uygulanacağını tanımlar. Aynı değişken için birden fazla atama bulunabilir; hangisinin geçerli olacağı kapsam önceliğiyle belirlenir.
Kapsam öncelik sırası: device > group > global. priority_override ise aynı kapsam türü içinde daha ince sıralama gerektiğinde kullanılır; küçük değer daha yüksek önceliğe sahiptir.
Buradaki kritik kural şudur: aynı anda aynı hedef için aynı değişkende yalnız tek bir aktif kalibrasyon bulunmalıdır. Yani bir cihaz için aynı variable_id üzerinde iki aktif device-scope atama, bir grup için aynı variable_id üzerinde iki aktif group-scope atama veya global düzeyde aynı variable_id için iki aktif global atama bulunmamalıdır. Öncelik sırası seçim yapmak için vardır; çakışan aktif tanımları meşrulaştırmak için değil.
effective_from ve effective_to alanları doluysa atama yalnız belirtilen zaman aralığında aktif kabul edilir; ikisi de null ise süresiz geçerlidir.
Kolonlar
| Kolon | Tip | Null | Anlamı |
|---|---|---|---|
id | int | hayır | Atama kaydının birincil anahtarı |
calibration_id | int | hayır | Uygulanan calibration_profiles kaydı |
scope_type | rule_scope_type | hayır | Atama kapsamı: global, device veya group |
device_id | varchar(21) | evet | scope_type = device ise hedef cihaz; diğer durumlarda null |
group_id | int | evet | scope_type = group ise hedef grup; diğer durumlarda null |
priority_override | int | evet | Aynı kapsam içinde sıralama için öncelik değeri; küçük değer önce gelir |
is_active | boolean | hayır | Atamanın aktif olup olmadığı (DEFAULT: true) |
effective_from | timestamp | evet | Atamanın geçerli olmaya başladığı zaman |
effective_to | timestamp | evet | Atamanın geçerliliğini yitirdiği zaman |
create_time | timestamp | hayır | Kayıt oluşturulma zamanı |
update_time | timestamp | hayır | Son güncelleme zamanı |
Örnek Kayıtlar
- Global Atama
- Cihaz Ataması
- Grup Ataması
{
"id": 1,
"calibration_id": 1,
"scope_type": "global",
"device_id": null,
"group_id": null,
"priority_override": null,
"is_active": true,
"effective_from": null,
"effective_to": null
}
Özet: Profil 1 (gain=1, offset=0) tüm cihazlara global olarak atanmış; cihaz veya grup ataması yoksa bu profil devreye girer.
{
"id": 2,
"calibration_id": 2,
"scope_type": "device",
"device_id": "46000000C47CA670",
"group_id": null,
"priority_override": 1,
"is_active": true,
"effective_from": null,
"effective_to": null
}
Özet: Profil 2, yalnızca 46000000C47CA670 cihazına atanmış; priority_override: 1 ile global atamanın önüne geçer.
{
"id": 3,
"calibration_id": 3,
"scope_type": "group",
"device_id": null,
"group_id": 1,
"priority_override": null,
"is_active": true,
"effective_from": null,
"effective_to": null
}
Özet: Profil 3, grup 1'e atanmış; bu gruptaki cihazlara cihaz düzeyinde özel atama yoksa grup profili uygulanır.