Beispiel #1
0
            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;
            }
        }