public void set2UI(sc.SCALE_BASE_DATA scale_base_data) { int resolution = (int)scale_base_data.RESOLUTION; int inposition_area = (int)scale_base_data.INPOSITION_AREA; int Inposition_Stability_Time = (int)scale_base_data.INPOSITION_STABLE_TIME; int Total_Pulse_Of_One_Scale = (int)scale_base_data.TOTAL_SCALE_PULSE; int scale_offset = (int)scale_base_data.SCALE_OFFSET; int Scale_Reset_Distance = (int)scale_base_data.SCALE_RESE_DIST; E_DIRC_DRIV Direction_of_Read = scale_base_data.READ_DIR; numic_Resolution_Value.Value = (decimal)resolution / SCALE_100; numic_InpositionArea_Value.Value = (decimal)inposition_area / SCALE_10000; numic_InpositionStabilityTime_Value.Value = (decimal)Inposition_Stability_Time / SCALE_10; numic_TotalPulseOfOneScale_Value.Value = (decimal)Total_Pulse_Of_One_Scale; numic_ScaleOffset_Value.Value = (decimal)scale_offset / SCALE_10000; numic_ScaleResetDistance_Value.Value = (decimal)Scale_Reset_Distance / SCALE_10000; cmbo_dirc_of_read.SelectedItem = Direction_of_Read; }
private async void Uc_bt_Save1_MyClick(object sender, EventArgs e) { int resolution = (int)(numic_Resolution_Value.Value * SCALE_100); int inposition_area = (int)(numic_InpositionArea_Value.Value * SCALE_10000); int Inposition_Stability_Time = (int)(numic_InpositionStabilityTime_Value.Value * SCALE_10); int Total_Pulse_Of_One_Scale = (int)(numic_TotalPulseOfOneScale_Value.Value); int scale_offset = (int)(numic_ScaleOffset_Value.Value * SCALE_10000); int Scale_Reset_Distance = (int)(numic_ScaleResetDistance_Value.Value * SCALE_10000); E_DIRC_DRIV Direction_of_Read = (E_DIRC_DRIV)cmbo_dirc_of_read.SelectedItem; sc.SCALE_BASE_DATA new_scale_base_data = new SCALE_BASE_DATA(); new_scale_base_data.RESOLUTION = resolution; new_scale_base_data.INPOSITION_AREA = inposition_area; new_scale_base_data.INPOSITION_STABLE_TIME = Inposition_Stability_Time; new_scale_base_data.TOTAL_SCALE_PULSE = Total_Pulse_Of_One_Scale; new_scale_base_data.SCALE_OFFSET = scale_offset; new_scale_base_data.SCALE_RESE_DIST = Scale_Reset_Distance; new_scale_base_data.READ_DIR = Direction_of_Read; new_scale_base_data.SUB_VER = scale_base_data.SUB_VER; new_scale_base_data.ADD_TIME = scale_base_data.ADD_TIME; new_scale_base_data.ADD_USER = scale_base_data.ADD_USER; new_scale_base_data.UPD_TIME = scale_base_data.UPD_TIME; new_scale_base_data.UPD_USER = scale_base_data.UPD_USER; bool isSuccess = false; await Task.Run(() => isSuccess = dataSetting.updateScaleBaseData(new_scale_base_data)); if (isSuccess) { scale_base_data.RESOLUTION = resolution; scale_base_data.INPOSITION_AREA = inposition_area; scale_base_data.INPOSITION_STABLE_TIME = Inposition_Stability_Time; scale_base_data.TOTAL_SCALE_PULSE = Total_Pulse_Of_One_Scale; scale_base_data.SCALE_OFFSET = scale_offset; scale_base_data.SCALE_RESE_DIST = Scale_Reset_Distance; scale_base_data.READ_DIR = Direction_of_Read; } else { set2UI(scale_base_data); } }
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; }
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; } }
private async void Uc_bt_Save1_MyClick(object sender, EventArgs e) { var vh_data = cmbo_VehicleID_Value.SelectedItem as sc.AVEHICLE_CONTROL_100; var new_vh_data = new sc.AVEHICLE_CONTROL_100(); int resolution = (int)(numic_Resolution_Value.Value * SCALE_1000); int start_stop_speed = (int)(numic_StartStopSpeed_Value.Value * SCALE_100); int max_speed = (int)(numic_MaxSpeed_Value.Value * SCALE_100); int accel_deccel_time = (int)(numic_AccDeccTime_Value.Value * SCALE_1000); E_DIRC_DRIV dire_of_home = (E_DIRC_DRIV)cmbo_DirectOfHome_Value.SelectedItem; int home_speed = (int)(numic_HomeSpeed_Value.Value * SCALE_100); int keep_distance_speed = (int)(numic_KeepDistanceSpeed_Value.Value * SCALE_100); int keep_distance_far_speed = (int)(numic_KeepDistanceFar_Value.Value); int keep_distance_near_speed = (int)(numic_KeepDistanceNear_Value.Value); int maunual_high_speed = (int)(numic_ManualHighSpeed_Value.Value * SCALE_100); int maunual_low_speed = (int)(numic_ManualLowSpeed_Value.Value * SCALE_100); int teaching_speed = (int)(numic_TeachingSpeed_Value.Value * SCALE_100); E_DIRC_DRIV travel_dirc = (E_DIRC_DRIV)cmbo_TravelDirection_Value.SelectedItem; int front_limit = (int)(numic_FrontLimit_Value.Value); int rear_limit = (int)(numic_FrontLimit_Value.Value); int s_curve_rate = (int)(numic_SCurveRate_Value.Value); E_ENCODER_POLE pole_encoder = (E_ENCODER_POLE)cmbo_PoleOfEncoder_Value.SelectedItem; int position_compensation = (int)(numic_position_compensation.Value * SCALE_10000); new_vh_data.VEHICLE_ID = vh_data.VEHICLE_ID; new_vh_data.TRAVEL_RESOLUTION = resolution; new_vh_data.TRAVEL_START_STOP_SPEED = start_stop_speed; new_vh_data.TRAVEL_MAX_SPD = max_speed; new_vh_data.TRAVEL_ACCEL_DECCEL_TIME = accel_deccel_time; new_vh_data.TRAVEL_HOME_DIR = dire_of_home; new_vh_data.TRAVEL_HOME_SPD = home_speed; new_vh_data.TRAVEL_KEEP_DIS_SPD = keep_distance_speed; new_vh_data.TRAVEL_OBS_DETECT_LONG = keep_distance_far_speed; new_vh_data.TRAVEL_OBS_DETECT_SHORT = keep_distance_near_speed; new_vh_data.TRAVEL_MANUAL_HIGH_SPD = maunual_high_speed; new_vh_data.TRAVEL_MANUAL_LOW_SPD = maunual_low_speed; new_vh_data.TRAVEL_TEACHING_SPD = teaching_speed; new_vh_data.TRAVEL_TRAVEL_DIR = travel_dirc; new_vh_data.TRAVEL_TRAVEL_DIR = travel_dirc; new_vh_data.TRAVEL_F_DIR_LIMIT = position_compensation; //先用F_DIR_LIMIT 作為position_compensation的欄位 //new_vh_data.TRAVEL_R_DIR_LIMIT = rear_limit * SCALE_100; new_vh_data.TRAVEL_S_CURVE_RATE = s_curve_rate; new_vh_data.TRAVEL_ENCODER_POLARITY = pole_encoder; new_vh_data.SUB_VER = ""; bool isSuccess = false; await Task.Run(() => isSuccess = dataSetting.updateTravelBaseData(new_vh_data)); if (isSuccess) { vh_data.TRAVEL_RESOLUTION = resolution; vh_data.TRAVEL_START_STOP_SPEED = start_stop_speed; vh_data.TRAVEL_MAX_SPD = max_speed; vh_data.TRAVEL_ACCEL_DECCEL_TIME = accel_deccel_time; vh_data.TRAVEL_HOME_DIR = dire_of_home; vh_data.TRAVEL_HOME_SPD = home_speed; vh_data.TRAVEL_KEEP_DIS_SPD = keep_distance_speed; vh_data.TRAVEL_OBS_DETECT_LONG = keep_distance_far_speed; vh_data.TRAVEL_OBS_DETECT_SHORT = keep_distance_near_speed; vh_data.TRAVEL_MANUAL_HIGH_SPD = maunual_high_speed; vh_data.TRAVEL_MANUAL_LOW_SPD = maunual_low_speed; vh_data.TRAVEL_TEACHING_SPD = teaching_speed; vh_data.TRAVEL_TRAVEL_DIR = travel_dirc; //vh_data.TRAVEL_F_DIR_LIMIT = front_limit; vh_data.TRAVEL_R_DIR_LIMIT = rear_limit; vh_data.TRAVEL_S_CURVE_RATE = s_curve_rate; vh_data.TRAVEL_ENCODER_POLARITY = pole_encoder; vh_data.TRAVEL_F_DIR_LIMIT = position_compensation; } else { set2UI(vh_data); } }
private void set2UI(sc.AVEHICLE_CONTROL_100 vh_data) { double resolution = (double)vh_data.TRAVEL_RESOLUTION / SCALE_1000; double start_stop_speed = (double)vh_data.TRAVEL_START_STOP_SPEED / SCALE_100; double max_speed = (double)vh_data.TRAVEL_MAX_SPD / SCALE_100; double accel_deccel_time = (double)vh_data.TRAVEL_ACCEL_DECCEL_TIME / SCALE_1000; E_DIRC_DRIV dire_of_home = vh_data.TRAVEL_HOME_DIR; double home_speed = (double)vh_data.TRAVEL_HOME_SPD / SCALE_100; double keep_distance_speed = (double)vh_data.TRAVEL_KEEP_DIS_SPD / SCALE_100; double keep_distance_far_speed = (double)vh_data.TRAVEL_OBS_DETECT_LONG; double keep_distance_near_speed = (double)vh_data.TRAVEL_OBS_DETECT_SHORT; double maunual_high_speed = (double)vh_data.TRAVEL_MANUAL_HIGH_SPD / SCALE_100; double maunual_low_speed = (double)vh_data.TRAVEL_MANUAL_LOW_SPD / SCALE_100; double teaching_speed = (double)vh_data.TRAVEL_TEACHING_SPD / SCALE_100; E_DIRC_DRIV travel_dirc = vh_data.TRAVEL_TRAVEL_DIR; double front_limit = (double)vh_data.TRAVEL_F_DIR_LIMIT; double rear_limit = (double)vh_data.TRAVEL_R_DIR_LIMIT; double s_curve_rate = (double)vh_data.TRAVEL_S_CURVE_RATE; E_ENCODER_POLE pole_encoder = vh_data.TRAVEL_ENCODER_POLARITY; double position_compensation = (double)vh_data.TRAVEL_F_DIR_LIMIT / SCALE_10000; numic_Resolution_Value.Value = (decimal)resolution; numic_StartStopSpeed_Value.Value = (decimal)start_stop_speed; numic_MaxSpeed_Value.Value = (decimal)max_speed; numic_AccDeccTime_Value.Value = (decimal)accel_deccel_time; cmbo_DirectOfHome_Value.SelectedItem = dire_of_home; numic_HomeSpeed_Value.Value = (decimal)home_speed; numic_KeepDistanceSpeed_Value.Value = (decimal)keep_distance_speed; numic_KeepDistanceFar_Value.Value = (decimal)keep_distance_far_speed; numic_KeepDistanceNear_Value.Value = (decimal)keep_distance_near_speed; numic_ManualHighSpeed_Value.Value = (decimal)maunual_high_speed; numic_ManualLowSpeed_Value.Value = (decimal)maunual_low_speed; numic_TeachingSpeed_Value.Value = (decimal)teaching_speed; cmbo_TravelDirection_Value.SelectedItem = travel_dirc; numic_FrontLimit_Value.Value = (decimal)front_limit; numic_RearLimit_Value.Value = (decimal)rear_limit; numic_SCurveRate_Value.Value = (decimal)s_curve_rate; cmbo_PoleOfEncoder_Value.SelectedItem = pole_encoder; numic_position_compensation.Value = (decimal)position_compensation; //int resolution = (int)numic_Resolution_Value.Value; //int start_stop_speed = (int)numic_StartStopSpeed_Value.Value; //int max_speed = (int)numic_MaxSpeed_Value.Value; //int accel_deccel_time = (int)numic_AccDeccTime_Value.Value; //E_DIRC_DRIV dire_of_home = (E_DIRC_DRIV)cmbo_DirectOfHome_Value.SelectedItem; //int home_speed = (int)numic_HomeSpeed_Value.Value; //int keep_distance_speed = (int)numic_KeepDistanceSpeed_Value.Value; //int keep_distance_far_speed = (int)numic_KeepDistanceFar_Value.Value; //int keep_distance_near_speed = (int)numic_KeepDistanceNear_Value.Value; //int maunual_high_speed = (int)numic_ManualHighSpeed_Value.Value; //int maunual_low_speed = (int)numic_ManualLowSpeed_Value.Value; //int teaching_speed = (int)numic_TeachingSpeed_Value.Value; //E_DIRC_DRIV travel_dirc = (E_DIRC_DRIV)cmbo_TravelDirection_Value.SelectedItem; //int front_limit = (int)numic_FrontLimit_Value.Value; //int rear_limit = (int)numic_FrontLimit_Value.Value; //int s_curve_rate = (int)numic_SCurveRate_Value.Value; //E_ENCODER_POLE pole_encoder = (E_ENCODER_POLE)cmbo_PoleOfEncoder_Value.SelectedItem; //numic_StartStopSpeed_Value.Value = start_stop_speed / SCALE_100; //numic_MaxSpeed_Value.Value = max_speed / SCALE_100; //numic_AccDeccTime_Value.Value = accel_deccel_time / SCALE_1000; //numic_SCurveRate_Value.Value = s_curve_rate; //numic_RunningSpeed_Value.Value = run_speed / SCALE_100; //numic_ManualHighSpeed_Value.Value = manual_high_speed / SCALE_10000; //numic_ManualLowSpeed_Value.Value = manual_low_speed / SCALE_10000; //numic_FrontLeftLoclPosition_Value.Value = lf_lock_position / SCALE_10000; //numic_RearLeftLoclPosition_Value.Value = lb_lock_position / SCALE_10000; //numic_FrontRightLoclPosition_Value.Value = rf_lock_position / SCALE_10000; //numic_RearRightLoclPosition_Value.Value = rb_lock_position / SCALE_10000; //numic_ChangeStabilityTime_Value.Value = chang_stable_time / SCALE_10; }