Exemple #1
0
        private void getCurrentConfig()
        {
            // get the micro-stepping modes from the controller



            byte headstepper1microsteppingmode   = usbController.getHeadStepper1MicrosteppingMode();
            byte headstepper2microsteppingmode   = usbController.getHeadStepper2MicrosteppingMode();
            byte solderstepper1microsteppingmode = usbController.getSolderStepper1MicrosteppingMode();
            byte solderstepper2microsteppingmode = usbController.getSolderStepper2MicrosteppingMode();
            byte caddysteppermicrosteppingmode   = usbController.getCaddyStepperMicrosteppingMode();

            switch (headstepper1microsteppingmode)
            {
            case 0x01:
                radio_HeadStepper1_Microstepping1.IsChecked = true;
                break;

            case 0x02:
                radio_HeadStepper1_Microstepping2.IsChecked = true;
                break;

            case 0x04:
                radio_HeadStepper1_Microstepping4.IsChecked = true;
                break;

            case 0x08:
                radio_HeadStepper1_Microstepping8.IsChecked = true;
                break;

            case 0x16:
                radio_HeadStepper1_Microstepping16.IsChecked = true;
                break;

            case 0x32:
                radio_HeadStepper1_Microstepping32.IsChecked = true;
                break;

            default:
                this.lblStatus.Content = "Error getting status for Head Stepper 1 Micro-stepping";
                break;
            }

            switch (headstepper2microsteppingmode)
            {
            case 0x01:
                radio_HeadStepper2_Microstepping1.IsChecked = true;
                break;

            case 0x02:
                radio_HeadStepper2_Microstepping2.IsChecked = true;
                break;

            case 0x04:
                radio_HeadStepper2_Microstepping4.IsChecked = true;
                break;

            case 0x08:
                radio_HeadStepper2_Microstepping8.IsChecked = true;
                break;

            case 0x16:
                radio_HeadStepper2_Microstepping16.IsChecked = true;
                break;

            case 0x32:
                radio_HeadStepper2_Microstepping32.IsChecked = true;
                break;

            default:
                this.lblStatus.Content = "Error getting status for Head Stepper 2 Micro-stepping";
                break;
            }

            switch (solderstepper1microsteppingmode)
            {
            case 0x01:
                radio_SolderStepper1_Microstepping1.IsChecked = true;
                break;

            case 0x02:
                radio_SolderStepper1_Microstepping2.IsChecked = true;
                break;

            case 0x04:
                radio_SolderStepper1_Microstepping4.IsChecked = true;
                break;

            case 0x08:
                radio_SolderStepper1_Microstepping8.IsChecked = true;
                break;

            case 0x16:
                radio_SolderStepper1_Microstepping16.IsChecked = true;
                break;

            case 0x32:
                radio_SolderStepper1_Microstepping32.IsChecked = true;
                break;

            default:
                this.lblStatus.Content = "Error getting status for Solder Stepper 1 Micro-stepping";
                break;
            }

            switch (solderstepper2microsteppingmode)
            {
            case 0x01:
                radio_SolderStepper2_Microstepping1.IsChecked = true;
                break;

            case 0x02:
                radio_SolderStepper2_Microstepping2.IsChecked = true;
                break;

            case 0x04:
                radio_SolderStepper2_Microstepping4.IsChecked = true;
                break;

            case 0x08:
                radio_SolderStepper2_Microstepping8.IsChecked = true;
                break;

            case 0x16:
                radio_SolderStepper2_Microstepping16.IsChecked = true;
                break;

            case 0x32:
                radio_SolderStepper2_Microstepping32.IsChecked = true;
                break;

            default:
                this.lblStatus.Content = "Error getting status for Solder Stepper 2 Micro-stepping";
                break;
            }

            switch (caddysteppermicrosteppingmode)
            {
            case 0x01:
                radio_CaddyStepper_Microstepping1.IsChecked = true;
                break;

            case 0x02:
                radio_CaddyStepper_Microstepping2.IsChecked = true;
                break;

            case 0x04:
                radio_CaddyStepper_Microstepping4.IsChecked = true;
                break;

            case 0x08:
                radio_CaddyStepper_Microstepping8.IsChecked = true;
                break;

            case 0x16:
                radio_CaddyStepper_Microstepping16.IsChecked = true;
                break;

            case 0x32:
                radio_CaddyStepper_Microstepping32.IsChecked = true;
                break;

            default:
                this.lblStatus.Content = "Error getting status for Caddy Stepper Micro-stepping";
                break;
            }

            // Get the default current settings from the controller

            byte headstepper1current   = usbController.getHeadStepper1Current();
            byte headstepper2current   = usbController.getHeadStepper2Current();
            byte solderstepper1current = usbController.getSolderStepper1Current();
            byte solderstepper2current = usbController.getSolderStepper2Current();
            byte caddysteppercurrent   = usbController.getCaddyStepperCurrent();

            slider_HeadStepper1_Current.Value = headstepper1current;
            lbl_HeadStepper1_Current.Content  = calculateCurrent_mA(headstepper1current).ToString("0.00 A");

            slider_HeadStepper2_Current.Value = headstepper2current;
            lbl_HeadStepper2_Current.Content  = calculateCurrent_mA(headstepper2current).ToString("0.00 A");

            slider_SolderStepper1_Current.Value = solderstepper1current;
            lbl_SolderStepper1_Current.Content  = calculateCurrent_mA(solderstepper1current).ToString("0.00 A");

            slider_SolderStepper2_Current.Value = solderstepper2current;
            lbl_SolderStepper2_Current.Content  = calculateCurrent_mA(solderstepper2current).ToString("0.00 A");

            slider_CaddyStepper_Current.Value = caddysteppercurrent;
            lbl_CaddyStepper_Current.Content  = calculateCurrent_mA(caddysteppercurrent).ToString("0.00 A");

            // get the soldering iron status

            solderingControllerStatus = usbController.getSolderingGlobalStatus();

            lbl_iron1_currenttemperature.Content = solderingControllerStatus.Iron1_Temperature.ToString("0.00°C");

            lbl_iron2_currenttemperature.Content = solderingControllerStatus.Iron2_Temperature.ToString("0.00°C");

            txt_iron1_targettemperature.Text = solderingControllerStatus.Iron1_Target_Temperature.ToString("0.00");

            txt_iron2_targettemperature.Text = solderingControllerStatus.Iron2_Target_Temperature.ToString("0.00");

            bool solderingiron1status = solderingControllerStatus.Iron1_Running;
            bool solderingiron2status = solderingControllerStatus.Iron2_Running;

            if (solderingiron1status)
            {
                lbl_iron1_status.Content = "Heating";
            }
            else
            {
                lbl_iron1_status.Content = "Off";
            }

            if (solderingiron2status)
            {
                lbl_iron2_status.Content = "Heating";
            }
            else
            {
                lbl_iron2_status.Content = "Off";
            }

            bool solderingiron1activation = solderingControllerStatus.Iron1_Activate;
            bool solderingiron2activation = solderingControllerStatus.Iron2_Activate;

            if (solderingiron1activation)
            {
                cb_solderingiron1active.IsChecked = true;
            }
            else
            {
                cb_solderingiron1active.IsChecked = false;
            }
            if (solderingiron2activation)
            {
                cb_solderingiron2active.IsChecked = true;
            }
            else
            {
                cb_solderingiron2active.IsChecked = false;
            }

            ConfigLoaded = true;

            // start the timer to update the temperatures

            dispatcherTimer.Start();
        }
