Exemple #1
0
        public async Task <ActionResult <IEnumerable <DeviceTDModel> > > GetAsync(string id)
        {
            var request = new DeviceDataReq()
            {
                DevEui = id,
                Select = new DeviceDataReq.SelectModel()
                {
                    Direction = "UPLINK",
                }
            };

            var result = await _communiactor.GetDeviceDataAsync(request, CancellationToken.None).ConfigureAwait(false);

            var list = new List <DeviceTDModel>();

            foreach (var a in result.DataList)
            {
                if (a.Type == "UNCONF_UP" && a.Data.Length >= 26 && a.Data[0] == '0' && a.Data[1] == '1')
                {
                    var processed   = DeviceTDModel.Parse(a.Data);
                    var temperature = processed.Temperature / 10.0;
                    list.Add(processed);
                }
            }

            return(Ok(list));
        }
        public async Task <DeviceDataResp> GetDeviceDataAsync
            (DeviceDataReq request, CancellationToken cancellationToken = default)
        {
            using var socket = new ClientWebSocket();
            await socket.ConnectAsync(_webSocketUri, cancellationToken).ConfigureAwait(false);

            var authRequest = await AuthenticateAsync(socket, cancellationToken).ConfigureAwait(false);

            if (authRequest.Status != true)
            {
                throw new InvalidOperationException();
            }

            return(await WebSocketRequest <DeviceDataReq, DeviceDataResp>(request, socket, 10000).ConfigureAwait(false));
        }