小妹有个上位机要做,但是水平太差啥都不会求助 工程是这个样子的,一套体检系统,需要做握力,肺活量,身高体重等等的数据传输,小妹的工作就是写一个上位机软件,目前卡在串口传输数据这儿,传过来的数据包括学号和握力两个量,我不知道怎样编程把学号和握力分开来放在对话框的不同地方,求助~~~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这是我读取USB设备的数据,然后进行分析的,提取指定位置字节的数据。//发送数据 读取设备信息void CUSBDlg::OnWriteData(){//注意: 启用最后 1 个接口发送 读取数据 if(hHandle==INVALID_HANDLE_VALUE) { MessageBox(_T("设备接口没有打开")); return ; } int x=0,y=0; BYTE WriteBuffer[64]={0}; BYTE ReadBuffer[64]={0}; WriteBuffer[0]=0x04; WriteBuffer[1]=0x50; DWORD DataByteCount=0; //实际读写的字节数 DWORD i; if(!WriteFile(hHandle,WriteBuffer,64,&DataByteCount,NULL)) { int Error=GetLastError(); MessageBox(_T("命令发送失败")); return ; } // 提取数据信息 DataByteCount=0; //实际读写的字节数 CString str=_T(""); CString strID; if(!ReadFile(hHandle,ReadBuffer,64,&DataByteCount,NULL)) { int Error=GetLastError(); MessageBox(_T("数据读取失败")); return ; } while(ReadBuffer[1]!=0x50) { for(i=0; i<64; i++) { ReadBuffer[i]=0; } ReadFile(hHandle,ReadBuffer,64,&DataByteCount,NULL); } for(i=0; i<DataByteCount; i++) { strID.Format(_T("0x%02X "),ReadBuffer[i]); if(i%16==0&&i!=0) str=str+_T("\r\n"); else if(i%4==0&&i!=0) str=str+_T(" "); str=str+strID; } x=ReadBuffer[4]; y=ReadBuffer[5]; x=x*256+y; //X轴管数 pBuffer[4] pBuffer[5] SetDlgItemInt(IDC_STATIC_GS_X, x); x=0,y=0; x=ReadBuffer[8]; y=ReadBuffer[9]; y=x*256+y; //Y轴管数 pBuffer[8] pBuffer[9] SetDlgItemInt(IDC_STATIC_GS_Y, y); // 触摸点数 x=ReadBuffer[12]; y=ReadBuffer[16]; x=x-y; SetDlgItemInt(IDC_STATIC_TOUCH_POINT, x); //硬件尺寸 x=ReadBuffer[20]; SetDlgItemInt(IDC_STATIC_HARDWARE_SIZE, x); //硬件版本号 x=ReadBuffer[24]; y=ReadBuffer[25]; strID.Format(_T("%d.%d"),x,y); SetDlgItemText(IDC_STATIC_HARDWARE_VERSION, strID); } 我是想做个listcontrol控件,直接把数据分开然后显示成表格的样子 GetSelectionMark()的问题(来者给分) FtpGetCurrentDirectory返回路径为空 WinCE平台,双缓冲刷新的问题? 自定义消息的处理问题 用c++库函数beginthreadex建立线程,无法suspend的问题 在一个非对话框里生成控件,如何响应事件....100分 SOCKET编程,在客户端用两个SOCKET,一个用于发送,一个用于接受,?????? VC++ODBC数据源怎样建立 正则表达式匹配问题 CEditView类的头文件和定义文件是什么? MFC 操作excel 合并单元格 如何实现格式化字符串
//发送数据 读取设备信息
void CUSBDlg::OnWriteData()
{
//注意: 启用最后 1 个接口发送 读取数据
if(hHandle==INVALID_HANDLE_VALUE)
{
MessageBox(_T("设备接口没有打开"));
return ;
} int x=0,y=0;
BYTE WriteBuffer[64]={0};
BYTE ReadBuffer[64]={0}; WriteBuffer[0]=0x04;
WriteBuffer[1]=0x50;
DWORD DataByteCount=0; //实际读写的字节数
DWORD i;
if(!WriteFile(hHandle,WriteBuffer,64,&DataByteCount,NULL))
{
int Error=GetLastError();
MessageBox(_T("命令发送失败"));
return ;
} // 提取数据信息
DataByteCount=0; //实际读写的字节数
CString str=_T("");
CString strID; if(!ReadFile(hHandle,ReadBuffer,64,&DataByteCount,NULL))
{
int Error=GetLastError();
MessageBox(_T("数据读取失败"));
return ;
} while(ReadBuffer[1]!=0x50)
{
for(i=0; i<64; i++)
{
ReadBuffer[i]=0;
}
ReadFile(hHandle,ReadBuffer,64,&DataByteCount,NULL);
} for(i=0; i<DataByteCount; i++)
{
strID.Format(_T("0x%02X "),ReadBuffer[i]);
if(i%16==0&&i!=0)
str=str+_T("\r\n");
else if(i%4==0&&i!=0)
str=str+_T(" ");
str=str+strID;
} x=ReadBuffer[4];
y=ReadBuffer[5];
x=x*256+y;
//X轴管数 pBuffer[4] pBuffer[5]
SetDlgItemInt(IDC_STATIC_GS_X, x); x=0,y=0;
x=ReadBuffer[8];
y=ReadBuffer[9];
y=x*256+y;
//Y轴管数 pBuffer[8] pBuffer[9]
SetDlgItemInt(IDC_STATIC_GS_Y, y); // 触摸点数
x=ReadBuffer[12];
y=ReadBuffer[16];
x=x-y;
SetDlgItemInt(IDC_STATIC_TOUCH_POINT, x); //硬件尺寸
x=ReadBuffer[20];
SetDlgItemInt(IDC_STATIC_HARDWARE_SIZE, x); //硬件版本号
x=ReadBuffer[24];
y=ReadBuffer[25];
strID.Format(_T("%d.%d"),x,y);
SetDlgItemText(IDC_STATIC_HARDWARE_VERSION, strID);
}