Exemple #2
0
        private void dispatcherTimer_Tick(object sender, EventArgs e)
        {
            // get the temperatures from the soldering irons and display it on the screen

            solderingControllerStatus = usbController.getSolderingGlobalStatus();

            lbl_iron1_currenttemperature.Content = solderingControllerStatus.Iron1_Temperature.ToString("0.00°C");

            lbl_iron2_currenttemperature.Content = solderingControllerStatus.Iron2_Temperature.ToString("0.00°C");

            bool solderingiron1status = solderingControllerStatus.Iron1_Running;
            bool solderingiron2status = solderingControllerStatus.Iron2_Running;

            if (solderingiron1status)
            {
                lbl_iron1_status.Content = "Heating";
            }
            else
            {
                lbl_iron1_status.Content = "Off";
            }

            if (solderingiron2status)
            {
                lbl_iron2_status.Content = "Heating";
            }
            else
            {
                lbl_iron2_status.Content = "Off";
            }

            string log = "";

            if (solderingControllerStatus.success)
            {
                log += "Success:";
            }
            else
            {
                log += "Failed:";
            }
            if (solderingControllerStatus.Iron1_Running)
            {
                log += "Iron1=On,";
            }
            else
            {
                log += "Iron1=Off,";
            }
            if (solderingControllerStatus.Iron2_Running)
            {
                log += "Iron2=On,";
            }
            else
            {
                log += "Iron2=Off,";
            }
            log += solderingControllerStatus.Iron1_Temperature.ToString("0.00°C,");
            log += solderingControllerStatus.Iron2_Temperature.ToString("0.00°C,");
            log += solderingControllerStatus.Iron1_Target_Temperature.ToString("0.00°C,");
            log += solderingControllerStatus.Iron2_Target_Temperature.ToString("0.00°C");

            using (System.IO.StreamWriter w = File.AppendText("d:\\solderlog.txt"))
            {
                w.WriteLine(log);
            }
        }
        public SolderingStationObject getSolderingGlobalStatus()
        {
            SolderingStationObject tmpObj = new SolderingStationObject();

            tmpObj.success = true;

            try
            {
                Byte[] outputBuffer = new Byte[65];
                Byte[] inputBuffer  = new Byte[65];

                string s = "";
                double f = 0;

                outputBuffer[0] = 0;
                outputBuffer[1] = 0x03;
                outputBuffer[2] = 0x20;

                bool success;
                success = writeRawReportToDevice(outputBuffer);

                if (success)
                {
                    // Perform the read
                    success = readSingleReportFromDevice(ref inputBuffer);


                    if (inputBuffer[3] == '1')
                    { // Iron 1 is switched on
                        tmpObj.Iron1_Running = true;
                    }
                    if (inputBuffer[3] == '0')
                    { // Iron 1 is switched on
                        tmpObj.Iron1_Running = false;
                    }
                    if (inputBuffer[5] == '1')
                    { // Iron 1 is switched on
                        tmpObj.Iron2_Running = true;
                    }
                    if (inputBuffer[5] == '0')
                    { // Iron 1 is switched on
                        tmpObj.Iron2_Running = false;
                    }

                    try
                    {
                        Byte[] SolderingIron1Temperature = new Byte[6];

                        SolderingIron1Temperature[0] = inputBuffer[7];
                        SolderingIron1Temperature[1] = inputBuffer[8];
                        SolderingIron1Temperature[2] = inputBuffer[9];
                        SolderingIron1Temperature[3] = inputBuffer[10];
                        SolderingIron1Temperature[4] = inputBuffer[11];
                        SolderingIron1Temperature[5] = inputBuffer[12];

                        s = Encoding.UTF8.GetString(SolderingIron1Temperature, 0, 6);
                        f = double.Parse(s, System.Globalization.CultureInfo.InvariantCulture.NumberFormat);

                        tmpObj.Iron1_Temperature = f;
                    }
                    catch
                    {
                        tmpObj.Iron1_Temperature = 666;
                        tmpObj.success           = false;
                    }

                    try
                    {
                        Byte[] SolderingIron2Temperature = new Byte[6];

                        SolderingIron2Temperature[0] = inputBuffer[14];
                        SolderingIron2Temperature[1] = inputBuffer[15];
                        SolderingIron2Temperature[2] = inputBuffer[16];
                        SolderingIron2Temperature[3] = inputBuffer[17];
                        SolderingIron2Temperature[4] = inputBuffer[18];
                        SolderingIron2Temperature[5] = inputBuffer[19];

                        s = Encoding.UTF8.GetString(SolderingIron2Temperature, 0, 6);
                        f = double.Parse(s, System.Globalization.CultureInfo.InvariantCulture.NumberFormat);

                        tmpObj.Iron2_Temperature = f;
                    }
                    catch
                    {
                        tmpObj.Iron2_Temperature = 777;
                        tmpObj.success           = false;
                    }

                    try
                    {
                        Byte[] SolderingIron1TargetTemperature = new Byte[6];

                        SolderingIron1TargetTemperature[0] = inputBuffer[21];
                        SolderingIron1TargetTemperature[1] = inputBuffer[22];
                        SolderingIron1TargetTemperature[2] = inputBuffer[23];
                        SolderingIron1TargetTemperature[3] = inputBuffer[24];
                        SolderingIron1TargetTemperature[4] = inputBuffer[25];
                        SolderingIron1TargetTemperature[5] = inputBuffer[26];

                        s = Encoding.UTF8.GetString(SolderingIron1TargetTemperature, 0, 6);
                        f = double.Parse(s, System.Globalization.CultureInfo.InvariantCulture.NumberFormat);

                        tmpObj.Iron1_Target_Temperature = f;
                    }
                    catch
                    {
                        tmpObj.Iron1_Target_Temperature = 888;
                        tmpObj.success = false;
                    }

                    try
                    {
                        Byte[] SolderingIron2TargetTemperature = new Byte[6];

                        SolderingIron2TargetTemperature[0] = inputBuffer[28];
                        SolderingIron2TargetTemperature[1] = inputBuffer[29];
                        SolderingIron2TargetTemperature[2] = inputBuffer[30];
                        SolderingIron2TargetTemperature[3] = inputBuffer[31];
                        SolderingIron2TargetTemperature[4] = inputBuffer[32];
                        SolderingIron2TargetTemperature[5] = inputBuffer[33];

                        s = Encoding.UTF8.GetString(SolderingIron2TargetTemperature, 0, 6);
                        f = double.Parse(s, System.Globalization.CultureInfo.InvariantCulture.NumberFormat);

                        tmpObj.Iron2_Target_Temperature = f;
                    }
                    catch
                    {
                        tmpObj.Iron2_Target_Temperature = 999;
                        tmpObj.success = false;
                    }

                    if (inputBuffer[35] == '1')
                    { // Iron 1 is switched on
                        tmpObj.Iron1_Activate = true;
                    }
                    if (inputBuffer[35] == '0')
                    { // Iron 1 is switched on
                        tmpObj.Iron1_Activate = false;
                    }
                    if (inputBuffer[36] == '1')
                    { // Iron 1 is switched on
                        tmpObj.Iron2_Activate = true;
                    }
                    if (inputBuffer[36] == '0')
                    { // Iron 1 is switched on
                        tmpObj.Iron2_Activate = false;
                    }
                }
                else
                {
                    tmpObj.Iron1_Activate           = false;
                    tmpObj.Iron2_Activate           = false;
                    tmpObj.Iron1_Running            = false;
                    tmpObj.Iron2_Running            = false;
                    tmpObj.Iron1_Temperature        = 0;
                    tmpObj.Iron2_Temperature        = 0;
                    tmpObj.Iron1_Target_Temperature = 0;
                    tmpObj.Iron2_Target_Temperature = 0;
                    tmpObj.success = false;
                }
            }
            catch
            {
                tmpObj.Iron1_Activate           = false;
                tmpObj.Iron2_Activate           = false;
                tmpObj.Iron1_Running            = false;
                tmpObj.Iron2_Running            = false;
                tmpObj.Iron1_Temperature        = 0;
                tmpObj.Iron2_Temperature        = 0;
                tmpObj.Iron1_Target_Temperature = 0;
                tmpObj.Iron2_Target_Temperature = 0;
                tmpObj.success = false;
            }


            return(tmpObj);
        }
        private void getCurrentConfig()
        {
            // get the micro-stepping modes from the controller



            byte headstepper1microsteppingmode = usbController.getHeadStepper1MicrosteppingMode();
            byte headstepper2microsteppingmode = usbController.getHeadStepper2MicrosteppingMode();
            byte solderstepper1microsteppingmode = usbController.getSolderStepper1MicrosteppingMode();
            byte solderstepper2microsteppingmode = usbController.getSolderStepper2MicrosteppingMode();
            byte caddysteppermicrosteppingmode = usbController.getCaddyStepperMicrosteppingMode();

            switch (headstepper1microsteppingmode)
            {
                case 0x01:
                    radio_HeadStepper1_Microstepping1.IsChecked = true;
                    break;
                case 0x02:
                    radio_HeadStepper1_Microstepping2.IsChecked = true;
                    break;
                case 0x04:
                    radio_HeadStepper1_Microstepping4.IsChecked = true;
                    break;
                case 0x08:
                    radio_HeadStepper1_Microstepping8.IsChecked = true;
                    break;
                case 0x16:
                    radio_HeadStepper1_Microstepping16.IsChecked = true;
                    break;
                case 0x32:
                    radio_HeadStepper1_Microstepping32.IsChecked = true;
                    break;
                default:
                    this.lblStatus.Content = "Error getting status for Head Stepper 1 Micro-stepping";
                    break;
            }

            switch (headstepper2microsteppingmode)
            {
                case 0x01:
                    radio_HeadStepper2_Microstepping1.IsChecked = true;
                    break;
                case 0x02:
                    radio_HeadStepper2_Microstepping2.IsChecked = true;
                    break;
                case 0x04:
                    radio_HeadStepper2_Microstepping4.IsChecked = true;
                    break;
                case 0x08:
                    radio_HeadStepper2_Microstepping8.IsChecked = true;
                    break;
                case 0x16:
                    radio_HeadStepper2_Microstepping16.IsChecked = true;
                    break;
                case 0x32:
                    radio_HeadStepper2_Microstepping32.IsChecked = true;
                    break;
                default:
                    this.lblStatus.Content = "Error getting status for Head Stepper 2 Micro-stepping";
                    break;
            }

            switch (solderstepper1microsteppingmode)
            {
                case 0x01:
                    radio_SolderStepper1_Microstepping1.IsChecked = true;
                    break;
                case 0x02:
                    radio_SolderStepper1_Microstepping2.IsChecked = true;
                    break;
                case 0x04:
                    radio_SolderStepper1_Microstepping4.IsChecked = true;
                    break;
                case 0x08:
                    radio_SolderStepper1_Microstepping8.IsChecked = true;
                    break;
                case 0x16:
                    radio_SolderStepper1_Microstepping16.IsChecked = true;
                    break;
                case 0x32:
                    radio_SolderStepper1_Microstepping32.IsChecked = true;
                    break;
                default:
                    this.lblStatus.Content = "Error getting status for Solder Stepper 1 Micro-stepping";
                    break;
            }

            switch (solderstepper2microsteppingmode)
            {
                case 0x01:
                    radio_SolderStepper2_Microstepping1.IsChecked = true;
                    break;
                case 0x02:
                    radio_SolderStepper2_Microstepping2.IsChecked = true;
                    break;
                case 0x04:
                    radio_SolderStepper2_Microstepping4.IsChecked = true;
                    break;
                case 0x08:
                    radio_SolderStepper2_Microstepping8.IsChecked = true;
                    break;
                case 0x16:
                    radio_SolderStepper2_Microstepping16.IsChecked = true;
                    break;
                case 0x32:
                    radio_SolderStepper2_Microstepping32.IsChecked = true;
                    break;
                default:
                    this.lblStatus.Content = "Error getting status for Solder Stepper 2 Micro-stepping";
                    break;
            }

            switch (caddysteppermicrosteppingmode)
            {
                case 0x01:
                    radio_CaddyStepper_Microstepping1.IsChecked = true;
                    break;
                case 0x02:
                    radio_CaddyStepper_Microstepping2.IsChecked = true;
                    break;
                case 0x04:
                    radio_CaddyStepper_Microstepping4.IsChecked = true;
                    break;
                case 0x08:
                    radio_CaddyStepper_Microstepping8.IsChecked = true;
                    break;
                case 0x16:
                    radio_CaddyStepper_Microstepping16.IsChecked = true;
                    break;
                case 0x32:
                    radio_CaddyStepper_Microstepping32.IsChecked = true;
                    break;
                default:
                    this.lblStatus.Content = "Error getting status for Caddy Stepper Micro-stepping";
                    break;
            }

            // Get the default current settings from the controller

            byte headstepper1current = usbController.getHeadStepper1Current();
            byte headstepper2current = usbController.getHeadStepper2Current();
            byte solderstepper1current = usbController.getSolderStepper1Current();
            byte solderstepper2current = usbController.getSolderStepper2Current();
            byte caddysteppercurrent = usbController.getCaddyStepperCurrent();

            slider_HeadStepper1_Current.Value = headstepper1current;
            lbl_HeadStepper1_Current.Content = calculateCurrent_mA(headstepper1current).ToString("0.00 A");

            slider_HeadStepper2_Current.Value = headstepper2current;
            lbl_HeadStepper2_Current.Content = calculateCurrent_mA(headstepper2current).ToString("0.00 A");

            slider_SolderStepper1_Current.Value = solderstepper1current;
            lbl_SolderStepper1_Current.Content = calculateCurrent_mA(solderstepper1current).ToString("0.00 A");

            slider_SolderStepper2_Current.Value = solderstepper2current;
            lbl_SolderStepper2_Current.Content = calculateCurrent_mA(solderstepper2current).ToString("0.00 A");

            slider_CaddyStepper_Current.Value = caddysteppercurrent;
            lbl_CaddyStepper_Current.Content = calculateCurrent_mA(caddysteppercurrent).ToString("0.00 A");

            // get the soldering iron status

            solderingControllerStatus = usbController.getSolderingGlobalStatus();

            lbl_iron1_currenttemperature.Content = solderingControllerStatus.Iron1_Temperature.ToString("0.00°C");

            lbl_iron2_currenttemperature.Content = solderingControllerStatus.Iron2_Temperature.ToString("0.00°C");

            txt_iron1_targettemperature.Text = solderingControllerStatus.Iron1_Target_Temperature.ToString("0.00");

            txt_iron2_targettemperature.Text = solderingControllerStatus.Iron2_Target_Temperature.ToString("0.00");

            bool solderingiron1status = solderingControllerStatus.Iron1_Running;
            bool solderingiron2status = solderingControllerStatus.Iron2_Running;

            if (solderingiron1status) { lbl_iron1_status.Content = "Heating"; } else { lbl_iron1_status.Content = "Off"; }

            if (solderingiron2status) { lbl_iron2_status.Content = "Heating"; } else { lbl_iron2_status.Content = "Off"; }

            bool solderingiron1activation = solderingControllerStatus.Iron1_Activate;
            bool solderingiron2activation = solderingControllerStatus.Iron2_Activate;

            if (solderingiron1activation) { cb_solderingiron1active.IsChecked = true; } else { cb_solderingiron1active.IsChecked = false; }
            if (solderingiron2activation) { cb_solderingiron2active.IsChecked = true; } else { cb_solderingiron2active.IsChecked = false; }

            ConfigLoaded = true;

            // start the timer to update the temperatures

            dispatcherTimer.Start();
        }
        private void dispatcherTimer_Tick(object sender, EventArgs e)
        {
            // get the temperatures from the soldering irons and display it on the screen

            solderingControllerStatus = usbController.getSolderingGlobalStatus();

            lbl_iron1_currenttemperature.Content = solderingControllerStatus.Iron1_Temperature.ToString("0.00°C");

            lbl_iron2_currenttemperature.Content = solderingControllerStatus.Iron2_Temperature.ToString("0.00°C");

            bool solderingiron1status = solderingControllerStatus.Iron1_Running;
            bool solderingiron2status = solderingControllerStatus.Iron2_Running;

            if (solderingiron1status) { lbl_iron1_status.Content = "Heating"; } else { lbl_iron1_status.Content = "Off"; }

            if (solderingiron2status) { lbl_iron2_status.Content = "Heating"; } else { lbl_iron2_status.Content = "Off"; }

            string log = "";
            if (solderingControllerStatus.success) { log += "Success:"; } else { log += "Failed:"; }
            if (solderingControllerStatus.Iron1_Running) { log += "Iron1=On,"; } else { log += "Iron1=Off,"; }
            if (solderingControllerStatus.Iron2_Running) { log += "Iron2=On,"; } else { log += "Iron2=Off,"; }
            log += solderingControllerStatus.Iron1_Temperature.ToString("0.00°C,");
            log += solderingControllerStatus.Iron2_Temperature.ToString("0.00°C,");
            log += solderingControllerStatus.Iron1_Target_Temperature.ToString("0.00°C,");
            log += solderingControllerStatus.Iron2_Target_Temperature.ToString("0.00°C");

            using (System.IO.StreamWriter w = File.AppendText("d:\\solderlog.txt"))
            {
                w.WriteLine(log);
            }
        }
        public SolderingStationObject getSolderingGlobalStatus() {
            SolderingStationObject tmpObj = new SolderingStationObject();

            tmpObj.success = true;

            try
            {
                Byte[] outputBuffer = new Byte[65];
                Byte[] inputBuffer = new Byte[65];

                string s = "";
                double f = 0;

                outputBuffer[0] = 0;
                outputBuffer[1] = 0x03;
                outputBuffer[2] = 0x20;

                bool success;
                success = writeRawReportToDevice(outputBuffer);

                if (success)
                {
                    // Perform the read
                    success = readSingleReportFromDevice(ref inputBuffer);


                    if (inputBuffer[3] == '1')
                    { // Iron 1 is switched on
                        tmpObj.Iron1_Running = true;
                    }
                    if (inputBuffer[3] == '0')
                    { // Iron 1 is switched on
                        tmpObj.Iron1_Running = false;
                    }
                    if (inputBuffer[5] == '1')
                    { // Iron 1 is switched on
                        tmpObj.Iron2_Running = true;
                    }
                    if (inputBuffer[5] == '0')
                    { // Iron 1 is switched on
                        tmpObj.Iron2_Running = false;
                    }

                    try
                    {

                        Byte[] SolderingIron1Temperature = new Byte[6];

                        SolderingIron1Temperature[0] = inputBuffer[7];
                        SolderingIron1Temperature[1] = inputBuffer[8];
                        SolderingIron1Temperature[2] = inputBuffer[9];
                        SolderingIron1Temperature[3] = inputBuffer[10];
                        SolderingIron1Temperature[4] = inputBuffer[11];
                        SolderingIron1Temperature[5] = inputBuffer[12];

                        s = Encoding.UTF8.GetString(SolderingIron1Temperature, 0, 6);
                        f = double.Parse(s, System.Globalization.CultureInfo.InvariantCulture.NumberFormat);

                        tmpObj.Iron1_Temperature = f;
                    }
                    catch
                    {
                        tmpObj.Iron1_Temperature = 666;
                        tmpObj.success = false;
                    }

                    try
                    {
                        Byte[] SolderingIron2Temperature = new Byte[6];

                        SolderingIron2Temperature[0] = inputBuffer[14];
                        SolderingIron2Temperature[1] = inputBuffer[15];
                        SolderingIron2Temperature[2] = inputBuffer[16];
                        SolderingIron2Temperature[3] = inputBuffer[17];
                        SolderingIron2Temperature[4] = inputBuffer[18];
                        SolderingIron2Temperature[5] = inputBuffer[19];

                        s = Encoding.UTF8.GetString(SolderingIron2Temperature, 0, 6);
                        f = double.Parse(s, System.Globalization.CultureInfo.InvariantCulture.NumberFormat);

                        tmpObj.Iron2_Temperature = f;
                    }
                    catch
                    {
                        tmpObj.Iron2_Temperature = 777;
                        tmpObj.success = false;
                    }

                    try
                    {

                        Byte[] SolderingIron1TargetTemperature = new Byte[6];

                        SolderingIron1TargetTemperature[0] = inputBuffer[21];
                        SolderingIron1TargetTemperature[1] = inputBuffer[22];
                        SolderingIron1TargetTemperature[2] = inputBuffer[23];
                        SolderingIron1TargetTemperature[3] = inputBuffer[24];
                        SolderingIron1TargetTemperature[4] = inputBuffer[25];
                        SolderingIron1TargetTemperature[5] = inputBuffer[26];

                        s = Encoding.UTF8.GetString(SolderingIron1TargetTemperature, 0, 6);
                        f = double.Parse(s, System.Globalization.CultureInfo.InvariantCulture.NumberFormat);

                        tmpObj.Iron1_Target_Temperature = f;
                    }
                    catch
                    {
                        tmpObj.Iron1_Target_Temperature = 888;
                        tmpObj.success = false;
                    }

                    try
                    {

                        Byte[] SolderingIron2TargetTemperature = new Byte[6];

                        SolderingIron2TargetTemperature[0] = inputBuffer[28];
                        SolderingIron2TargetTemperature[1] = inputBuffer[29];
                        SolderingIron2TargetTemperature[2] = inputBuffer[30];
                        SolderingIron2TargetTemperature[3] = inputBuffer[31];
                        SolderingIron2TargetTemperature[4] = inputBuffer[32];
                        SolderingIron2TargetTemperature[5] = inputBuffer[33];

                        s = Encoding.UTF8.GetString(SolderingIron2TargetTemperature, 0, 6);
                        f = double.Parse(s, System.Globalization.CultureInfo.InvariantCulture.NumberFormat);

                        tmpObj.Iron2_Target_Temperature = f;

                    }
                    catch
                    {
                        tmpObj.Iron2_Target_Temperature = 999;
                        tmpObj.success = false;
                    }

                    if (inputBuffer[35] == '1')
                    { // Iron 1 is switched on
                        tmpObj.Iron1_Activate = true;
                    }
                    if (inputBuffer[35] == '0')
                    { // Iron 1 is switched on
                        tmpObj.Iron1_Activate = false;
                    }
                    if (inputBuffer[36] == '1')
                    { // Iron 1 is switched on
                        tmpObj.Iron2_Activate = true;
                    }
                    if (inputBuffer[36] == '0')
                    { // Iron 1 is switched on
                        tmpObj.Iron2_Activate = false;
                    }

                }
                else
                {
                    tmpObj.Iron1_Activate = false;
                    tmpObj.Iron2_Activate = false;
                    tmpObj.Iron1_Running = false;
                    tmpObj.Iron2_Running = false;
                    tmpObj.Iron1_Temperature = 0;
                    tmpObj.Iron2_Temperature = 0;
                    tmpObj.Iron1_Target_Temperature = 0;
                    tmpObj.Iron2_Target_Temperature = 0;
                    tmpObj.success = false;
                }
            }
            catch
            {
                tmpObj.Iron1_Activate = false;
                tmpObj.Iron2_Activate = false;
                tmpObj.Iron1_Running = false;
                tmpObj.Iron2_Running = false;
                tmpObj.Iron1_Temperature = 0;
                tmpObj.Iron2_Temperature = 0;
                tmpObj.Iron1_Target_Temperature = 0;
                tmpObj.Iron2_Target_Temperature = 0;
                tmpObj.success = false;
            }
            

            return tmpObj;
        }