The Kellerag.shared.iot.converters هي مجموعة من DLLs .NET للتعامل مع بيانات الاتصالات الخاصة من أجهزة إنترنت الأشياء في شركة Keller DruckmessTechnik AG.
والغرض الرئيسي هو إظهار إحدى الطرق الممكنة لتنفيذ البيانات النصية المخزنة على مجلدات FTP (عبر 2G/3G/4G/NB-IOT/LTE-M) أو نص JSON من/إلى خادم شبكة Lorawan (ThethingsNetwork/Thingspark (Actility)/loriot.io).
بروتوكولات الاتصال عامة:
kellerag.shared.iot.converters هي مثال على تنفيذ بروتوكولات الاتصالات المستخدمة من قبل Keller's Proguresuite Cloud. 
NUGET URL: https://www.nuget.org/packages/kellerag.shared.iconverters/
PM > Install-Package KellerAg.Shared.IoT.Convertersاستخدم مساحات الأسماء التالية
using KellerAg . Shared . IoT . Converters ; //for the converters
using Entities . Data ; //for the DeviceSettings-DTO
using JsonToBusinessObjects . Conversion ; //for some used entities/DTOs
using JsonToBusinessObjects . DataContainers ; //for some used entities/DTOs // Have a look at the examples in https://github.com/KELLERAGfuerDruckmesstechnik/KellerAg.Shared.IoT.Converters/blob/master/DemoBlazorApp/FtpConversions.cs
IConvert converter = new KellerAg . Shared . IoT . Converters . IoTConvert ( ) ;
string gsmCommunicationJsonText = converter . GsmCommunicationToJson ( text_content ) ; // Gets the text content in Json format
ConversionResult conversionResult = converter . GsmCommunicationJsonToBusinessObject ( gsmCommunicationJsonText ) ;
JsonToBusinessObjects . DataContainers . BusinessObject businessObject = conversionResult . BusinessObjectRoot ;
Console . WriteLine ( $ "The battery's capacity is { BusinessObject . DeviceInformation . BatteryCapacity } %" )
//or from DTO to a valid text file
var deviceConfiguration = new Entites . Data . DeviceSettings { GeneralNetworkName = "My Network Name" , GeneralLocationName = "My Device Name" , GeneralAltitudeText = "555" , HardwareConnectionType = ( byte ? ) 5 , MeasurementInterval = 48000 } ;
gsmCommunicationJsonText = converter . DeviceConfigurationToGsmCommunication ( deviceConfiguration ) ; 
// Have a look at the examples in https://github.com/KELLERAGfuerDruckmesstechnik/KellerAg.Shared.IoT.Converters/blob/master/DemoBlazorApp/Pages/DemoLora.razor
IConvert converter = new KellerAg . Shared . IoT . Converters . IoTConvert ( ) ;
KellerAg . Shared . LoRaPayloadConverter . PayloadInformation extractedInformation = converter . LoRaPayloadToLoRaMessage ( "1F011302000313042F0DFF0E000F00100115051603" , 4 ) ;
Console . WriteLine ( $ "There are { extractedInformation . Measurements . Count } measurements stored." )
//or directly the whole JSON from the network server
// Example with a JSON from TheThingsNetwork:
string exampleLoRaTransmissionTTNText = @"{""app_id"":""ldtapplication"",""dev_id"":""ldtdevice1"",""hardware_serial"":""0004A30B001EC250"",""port"":1,""counter"":0,""payload_raw"":""AQUB03/AAAB/wAAAf8AAAD94px5BxdcKAAAAAA=="",""payload_fields"":{""Channel_1"":5.104235503814077e+38,""Channel_2"":5.104235503814077e+38,""Channel_3"":5.104235503814077e+38,""Channel_4"":0.9713000059127808,""channel"":""0000000111010011"",""ct"":5,""func"":1,""payload"":""AQswAD93JxNBu1wp""},""metadata"":{""time"":""2017-10-30T11:18:25.511380476Z"",""frequency"":867.1,""modulation"":""LORA"",""data_rate"":""SF12BW125"",""coding_rate"":""4/5"",""gateways"":[{""gtw_id"":""eui-c0ee40ffff29356b"",""timestamp"":300640588,""time"":"""",""channel"":3,""rssi"":-42,""snr"":9,""latitude"":47.49873,""longitude"":8.746949},{""gtw_id"":""kellergw2"",""gtw_trusted"":true,""timestamp"":509643924,""time"":""2017-10-30T11:17:44Z"",""channel"":3,""rssi"":-61,""snr"":9.5,""latitude"":47.498688,""longitude"":8.747711}]},""downlink_url"":""https://integrations.thethingsnetwork.org/ttn-eu/api/v2/down/ldtapplication/httpldttest?key=ttn-account-v2.4vThJdZ2ISzcdwppUzCaLWsBmF1_GszPXEOglkR3AfA""}" ;
JsonToBusinessObjects . DataContainers . BusinessObjectRoot businessObject = Converter . LoRaJsonMessageToBusinessObject ( exampleLoRaTransmissionTTNText ) ;
Console . WriteLine ( $ "There are { businessObject . LoRaData . Measurements . Count } measurements stored from the device with the EUI { businessObject . LoRaData . EUI } ." )
//or from DTO to a valid KELLER payload whereas there can be multiple payloads
List < string > payloads = Converter . DeviceConfigurationToLoRaPayloads ( DeviceSettings deviceConfigurationDifference ) ; // Properties that are not null/empty will be used for generating the payloads
//alternative:
List < string > payloads = Converter . DeviceConfigurationToLoRaPayloads ( string deviceConfigurationDifference ) ; // JSON string with properties to change (not listed properties shall not be changed)
// or directly from a PayloadInfo object to a list of KELLER LoRa-Payload strings
var payloadInfo = JsonConvert . DeserializeObject < PayloadInformation > ( payloadInfoJson ) ;
List < string > payloads = PayloadConverter . ConvertToTheThingsNetwork ( payloadInfo ) ;
// alternative
List < string > payloads = PayloadConverter . ConvertToActility ( payloadInfo ) ;
// alternative
List < string > payloads = PayloadConverter . ConvertToLoriot ( payloadInfo ) ; 
انظر: https://iotconverter.pressuresuite.com




سؤال: هذه مكتبة C#/. الصافية. هل لديك أيضًا لغة أخرى مثل Java أو Python؟
الإجابة: لا. فقط C#/. Net حتى الآن.
cbashtn
لا تتردد في الغوص! افتح مشكلة أو إرسال PRS.