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)); }