当前位置: 首页>>代码示例>>C++>>正文


C++ Rotation::Process方法代码示例

本文整理汇总了C++中Rotation::Process方法的典型用法代码示例。如果您正苦于以下问题:C++ Rotation::Process方法的具体用法?C++ Rotation::Process怎么用?C++ Rotation::Process使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Rotation的用法示例。


在下文中一共展示了Rotation::Process方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: SensorFusionProc


//.........这里部分代码省略.........
	if (!event) {
		goto EXIT;
	}

	dwCnt = 0;
	tmM = tmA = GetCurrentSeconds();
	dwTimeout = period;
    while (!g_pMain->bStopSignal) {
		xIST_DBG("dwTimeout = %u ms\n", dwTimeout);
		dwRet = WaitForSingleObject(event, dwTimeout);
		if (WAIT_TIMEOUT != dwRet) {
			xIST_DBG("dwRet = %u\n", dwRet);
			g_pMain->bStopSignal = true;
			continue;
		}

		dwStart = GetTickCount();

		/* get real gyroscope data */
		if (FALSE == ReadSensorData(gyro_sensor, &gx, &gy, &gz, CSensorBase::GYRO_UNITS::CONFIG_GYRO_UNITS_RAD)){
			g_pMain->bStopSignal = true;
			continue;
		}

		gs[0] = FloatType(gx);
		gs[1] = FloatType(gy);
		gs[2] = FloatType(gz);

		/* Get accelerator data */
		if (FALSE == ReadSensorData(accel_sensor, &ax, &ay, &az, CSensorBase::ACCEL_UNITS::CONFIG_ACCEL_UNITS_MPSS)){
			g_pMain->bStopSignal = true;
			continue;
		}
		if (accel_cal->Process(accel_cal, ax, ay, az, dT)) {
			accel_cal->GetData(accel_cal, &ax, &ay, &az);
		}
		gdata[0] = FloatType(ax);
		gdata[1] = FloatType(ay);
		gdata[2] = FloatType(az);

		xIST_DBG("a[%14.10f,%14.10f,%14.10f]\n", ax, ay, az);

		/* Get magnet field data */
		if (FALSE == ReadSensorData(magnet_sensor, &mx, &my, &mz, CSensorBase::MAG_UNITS::CONFIG_MAG_UNITS_UT)){
			g_pMain->bStopSignal = true;
			continue;
		}

		dT = EllapsedSeconds(&tmM);
		mdata[0] = FloatType(mx);
		mdata[1] = FloatType(my);
		mdata[2] = FloatType(mz);

		xIST_DBG("m[%14.10f,%14.10f,%14.10f]\n", mx, my, mz);
#ifndef MAGNET_VELOCITY
		rotation_done = rotation->Process(rotation, mdata, gdata, FloatType(dT));
#endif
		magnet_done = magnet->Process(magnet, mdata, FloatType(dT));

#ifndef MAGNET_VELOCITY
		/* check valid */
		xIST_DBG("rotation_done:%s\n", rotation_done ? "YES" : "NO");
#endif
		xIST_DBG("magnet_done:%s\n", magnet_done ? "YES" : "NO");
#ifndef MAGNET_VELOCITY
		if (rotation_done && magnet_done) {
开发者ID:isentek-juihang,项目名称:isentek-git,代码行数:67,代码来源:SensorFusion.cpp


注:本文中的Rotation::Process方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。