public void ReadColorTimePoints() { CallForFreshData(); var rawVar = GetRawVariable("Points"); var bytes = StringToByteArray(rawVar); var ctps = new List <ColorTimePoint>(); for (int pIx = 0; pIx < bytes.Length / 8; ++pIx) { var bIxOffset = pIx * 8; var id = bytes[bIxOffset]; var color = new ColorTimePointColor(bytes[bIxOffset + 1], bytes[bIxOffset + 2], bytes[bIxOffset + 3]); var time = BitConverter.ToSingle(bytes, bIxOffset + 4); ctps.Add(new ColorTimePoint(id, color, time)); } ColorTimePointsRead?.Invoke(this, new EventArgs <ColorTimePoint[]>(ctps.ToArray())); }
public void ReadColorTimePoints() { EnqueueCallOnNetworkStream(nameof(ReadColorTimePoints), netStream => { netStream.WriteByte(0x03); var byteList = new List <byte>(); var buffer = new byte[1024]; do { var bytesRead = netStream.Read(buffer, 0, 4); for (var i = 0; i < bytesRead; ++i) { byteList.Add(buffer[i]); } }while (netStream.DataAvailable); var data = byteList.ToArray(); var pointCount = data[0]; var offsetIx = 1; var points = new List <ColorTimePoint>(); for (int i = 0; i < pointCount; ++i) { var id = data[offsetIx]; var r = data[offsetIx + 1]; var g = data[offsetIx + 2]; var b = data[offsetIx + 3]; var t = BitConverter.ToSingle(data, offsetIx + 4); var ctp = new ColorTimePoint(id, new ColorTimePointColor(r, g, b), t); points.Add(ctp); offsetIx += 8; } ColorTimePointsRead?.Invoke(this, new EventArgs <ColorTimePoint[]>(points.ToArray())); }); }
public void ReadColorTimePoints() { ColorTimePointsRead?.Invoke(this, new EventArgs <ColorTimePoint[]>(_points.ToArray())); }