Protokol Tanıtımı
MASS protokolü, haberleşme ünitesi ve üniteye bağlı bulunan ölçüm cihazları ile haberleşmeyi sağlamak amacıyla tasarlanmış bir protokoldür.
Haberleşme protokolü pull (haberleşme merkezi sunucusundan haberleşme ünitesine) ve push (haberleşme ünitesinden haberleşme merkezi sunucusuna) mesajları desteklemektedir. Mesajlarda bir header yapısı bulunmaktadır.
Protokol Genel Yapısı
Protokolde haberleşme JSON veri yapısında sağlanacaktır.
- MQTT
- TCP/IP
- REST API
| JSON Veri |
|---|
| {...} |
Örnek Mesaj
- ASCII (Json)
- Hex
{"device":{"flag":"XYZ","serialNumber":"ABCXYZ001"},"function":"identification","requestMethod":"async","referenceId":"ABC123XYZ"}
7B 22 64 65 76 69 63 65 22 3A 7B 22 66 6C 61
67 22 3A 22 58 59 5A 22 2C 22 73 65 72 69 61
6C 4E 75 6D 62 65 72 22 3A 22 41 42 43 58 59
5A 30 30 31 22 7D 2C 22 66 75 6E 63 74 69 6F
6E 22 3A 22 69 64 65 6E 74 69 66 69 63 61 74
69 6F 6E 22 2C 22 72 65 71 75 65 73 74 4D 65
74 68 6F 64 22 3A 22 61 73 79 6E 63 22 2C 22
73 65 71 75 65 6E 63 65 49 64 22 3A 22 41 42
43 31 32 33 58 59 5A 22 7D
TCP/IP haberleşme metodunda, haberleşme ünitelerinin ve haberleşme merkezi yazılımının gelen paketleri doğru bir şekilde almalarını sağlamak amacıyla JSON öncesi # karakteri ve sonrası $ karakteri olacaktır.
| Başlangıç karakteri | JSON Veri | Bitiş karakteri |
|---|---|---|
| # | {...} | $ |
Örnek Mesaj
- ASCII (Json)
- Hex
#{"device":{"flag":"XYZ","serialNumber":"ABCXYZ001"},"function":"identification","requestMethod":"async","referenceId":"ABC123XYZ"}$
23 7B 22 64 65 76 69 63 65 22 3A
7B 22 66 6C 61 67 22 3A 22 58 59 5A 22 2C 22
73 65 72 69 61 6C 4E 75 6D 62 65 72 22 3A 22
41 42 43 58 59 5A 30 30 31 22 7D 2C 22 66 75
6E 63 74 69 6F 6E 22 3A 22 69 64 65 6E 74 69
66 69 63 61 74 69 6F 6E 22 2C 22 72 65 71 75
65 73 74 4D 65 74 68 6F 64 22 3A 22 61 73 79
6E 63 22 2C 22 73 65 71 75 65 6E 63 65 49 64
22 3A 22 41 42 43 31 32 33 58 59 5A 22 7D 24
| JSON Veri |
|---|
| {...} |
Örnek Mesaj
- ASCII (Json)
- Hex
{"device":{"flag":"XYZ","serialNumber":"ABCXYZ001"},"function":"identification","requestMethod":"async","referenceId":"ABC123XYZ"}
7B 22 64 65 76 69 63 65 22 3A 7B 22 66 6C 61
67 22 3A 22 58 59 5A 22 2C 22 73 65 72 69 61
6C 4E 75 6D 62 65 72 22 3A 22 41 42 43 58 59
5A 30 30 31 22 7D 2C 22 66 75 6E 63 74 69 6F
6E 22 3A 22 69 64 65 6E 74 69 66 69 63 61 74
69 6F 6E 22 2C 22 72 65 71 75 65 73 74 4D 65
74 68 6F 64 22 3A 22 61 73 79 6E 63 22 2C 22
73 65 71 75 65 6E 63 65 49 64 22 3A 22 41 42
43 31 32 33 58 59 5A 22 7D
JSON mesajının içeriğinin sıralaması önemli değildir. JSON içerisindeki veriler rastgele sıralamada gelebilirler
Veri Tipleri
| Veri Tipi | Açıklama | Örnek |
|---|---|---|
| bool | Doğru/yanlış mantıksal ifadesi, true ya da false olabilir | true |
| string | Uzunluk kısıtlaması olmayan metin | "ABC..." |
| string(n) | Maksimum n karakter uzunluğunda metin | n:3 için "ABC" |
| byte | 0 ila 255 aralığında tam sayı | 123 |
| int | -2^31 (-2,147,483,648) ila 2^31-1 (2,147,483,647) aralığında tam sayı | 123 |
| decimal | - 10^38 +1 ila 10^38 -1 aralığında rasyonel sayı | 1.23 |
| date | ISO 8601 standartında tarih formatı. (YYYY-MM-DD) | 2021-07-30 |
| datetime | ISO 8601 standartında tarih ve zaman formatı. (YYYY-MM-DD HH:mm:ss) | 2021-07-30 16:41:58 |
| time | ISO 8601 standartında zaman formatı. (HH:mm:ss) | 16:41:58 |
| time2 | ISO 8601 standartında saniye hariç zaman formatı. (HH:mm) | 16:41 |
| array[x] | x veri tipinde öğeleri içeren dizi | x:string için ["a","b","c"] |
| array[x](n) | x veri tipinde, maksimum n adet öğe içeren dizi | x:int ve n:4 için [2,5,8,11] |