public void SetHeatingElementStatus(OvenChanEnum oven_element, OvenHeatOnOffEnum element_on_or_off) { switch (oven_element) { case OvenChanEnum.AllOff: case OvenChanEnum.OvenOff: outer_status = false; sample_zone_status = false; inner_status = false; break; case OvenChanEnum.Inner: if (element_on_or_off == OvenHeatOnOffEnum.On) { inner_status = true; } else { inner_status = false; } break; case OvenChanEnum.Outer: if (element_on_or_off == OvenHeatOnOffEnum.On) { outer_status = true; } else { outer_status = false; } break; case OvenChanEnum.SampleZone: if (element_on_or_off == OvenHeatOnOffEnum.On) { sample_zone_status = true; } else { sample_zone_status = false; } break; case OvenChanEnum.OvenOn: outer_status = true; sample_zone_status = true; inner_status = true; break; default: //exit function return; } if (outer_status) SetOuterIndicatorToOn(); else SetOuterIndicatorToOff(); if (inner_status) SetInnerIndicatorToOn(); else SetInnerIndicatorToOff(); if (sample_zone_status) SetSampleZoneIndicatorToOn(); else SetSampleZoneIndicatorToOff(); }
private void SetOvenChannelOutput(OvenChanEnum channel, OvenHeatOnOffEnum on_or_off) { MccDaq.ErrorInfo RetVal = new ErrorInfo(); switch (channel) { case OvenChanEnum.OvenOn: for (int i = 0; i < 3; i++) { if ((i == inner_zone_heater_index && inner_zone_heater_disabled) || (i == sample_zone_heater_index && sample_zone_heater_disabled) || (i == outer_zone_heater_index && outer_zone_heater_disabled)) { //Toggle heating element off //Heating element has been programmatically disabled RetVal = oven_board.DBitOut(DigitalPortType.AuxPort, i, DigitalLogicState.Low); IsError(this, RetVal, true); } else { //Toggle heating element on RetVal = oven_board.DBitOut(DigitalPortType.AuxPort, i, DigitalLogicState.High); IsError(this, RetVal, true); } } break; case OvenChanEnum.OvenOff: for (int i = 0; i < 3; i++) { RetVal = oven_board.DBitOut(DigitalPortType.AuxPort, i, DigitalLogicState.Low); IsError(this, RetVal, true); } break; case OvenChanEnum.AllOff: for (int i = 0; i < 3; i++) { RetVal = oven_board.DBitOut(DigitalPortType.AuxPort, i, DigitalLogicState.Low); IsError(this, RetVal, true); } break; case OvenChanEnum.Inner: if (on_or_off == OvenHeatOnOffEnum.On && !inner_zone_heater_disabled) { RetVal = oven_board.DBitOut(DigitalPortType.AuxPort, inner_zone_heater_index, DigitalLogicState.High); } else { RetVal = oven_board.DBitOut(DigitalPortType.AuxPort, inner_zone_heater_index, DigitalLogicState.Low); } IsError(this, RetVal, true); break; case OvenChanEnum.SampleZone: if (on_or_off == OvenHeatOnOffEnum.On && !sample_zone_heater_disabled) { RetVal = oven_board.DBitOut(DigitalPortType.AuxPort, sample_zone_heater_index, DigitalLogicState.High); } else { RetVal = oven_board.DBitOut(DigitalPortType.AuxPort, sample_zone_heater_index, DigitalLogicState.Low); } IsError(this, RetVal, true); break; case OvenChanEnum.Outer: if (on_or_off == OvenHeatOnOffEnum.On && !outer_zone_heater_disabled) { RetVal = oven_board.DBitOut(DigitalPortType.AuxPort, outer_zone_heater_index, DigitalLogicState.High); } else { RetVal = oven_board.DBitOut(DigitalPortType.AuxPort, outer_zone_heater_index, DigitalLogicState.Low); } IsError(this, RetVal, true); break; default: RetVal = new ErrorInfo(1); MessageBox.Show( "Set Oven Channel Output error -- invalid Oven Channel Output State input.", " " + "ERROR!"); break; } RetVal = oven_board.DConfigBit(DigitalPortType.AuxPort, 0, DigitalPortDirection.DigitalOut); if (IsError(this, RetVal, true) == ErrorCodeEnum.NoError) { oven_status = channel; SetHeatingElementStatus(channel, on_or_off); } }