예제 #1
0
        void DetectDevicesTask()
        {
            while (DetectFlag)
            {
                classDevices = null;
                classDevices = new ClassDevice[MAX_DP_DEVICES];
                DpCountAxist = 0;
                classCalibrationSettings.ConnectedChanels.Clear();
                for (int i = 0; i < classCalibrationSettings.JigConfiguration; i++)
                {
                    bool Ch = new bool();
                    classMultiplexingInstanse.ConnectDpDevice((byte)i);
                    Thread.Sleep(250);

                    classDpCommunicationInstanse.NewDpInfoEvent = false;
                    classDpCommunicationInstanse.DPgetDpInfo();
                    Thread.Sleep(300);


                    //classDpCommunicationInstanse.NewDpInfoEvent = true;
                    if (classDpCommunicationInstanse.NewDpInfoEvent) // check if recieve data from DP
                    {
                        classDpCommunicationInstanse.NewDpInfoEvent = false;


                        if (classDpCommunicationInstanse.dpInfo.DeviceSerialNumber == "" || classDpCommunicationInstanse.dpInfo.DeviceSerialNumber.StartsWith("\0"))
                        {
                            continue;
                        }

                        ClassDevice newDeviceExist = new ClassDevice();

                        newDeviceExist.PositionOnBoard = i;
                        newDeviceExist.BoardNumber     = (i >= 0 && i < 8) ? 1 : 2;

                        newDeviceExist.DeviceMacAddress   = classDpCommunicationInstanse.dpInfo.DeviseMacAddress;
                        newDeviceExist.DeviceSerialNumber = classDpCommunicationInstanse.dpInfo.DeviceSerialNumber;
                        classDevices[DpCountAxist]        = newDeviceExist;

                        UpdatePressAndTempOnDPBeforCalib(newDeviceExist);

                        DpCountAxist++;

                        Ch = true;
                        classCalibrationSettings.ConnectedChanels.Add(Ch);
                    }
                    else
                    {
                        Ch = false;
                        classCalibrationSettings.ConnectedChanels.Add(Ch);
                    }
                }
                DetectFlag     = false;
                EndDetectEvent = true;
            }
            DetectDevicesTaskHandlerThread = null;
        }
예제 #2
0
 private void bt_getDPinfo_Click(object sender, EventArgs e)
 {
     classDpCommunication.DPgetDpInfo();
 }