|
<< İçindekileri Görüntülemek İçin Tıklayın >> Yer: Teknik Kılavuzlar > Netsim System Agent Kurulum ve Yönetim Kılavuzu > 5. Servis yüzeyleri > 5.10 IoT cihazları ve cihaz istemcileri |
Ağ geçidi tarafı. IoTGateway işlemcisine bağlanabilecek cihazlar MASTER'daki
iot$device sistem tablosunda tanımlanır. Ağ geçidi her komutta iot$active değeri
true olan satırları okur; bir satırdaki değişiklik sonraki komutta geçerlidir. Satır, bağlanan cihaz
istemcisine cihaz bilgisi olarak gönderilir ve istemcideki cihaz sınıfı parametrelerini buradan alır. Boş kolon
sınıfın öndeğerini kullanır; bir sınıfın kullanmadığı kolon boş bırakılır.
| Kolon | Anlam |
|---|---|
iot$device_id | Satırın kimliği; verilmezse üretilir. |
iot$gateway_device_id | Cihazın kimliği; istemci deviceConnect'te bunu verir. Tabloda tekildir. |
iot$description | Açıklama. |
iot$active | Cihazın bağlanabilir olup olmadığı; öndeğer true. |
iot$device_class | Cihaz sınıfı: COM (seri porttan kayıt okuyan cihaz, ör. terazi) ya da EmkoEZM9950 (Modbus sayaç). |
iot$secret_key | deviceConnect'in paylaşılan gizli anahtarı. Tabloda açık metin durur. |
iot$update_interval | Okuma aralığı (ms, 1–86400000; öndeğer 300). |
iot$update_threshold_change | Bildirim için gereken en küçük değişim (öndeğer 1). |
iot$update_threshold_time | Değişim olmasa da bildirim aralığı (ms; öndeğer 10000). |
iot$port, iot$baud_rate, iot$data_bits | Seri port numarası (COM), hızı ve veri bitleri (5–8). |
iot$parity, iot$stop_bits, iot$flow_control | None/Odd/Even/Mark/Space; 1/1.5/2; None/XOnXOff/RTS_CTS/DSR_DTR. |
iot$input_buffer_size, iot$output_buffer_size | Seri port tampon boyları. |
iot$input_timeout, iot$output_timeout | Okuma ve yazma zaman aşımı (ms). |
iot$packet_size, iot$packet_timeout | COM: paket boyu (-1 = kayıt sonlandırıcıya kadar) ve paket zaman aşımı (ms). |
iot$raw_data_trim_left, iot$raw_data_trim_right, iot$record_terminator | COM: okunan kaydın baş/son boşluklarının kırpılması ve kayıt sonlandırıcı karakter. |
iot$protocol, iot$byte_order, iot$word_order, iot$unit_id | Modbus: RTU/ASCII/TCP…; Big/Little; birim numarası. |
Örnek (bir Modbus sayaç ve bir terazi; iot$record_terminator satır başı karakteridir):
-- iot_agcihazlar.sql (msql -U SYSDBA -W <parola> -f iot_agcihazlar.sql)
insert into iot$device (iot$gateway_device_id, iot$description, iot$device_class, iot$secret_key,
iot$update_interval, iot$update_threshold_change, iot$update_threshold_time,
iot$port, iot$baud_rate, iot$data_bits, iot$parity, iot$stop_bits, iot$input_timeout, iot$output_timeout,
iot$protocol, iot$byte_order, iot$word_order, iot$unit_id)
values ('35F807FE-AE63-451B-AECF-89E68DCC225F', 'KALİTE 1 SAYAÇ', 'EmkoEZM9950', '123456',
300, 1, 10000,
1, 9600, 8, 'None', '1', 1200, 100,
'ASCII', 'Big', 'Big', 1);
insert into iot$device (iot$gateway_device_id, iot$description, iot$device_class, iot$secret_key,
iot$update_interval, iot$update_threshold_change, iot$update_threshold_time,
iot$port, iot$baud_rate, iot$data_bits, iot$parity, iot$stop_bits,
iot$input_buffer_size, iot$input_timeout, iot$output_timeout,
iot$packet_size, iot$packet_timeout, iot$raw_data_trim_left, iot$raw_data_trim_right, iot$record_terminator)
values ('5E21D039-C737-4C38-84DA-F9D5E710676F', 'KALİTE 1 TERAZİ', 'COM', '123456',
100, 0, 10000,
3, 9600, 8, 'None', '1',
2048, 1200, 100,
-1, 2000, false, false, c'\r');
commit;Cihaz tarafı. Ajanın çalıştığı makineye bağlı bir cihaz (terazi, sayaç) bir IoTGateway'e cihaz istemcisi
olarak bağlanabilir. İstemciler MASTER'daki iot$legacy_device sistem tablosunda tanımlanır. Görev
zamanlayıcısı hizmet açılışında iot$active değeri true olan her satır için bir cihaz
görevi başlatır; tablodaki değişiklik hizmet yeniden başlayınca geçerli olur. Tablo her veritabanında vardır,
ajanın okuduğu MASTER'ınkidir. Ağ geçidi tarafında aynı cihaz, aynı kimlik ve gizli anahtarla ağ geçidinin
iot$device tablosunda tanımlı olmalıdır.
| Kolon | Anlam |
|---|---|
iot$legacy_device_id | Satırın kimliği; verilmezse üretilir. |
iot$gateway_device_id | Cihazın ağ geçidindeki kimliği (ağ geçidinin iot$device.iot$gateway_device_id'si); tabloda tekildir. |
iot$name | Cihazın adı; görev ve günlük satırları bu adla anılır. |
iot$description | Serbest açıklama. |
iot$active | Görevin başlatılıp başlatılmayacağı; öndeğer true. |
iot$gateway | Ağ geçidinin adresi, ör. ws://localhost:82/IoTGateway. |
iot$secret_key | Cihaz kaydının paylaşılan gizli anahtarı. Tabloda açık metin durur. |
Tanımlar çalışan hizmete msql ile girilir. Örnek (iki cihaz; tanım, cihazın bağlı olduğu
makinedeki ajanda iot$active = true ile girilir):
-- iot_cihazlar.sql
insert into iot$legacy_device (iot$gateway_device_id, iot$name, iot$active, iot$gateway, iot$secret_key)
values ('35F807FE-AE63-451B-AECF-89E68DCC225F', 'Kalite 1 Sayaç', false, 'ws://localhost:82/IoTGateway', '123456');
insert into iot$legacy_device (iot$gateway_device_id, iot$name, iot$active, iot$gateway, iot$secret_key)
values ('5E21D039-C737-4C38-84DA-F9D5E710676F', 'Kalite 1 Terazi', false, 'ws://localhost:82/IoTGateway', '123456');
commit;
msql -U SYSDBA -W <parola> -f iot_cihazlar.sqlGörev zamanlayıcısı bu satırları görev listesini kurarken okur; yeni ya da değişen bir satırın görev listesine girmesi için hizmet yeniden başlatılır (görev listesi zamanlayıcı alt sürecinin açılışında kurulur).
Ağ geçidi yanlış anahtar ya da bilinmeyen cihaz nedeniyle bağlantıyı reddederse görev durur ve günlüğe tek bir hata yazar; oturum sınırı gibi geçici retlerde yeniden dener.