private void btnSetForce3_Click(object sender, EventArgs e) { if (USBSerial.advConfig.max_hall_value1 > 100) { int force = Int32.Parse(cbxForce3.GetItemText(cbxForce3.SelectedItem)); USBSerial.SetServoAngle(2, (int)USBSerial.map(force, 0, 100, USBSerial.advConfig.min_servo_angle3, USBSerial.advConfig.max_servo_angle3)); } }
private void btnSetMaxAngle3_Click(object sender, EventArgs e) { if (USBSerial.advConfig.max_hall_value1 > 100) { int angle = 0; if (Int32.TryParse(txtMaxServoAngle3.Text, out angle) && angle <= 180 && angle >= 0) { USBSerial.SetServoAngle(2, angle); } } }
private void updateSharedMemory() { int force1 = -1; int force2 = -1; int force3 = -1; try { smMutex.WaitOne(); // read force set data Marshal.Copy(smAddr, smData.data, 0, (int)SMPos.sm_set_length); force1 = smData.getAimForce1(); force2 = smData.getAimForce2(); force3 = smData.getAimForce3(); // clear setting flag smData.setAimForce1(-1); smData.setAimForce2(-1); smData.setAimForce3(-1); smData.setData(); Marshal.Copy(smData.data, 0, smAddr, (int)SMPos.sm_length); sharedMemoryLastTime = DateTime.Now.Ticks / 10000; } catch (Exception ex) { MessageBox.Show("更新共享内存出错:" + ex.Message); } finally { smMutex.ReleaseMutex(); } // check if aim forces are set if (force1 >= 0) { USBSerial.SetServoAngle(0, (int)USBSerial.map(force1, 0, 100, USBSerial.advConfig.min_servo_angle1, USBSerial.advConfig.max_servo_angle1)); } if (force2 >= 0) { USBSerial.SetServoAngle(1, (int)USBSerial.map(force2, 0, 100, USBSerial.advConfig.min_servo_angle2, USBSerial.advConfig.max_servo_angle2)); } if (force3 >= 0) { USBSerial.SetServoAngle(2, (int)USBSerial.map(force3, 0, 100, USBSerial.advConfig.min_servo_angle3, USBSerial.advConfig.max_servo_angle3)); } }