Ejemplo n.º 1
0
        private async void uc_bt_Save1_Click(object sender, EventArgs e)
        {
            string          sec_id      = cmbo_SectionID_Value.Text as string;
            E_DIRC_DRIV     drive_dir   = (E_DIRC_DRIV)cmbo_DriveDir_Value.SelectedItem;
            E_DIRC_GUID     guide_dir   = (E_DIRC_GUID)cmbo_GuideDir_Value.SelectedItem;
            E_AreaSensorDir area_sensor = (E_AreaSensorDir)cmbo_AreaSensor_Value.SelectedItem;
            //string seg_num = cmbo_SegmentNo_Value.Text;

            E_DIRC_GUID     guide_dir_1     = (E_DIRC_GUID)cmbo_DirectionOfGuide1_Value.SelectedItem;
            E_DIRC_GUID     guide_dir_2     = (E_DIRC_GUID)cmbo_DirectionOfGuide2_Value.SelectedItem;
            string          segment_num_1   = cmbo_SegmentNumber1_Value.Text;
            string          segment_num_2   = cmbo_SegmentNumber2_Value.Text;
            E_AreaSensorDir areaSensorDir_1 = (E_AreaSensorDir)cmbo_AreaSensor1_Value.SelectedItem;
            E_AreaSensorDir areaSensorDir_2 = (E_AreaSensorDir)cmbo_AreaSensor2_Value.SelectedItem;

            double section_distance = (double)(num_section_dis.Value * 10000);
            double section_speed    = (double)(num_section_speed.Value * 100);

            bool CollisionAvoidance_ForwardStraight = ck_CA_Senser_Forward.Checked;
            bool CollisionAvoidance_RightStraight   = skinCheckBox2.Checked;
            bool CollisionAvoidance_LeftStraight    = skinCheckBox3.Checked;
            bool LaserSensor_ForwardStraight        = skinCheckBox4.Checked;
            bool PresenceBlockingRequest            = skinCheckBox5.Checked;
            bool PresenceAddressReport = skinCheckBox6.Checked;
            bool EnableChangeGuideArea = skinCheckBox7.Checked;
            bool PresenceHIDControl    = skinCheckBox8.Checked;
            bool PresenceDiverge       = skinCheckBox9.Checked;

            ASECTION sec = new ASECTION()
            {
                SEC_ID        = sec_id,
                DIRC_DRIV     = drive_dir,
                DIRC_GUID     = guide_dir,
                AREA_SECSOR   = area_sensor,
                CDOG_1        = guide_dir_1,
                CDOG_2        = guide_dir_2,
                CHG_SEG_NUM_1 = segment_num_1,
                CHG_SEG_NUM_2 = segment_num_2,
                SEC_DIS       = section_distance,
                SEC_SPD       = section_speed,
                PRE_BLO_REQ   = PresenceBlockingRequest ? 1 : 0,
                //BRANCH_FLAG = PresenceDiverge
            };
            ASECTION_CONTROL_100 sec_100 = new ASECTION_CONTROL_100()
            {
                SEC_ID            = sec_id,
                CHG_AREA_SECSOR_1 = areaSensorDir_1,
                CHG_AREA_SECSOR_2 = areaSensorDir_2,
                OBS_SENSOR_F      = CollisionAvoidance_ForwardStraight ? 1 : 0,
                OBS_SENSOR_R      = CollisionAvoidance_RightStraight ? 1 : 0,
                OBS_SENSOR_L      = CollisionAvoidance_LeftStraight ? 1 : 0,
                RANGE_SENSOR_F    = LaserSensor_ForwardStraight ? 1 : 0,
                IS_ADR_RPT        = PresenceAddressReport,
                CAN_GUIDE_CHG     = EnableChangeGuideArea,
                HID_CONTROL       = PresenceHIDControl,
                BRANCH_FLAG       = PresenceDiverge
            };
            bool isSuccess = false;
            await Task.Run(() =>
            {
                isSuccess = dataSetting.updateSectionData(sec, sec_100);
            });

            if (isSuccess)
            {
                VSection_100ObjToShow vsec = vsecs.Where(secShow => secShow.SEC_ID == sec_id).SingleOrDefault();
                vsec.DIRC_DRIV     = sec.DIRC_DRIV;
                vsec.DIRC_GUID     = sec.DIRC_GUID;
                vsec.AREA_SECSOR   = sec.AREA_SECSOR;
                vsec.CDOG_1        = sec.CDOG_1;
                vsec.CDOG_2        = sec.CDOG_2;
                vsec.CHG_SEG_NUM_1 = sec.CHG_SEG_NUM_1;
                vsec.CHG_SEG_NUM_2 = sec.CHG_SEG_NUM_2;
                vsec.SEC_DIS       = sec.SEC_DIS;
                vsec.SEC_SPD       = sec.SEC_SPD;
                vsec.PRE_BLO_REQ   = sec.PRE_BLO_REQ;
                //vsec.PRE_DIV = sec.PRE_DIV;

                vsec.CHG_AREA_SECSOR_1 = sec_100.CHG_AREA_SECSOR_1;
                vsec.CHG_AREA_SECSOR_2 = sec_100.CHG_AREA_SECSOR_2;
                vsec.OBS_SENSOR_F      = sec_100.OBS_SENSOR_F;
                vsec.OBS_SENSOR_R      = sec_100.OBS_SENSOR_R;
                vsec.OBS_SENSOR_L      = sec_100.OBS_SENSOR_L;
                vsec.RANGE_SENSOR_F    = sec_100.RANGE_SENSOR_F;
                vsec.IS_ADR_RPT        = sec_100.IS_ADR_RPT;
                vsec.CAN_GUIDE_CHG     = sec_100.CAN_GUIDE_CHG;
                vsec.HID_CONTROL       = sec_100.HID_CONTROL;
                vsec.BRANCH_FLAG       = sec_100.BRANCH_FLAG;
            }
        }
Ejemplo n.º 2
0
 private UInt16 convertvSec2ControlTable(VSection_100ObjToShow vSec)
 {
     return(convertvSec2ControlTable(int2Bool(vSec.PRE_BLO_REQ), vSec.BRANCH_FLAG, vSec.HID_CONTROL, vSec.CAN_GUIDE_CHG, vSec.IS_ADR_RPT,
                                     int2Bool(vSec.RANGE_SENSOR_F), int2Bool(vSec.OBS_SENSOR_F), int2Bool(vSec.OBS_SENSOR_R), int2Bool(vSec.OBS_SENSOR_L)));;
 }