Exemple #1
0
        private void dataGridView1_SelectionChanged(object sender, EventArgs e)
        {
            if (dataGridView1.SelectedRows.Count == 0)
            {
                return;
            }
            int select_index = dataGridView1.SelectedRows[0].Index;
            var v_sec        = vsecs[select_index];

            E_DIRC_DRIV drive_dir = v_sec.DIRC_DRIV;
            E_DIRC_GUID guide_dir = v_sec.DIRC_GUID;
            string      seg_num   = v_sec.SEG_NUM;

            E_DIRC_GUID     guide_dir_1     = v_sec.CDOG_1;
            E_DIRC_GUID     guide_dir_2     = v_sec.CDOG_2;
            string          segment_num_1   = v_sec.CHG_SEG_NUM_1;
            string          segment_num_2   = v_sec.CHG_SEG_NUM_2;
            E_AreaSensorDir areaSensorDir   = v_sec.AREA_SECSOR.Value;
            E_AreaSensorDir areaSensorDir_1 = v_sec.CHG_AREA_SECSOR_1;
            E_AreaSensorDir areaSensorDir_2 = v_sec.CHG_AREA_SECSOR_2;

            double section_distance = v_sec.SEC_DIS / 10000;
            double section_speed    = v_sec.SEC_SPD.HasValue ? (v_sec.SEC_SPD.Value / 100) : 0;

            bool   PresenceBlockingRequest            = v_sec.PRE_BLO_REQ == 1;    //0
            bool   PresenceDiverge                    = v_sec.BRANCH_FLAG;         //1
            bool   PresenceHIDControl                 = v_sec.HID_CONTROL;         //2
            bool   EnableChangeGuideArea              = v_sec.ENB_CHG_G_AREA == 1; //4
            bool   PresenceAddressReport              = v_sec.PRE_ADD_REPR == 1;   //8
            bool   LaserSensor_ForwardStraight        = v_sec.RANGE_SENSOR_F == 1; //12
            bool   CollisionAvoidance_ForwardStraight = v_sec.OBS_SENSOR_F == 1;   //13
            bool   CollisionAvoidance_RightStraight   = v_sec.OBS_SENSOR_R == 1;   //14
            bool   CollisionAvoidance_LeftStraight    = v_sec.OBS_SENSOR_L == 1;   //15
            UInt16 contrl_value = convertvSec2ControlTable(v_sec);

            cmbo_AreaSensor_Value.SelectedItem        = areaSensorDir;
            cmbo_SectionID_Value.SelectedIndex        = select_index;
            cmbo_DriveDir_Value.SelectedItem          = drive_dir;
            cmbo_GuideDir_Value.SelectedItem          = guide_dir;
            cmbo_SegmentNo_Value.SelectedItem         = seg_num;
            cmbo_DirectionOfGuide1_Value.SelectedItem = guide_dir_1;
            cmbo_SegmentNumber1_Value.SelectedItem    = segment_num_1.Trim();
            cmbo_AreaSensor1_Value.SelectedItem       = areaSensorDir_1;
            cmbo_DirectionOfGuide2_Value.SelectedItem = guide_dir_2;
            cmbo_SegmentNumber2_Value.SelectedItem    = segment_num_2.Trim();
            cmbo_AreaSensor2_Value.SelectedItem       = areaSensorDir_2;

            num_section_dis.Value   = (decimal)section_distance;
            num_section_speed.Value = (decimal)section_speed;

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

            num_controlTable_Value.Value = contrl_value;
        }
Exemple #2
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;
            }
        }