private void Port_DataReceived(object sender, SerialDataReceivedEventArgs e) { byte[] buff = new byte[buffersize]; int len = port.BytesToRead; int offset; if (len > buffersize) { len = buffersize; } port.Read(buff, 0, len); port.Close(); offset = 0; SBLinkPackage sbp = new SBLinkPackage(); if (tryGetPackage(buff, len, offset, sbp)) { offset = sbp.PackageSize; if (tryGetPackage(buff, len, offset, sbp)) { state = PortScannerState.Available; protocol = LinkProtocol.SBLink; return; } } Debug.WriteLine("[port scanner]unavilable port(no link):" + name); state = PortScannerState.Unavailable; }
private void TimeSync_Click(object sender, RoutedEventArgs e) { SBLinkPackage p = new SBLinkPackage(); p.Function = 2; p.AddData((ushort)localTime.Millisecond); p.AddData((byte)localTime.Year); p.AddData((byte)localTime.Month); p.AddData((byte)localTime.Day); p.AddData((byte)localTime.Hour); p.AddData((byte)localTime.Minute); p.AddData((byte)localTime.Second); p.SetVerify(); link.SendPackage(p); }
void analyzePackage(SBLinkPackage package) { package.StartRead(); remoteTime = package.Time; switch (package.Function) { case 1: for (int i = 0; i < 10; i++) { sensorDatas[i].Value = package.NextSingle(); } for (int i = 10; i < 14; i++) { sensorDatas[i].Value = package.NextInt32(); } if (isLogging) { logWriter.Write(package.Time.ToString("HH:mm:ss.fff")); for (int i = 0; i < 14; i++) { if (sensorDatas[i].LogEnabled) { logWriter.Write("\t" + sensorDatas[i].ScaledValue); logWriter.Write("\t" + sensorDatas[i].RawValue); if (sensorDatas[i].Lpf > 0) { logWriter.Write("\t" + sensorDatas[i].LpfValue); } } } logWriter.Write(Environment.NewLine); logWriter.Flush(); } break; default: break; } }