windows下使用MFC对六维力传感器数据采集与绘制

本文介绍了如何使用MFC在Windows环境下建立对话框,通过子线程读取六维力传感器数据,并在主线程中利用定时器和ChartCtrl控件动态绘制曲线。详细步骤包括配置传感器接口、创建对话框、添加控件、定义线程及绘图功能,实现了与传感器自带软件相似的效果。
摘要由CSDN通过智能技术生成

本文主要通过mfc建立一个对话框,新建个子线程读取传感器数据,在主线程中添加定时器和chartctrl控件进行动态曲线的绘制。运行效果与传感器自带软件效果如下:
在这里插入图片描述
在这里插入图片描述
1 使用控制台程序新建传感器接口的配置和数据的读写如下:
在这里插入图片描述
将OMD库放入根目录下
在这里插入图片描述
在这里插入图片描述
代码如下:

// ss.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <stdio.h>
#include <iostream>
#include <omd/opto.h>

#include <omd/sensorconfig.h>

#include <fstream>
#include<windows.h> 
using namespace std;

int main(int argc, char *argv[])
{

	OptoDAQ daq;

	OptoPorts ports;
	OPort* portlist=ports.listPorts(true);

	SensorConfig sensor;
	sensor.set(sensor_ok,speed_100hz,filter_15hz,mode_raw);
	daq.sendConfig(sensor);

	if (ports.getLastSize()>0)
	{
		daq.open(portlist[0]);

	
		while (1)
		{
		
			Sleep(1000/100);
			if ((daq.getVersion()!=_95) && (daq.getVersion()!=_64)) // It is a 3D sensor 
			{
				OptoPackage pack3D;

				ofstream datafile;
				datafile.open("datafile.txt",ofstream::app);

				int size=daq.read(pack3D,0);    // Reading Sensor #0 (up to 16 Sensors)     
				std::cout<<"x: "<<pack3D.x<<" y: "<<pack3D.y<<" z: "<<pack3D.z<<std::endl;
				datafile << "datafile.txt" << pack3D.x << "" << pack3D.y  << "" << pack3D.z << endl;

			}
			else                      // It is a 6D sensor
			{
				OptoPackage6D pack6D;

				ofstream datafile;
				datafile.open("datafile.txt",ofstream::app);

				int size=daq.read6D(pack6D,false);
				std::cout<<"Fx: "<<pack6D.Fx<<" Fy: "<<pack6D.Fy<<" Fz: "<<pack6D.Fz<<" ";
				std::cout<<"Tx: "<<pack6D.Tx<<" Ty: "<<pack6D.Ty<<" Tz: "<<pack6D.Tz<<std::endl;

				datafi
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值