private AccelerometerReading(CoreMotion.CMAccelerometerData accelerometerData) { _accelerometerData = accelerometerData; }
/// <summary> /// 建立通讯 /// </summary> /// <param name="infoHardWare"></param> private void EstablishCommunication(object infoHardWare) { var softservoInfo = infoHardWare as SoftservoControlerInfo; int ret; Thread.Sleep(5000); cmApi = new CoreMotion(wmx); fx_EventControl = new EventControl(wmx); fx_ApiBuffer = new ApiBuffer(wmx); ecapi = new EcApiLib(wmx); fx_ListMotion = new ListMotion(wmx); wmx_IO = new Io(wmx); //设置系统参数 ret = cmApi.Config.ImportAndSetAll(softservoInfo.m_strConfigPath); if (ret != 0) { string errorCode = ""; errorCode = WMX3Api.ErrorToString(ret); // Global.logger.ErrorFormat("WMX3参数获取失败!错误信息:{0}", errorCode); //return false; } //开始进行通讯 int wd_count = 0; do { ret = wmx.StartCommunication();//通讯函数 Thread.Sleep(500); wd_count++; cmApi.GetStatus(ref status); } while ((status.EngineState == EngineState.Communicating) && (wd_count < 10));//确认是否通讯成功 if (status.EngineState != EngineState.Communicating) { // string ErrorCode = ""; // wmx.ErrorToString(ret, ref ErrorCode, 128); string errorCode = WMX3Api.ErrorToString(ret); //获取错误代码 // Global.logger.ErrorFormat("WMX3通讯失败,错误信息:{0}!", errorCode); //return false; } //清除轴警信息 for (int i = 0; i < 8; i++) { cmApi.AxisControl.ClearAmpAlarm(i); cmApi.AxisControl.ClearAxisAlarm(i); } //轴上使能 for (int i = 0; i < 8; i++) { cmApi.AxisControl.SetServoOn(i, 1); } //检查所用到的轴有没上使能 Thread.Sleep(1000); cmApi.GetStatus(ref status); for (int i = 0; i < 8; i++) { if (status.AxesStatus[i].ServoOn == false) { //使用失败的处理。 // Global.logger.ErrorFormat("WMX3 轴{0}使能失败!", i); //return false; } } //timer1.Interval = 50; //timer1.Enabled = true; ret = cmApi.Motion.CreateSplineBuffer(5, 1024); if (ret != 0) { // Global.logger.ErrorFormat("WMX3创建缓存出现错误!错误信息:{0}", WMX3Api.ErrorToString(ret)); } while (bInitOK) { Thread.Sleep(10); GetAllMotionStatus(); GetAllIOStatus(); } }
private GyrometerReading(CoreMotion.CMGyroData gyrometerData) { _gyrometerData = gyrometerData; }