public byte[] GetWrittenBuffer(PacketIds packetid) { Packet p = new Packet((uint)this.Index + 4); p.WriteHeader(packetid, this); return(p.GetWrittenBuffer()); }
private void AppendSample(ElectrodeFrame[] samples, int length) { float[,] vReData = new float[length, samples[0].ComplexVoltageMatrix.Length]; float[,] vImData = new float[length, samples[0].ComplexVoltageMatrix.Length]; float[,] cReData = new float[length, samples[0].ComplexCurrentMatrix.Length]; float[,] cImData = new float[length, samples[0].ComplexCurrentMatrix.Length]; ulong[,] saturationData = new ulong[length, 1]; long[,] timestampData = new long[length, 1]; // Write packet id, kalpa clock only if exist => value != Uint64.MaxValue (default value) ulong[,] packetIdData = samples[0].PacketId == UInt64.MaxValue ? null : new ulong[length, 1]; ulong[,] kalpaClockData = samples[0].KalpaClock == UInt64.MaxValue ? null : new ulong[length, 1]; for (var i = 0; i < length; i++) { ElectrodeFrame electrodeFrame = samples[i]; for (int j = 0; j < electrodeFrame.ComplexVoltageMatrix.Length; j++) { vReData[i, j] = electrodeFrame.ComplexVoltageMatrix[j].Re; vImData[i, j] = electrodeFrame.ComplexVoltageMatrix[j].Im; } for (int j = 0; j < electrodeFrame.ComplexCurrentMatrix.Length; j++) { cReData[i, j] = electrodeFrame.ComplexCurrentMatrix[j].Re; cImData[i, j] = electrodeFrame.ComplexCurrentMatrix[j].Im; } saturationData[i, 0] = electrodeFrame.SaturationMask; timestampData[i, 0] = electrodeFrame.timestamp; if (packetIdData != null) { packetIdData[i, 0] = electrodeFrame.PacketId; } if (kalpaClockData != null) { kalpaClockData[i, 0] = electrodeFrame.KalpaClock; } } VoltagesReal.AppendOrCreateDataset(vReData); VoltagesIm.AppendOrCreateDataset(vImData); CurrentsReal.AppendOrCreateDataset(cReData); CurrentsIm.AppendOrCreateDataset(cImData); Saturation.AppendOrCreateDataset(saturationData); Timestamps.AppendOrCreateDataset(timestampData); if (packetIdData != null) { PacketIds.AppendOrCreateDataset(packetIdData); } if (kalpaClockData != null) { KalpaClocks.AppendOrCreateDataset(kalpaClockData); } }
public void Dispose() { try { if (!Disposed) { UnFiltered.Dispose(); Filtered.Dispose(); Timestamps.Dispose(); PacketIds?.Dispose(); EcgSamplesData.Dispose(); EcgTaskWriter.Dispose(); Hdf5.CloseGroup(GroupId); Disposed = true; } } catch (Exception e) { Logger.LogError($"Error during dispose of ECG: {e.Message}"); } }
public void Dispose() { try { if (!Disposed) { VoltagesReal.Dispose(); VoltagesIm.Dispose(); CurrentsReal?.Dispose(); CurrentsIm.Dispose(); Saturation.Dispose(); Timestamps.Dispose(); PacketIds?.Dispose(); ElectrodeTaskWriter.Dispose(); Hdf5.CloseGroup(GroupId); Disposed = true; } } catch (Exception e) { Logger.LogError($"Error during dispose of EIT: {e.Message}"); } }
//Write methods private void WriteHeader(PacketIds so, Packet p) { WriteShort((short)so); WriteShort(p.Index); WriteArray(p.GetWrittenBuffer()); }
public bool Equals(EITEntry other) { if (ReferenceEquals(null, other)) { return(false); } if (ReferenceEquals(this, other)) { return(true); } var equal = Configuration == other.Configuration && StartDateTime.EqualsUpToMilliseconds(other.StartDateTime) && EndDateTime.EqualsUpToMilliseconds(other.EndDateTime) && VoltagesReal.Rank == other.VoltagesReal.Rank && Enumerable.Range(0, VoltagesReal.Rank).All(dimension => VoltagesReal.GetLength(dimension) == other.VoltagesReal.GetLength(dimension)) && VoltagesReal.Cast <float>().SequenceEqual(other.VoltagesReal.Cast <float>()) && VoltagesIm.Rank == other.VoltagesIm.Rank && Enumerable.Range(0, VoltagesIm.Rank).All(dimension => VoltagesIm.GetLength(dimension) == other.VoltagesIm.GetLength(dimension)) && VoltagesIm.Cast <float>().SequenceEqual(other.VoltagesIm.Cast <float>()) && CurrentsReal.Rank == other.CurrentsReal.Rank && Enumerable.Range(0, VoltagesIm.Rank).All(dimension => CurrentsReal.GetLength(dimension) == other.CurrentsReal.GetLength(dimension)) && CurrentsReal.Cast <float>().SequenceEqual(other.CurrentsReal.Cast <float>()) && CurrentsIm.Rank == other.CurrentsIm.Rank && Enumerable.Range(0, CurrentsIm.Rank).All(dimension => CurrentsIm.GetLength(dimension) == other.CurrentsIm.GetLength(dimension)) && CurrentsIm.Cast <float>().SequenceEqual(other.CurrentsIm.Cast <float>()) && Saturation.Rank == other.Saturation.Rank && Enumerable.Range(0, Saturation.Rank).All(dimension => Saturation.GetLength(dimension) == other.Saturation.GetLength(dimension)) && Saturation.Cast <ulong>().SequenceEqual(other.Saturation.Cast <ulong>()) && Timestamps.Rank == other.Timestamps.Rank && Enumerable.Range(0, Timestamps.Rank).All(dimension => Timestamps.GetLength(dimension) == other.Timestamps.GetLength(dimension)) && Timestamps.Cast <long>().SequenceEqual(other.Timestamps.Cast <long>()); if (PacketIds != null && other.PacketIds != null) { equal = equal && PacketIds.Rank == other.PacketIds.Rank && Enumerable.Range(0, PacketIds.Rank).All(dimension => PacketIds.GetLength(dimension) == other.PacketIds.GetLength(dimension)) && PacketIds.Cast <ulong>().SequenceEqual(other.PacketIds.Cast <ulong>()); } if (KalpaClocks != null && other.KalpaClocks != null) { equal = equal && KalpaClocks.Rank == other.KalpaClocks.Rank && Enumerable.Range(0, KalpaClocks.Rank).All(dimension => KalpaClocks.GetLength(dimension) == other.KalpaClocks.GetLength(dimension)) && KalpaClocks.Cast <ulong>().SequenceEqual(other.KalpaClocks.Cast <ulong>()); } return(equal); }
private void HandlePacket(Packet p) { int curByte = 0; int maxByte = p.Length; while (curByte < maxByte) { int parsedLength = p.ReadShort((curByte + 2)) + 4; byte[] parsed = new byte[parsedLength]; // read bytes from buffer to parsed packets. for (int i = 0; i < parsed.Length; i++) { parsed[i] = p.GetBuffer()[i + curByte]; } // decrypt those bytes as a new real deal parsed packet Packet Parsed = Packet.Decrypt(new Packet(parsed), key); curByte += parsedLength; PacketIds PI = (PacketIds)Parsed.ReadShort(); switch (PI) { #region Login Recvs case PacketIds.Recv_GameLogin: HandleRecvGameLogin(Parsed); break; case PacketIds.Recv_ConnectWorld: HandleRecvConnectWorld(Parsed); break; #endregion #region World Recvs case PacketIds.RecvUnitLogin: HandleRecvUnitLogin(Parsed); break; case PacketIds.RecvCreateCharacter: HandleRecvCreateCharacter(Parsed); break; case PacketIds.RecvChannelRequest: HandleRecvChannelRequest(Parsed); break; #endregion #region Channel Recvs case PacketIds.RecvPing: // needs check if too fast or so :I break; case PacketIds.RecvChannelLogin: HandleRecvChannelLogin(Parsed); break; case PacketIds.RecvChannelChange: HandleRecvChannelChange(Parsed); break; case PacketIds.RecvChannelSomething: HandleRecvChannelStuff(Parsed); break; case PacketIds.RecvLoadMap: HandleRecvMapRequest(Parsed); break; case PacketIds.RecvRequestSkillList: HandleRecvSkillRequest(Parsed); break; case PacketIds.RecvRequestInventory: HandleRecvInventoryRequest(Parsed); break; case PacketIds.RecvMoveItem: HandleRecvMoveItem(Parsed); break; case PacketIds.RecvDropItem: HandleRecvDropItem(Parsed); break; case PacketIds.RecvPickItem: HandleRecvPickItem(Parsed); break; case PacketIds.RecvImbueItem: HandleRecvImbueItem(Parsed); break; case PacketIds.RecvAcceptImbueItem: HandleRecvAcceptImbueItem(Parsed); break; case PacketIds.RecvNpcTrade: HandleRecvNpcTrade(Parsed); break; case PacketIds.RecvBuyItem: HandleRecvBuyItem(Parsed); break; case PacketIds.RecvSomething: Send(PacketManager.SendSomething()); break; case PacketIds.RecvRequestFriendList: Send(PacketManager.SendFriendList()); break; case PacketIds.RecvRequestGuildList: // AD GUILD LIST SEND break; case PacketIds.RecvSomething2: Send(PacketManager.SendSomething2()); break; case PacketIds.RecvStatRequest: HandleRecvStatRequest(Parsed); break; case PacketIds.RecvSpawnRequest: HandleRecvSpawnRequest(Parsed); break; case PacketIds.RecvSpawnPlayer: // request for other player to spawn HandleRecvSpawnOtherPlayerRequest(Parsed); break; case PacketIds.RecvRequestStats: HandleRecvRequestStats(Parsed); break; case PacketIds.RecvAddStat: HandleRecvAddStat(Parsed); break; case PacketIds.RecvPlayerID: HandleRecvSendPlayerIDRequest(Parsed); break; case PacketIds.RecvStartMoving: HandleRecvStartMoving(Parsed); break; case PacketIds.RecvKeepMoving: HandleRecvKeepMoving(Parsed); break; case PacketIds.RecvStopMoving: HandleRecvStopMoving(Parsed); break; case PacketIds.RecvWalkToPortal: HandleRecvWalkToPortal(Parsed); break; case PacketIds.RecvChatMessage: HandleRecvChatMessage(Parsed); break; case PacketIds.RecvCommand: HandleRecvCommand(Parsed); break; #endregion default: HandleRecvUnknownPacket(Parsed); break; // needs logging system like "packet id received: " then whole buffer like in old one } } }
private void AppendSample(ECGFrame[] samples, int length) { var sampleForSize = samples.First(); double[,] unFilteredData = new double[length * sampleForSize.FrameData.First().Count, sampleForSize.FrameData.Count]; double[,] filteredData = new double[length * sampleForSize.FilteredFrameData.First().Count, sampleForSize.FilteredFrameData.Count]; long[,] timestampData = new long[length * sampleForSize.FilteredFrameData.First().Count, 1]; ulong[,] packetIdData = samples[0].PacketId == UInt64.MaxValue ? null : new ulong[length, 1]; ulong[,] kalpaClockData = samples[0].KalpaClock == UInt64.MaxValue ? null : new ulong[length, 1]; for (var i = 0; i < length; i++) { var dataSample = samples[i]; var rows = dataSample.FrameData.First().Count; var columns = dataSample.FrameData.Count; for (int rowIndex = 0; rowIndex < rows; rowIndex++) { for (var columnIndex = 0; columnIndex < columns; columnIndex++) { unFilteredData[i * rows + rowIndex, columnIndex] = dataSample.FrameData[columnIndex][rowIndex]; } } rows = dataSample.FilteredFrameData.First().Count; columns = dataSample.FilteredFrameData.Count; for (int rowIndex = 0; rowIndex < rows; rowIndex++) { for (var columnIndex = 0; columnIndex < columns; columnIndex++) { filteredData[i * rows + rowIndex, columnIndex] = dataSample.FilteredFrameData[columnIndex][rowIndex]; } } int rowsTimestamps = dataSample.FilteredFrameData.First().Count; for (int k = 0; k < rowsTimestamps; k++) { var date = dataSample.Timestamp; if (SamplingRate > 0) { date = (long)(dataSample.Timestamp + k * 1000.0 / SamplingRate); } timestampData[i * rowsTimestamps + k, 0] = date; EndDateTime = date; } if (packetIdData != null) { packetIdData[i, 0] = dataSample.PacketId; } if (kalpaClockData != null) { kalpaClockData[i, 0] = dataSample.KalpaClock; } } UnFiltered.AppendOrCreateDataset(unFilteredData); Filtered.AppendOrCreateDataset(filteredData); Timestamps.AppendOrCreateDataset(timestampData); if (packetIdData != null) { PacketIds.AppendOrCreateDataset(packetIdData); } }
public byte[] GetWrittenBuffer(PacketIds packetid) { Packet p = new Packet((uint)this.Index + 4); p.WriteHeader(packetid, this); return p.GetWrittenBuffer(); }