| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3154 人关注过本帖
标题:从网口接收采集卡的数据并保存成文件
取消只看楼主 加入收藏
qqflying
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2009-8-25
收藏
 问题点数:0 回复次数:2 
从网口接收采集卡的数据并保存成文件
我现在要做一个程序,从网口接收采集卡的数据并保存成文件,从接收网口300次数据(每次数据大约300个字),接收完300次数据后生成一个文件,然后接收另外的300个数据。采用UDP方式传输的,单次接收能得到数据,每次接收到的数据怎么和上次的数据怎么叠加,300次接收完成后,怎么处理?怎么保存成文件?,怎么重新开始接收?需不需要开一个进程来处理这个这个事件。谢谢,我是一个新手。
搜索更多相关主题的帖子: 数据 300 采集卡 
2012-02-21 17:12
qqflying
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2009-8-25
收藏
得分:0 
写了以下的程序,但是函数一运行就会一直生成文件,电脑死机。
#define COUNT 360
#define DATABYTES 314
#define MAXN 10

//////////////////////////////////
{
char buf[COUNT*DATABYTES];
//char *p;
int i,n,j;
char bytes[DATABYTES];
FILE *f;
//char fn[256];
CString str,str1;
 str1 =NetData ;
 str = bytes;
int w = strcmp(str,str1);
if (w=0)
{

}
  else
  {
for (j=0;j<314;j++)
{
    bytes[j]=NetData1[j];
}

 while (1)
 {
        n=0;
        for (i=0;i<COUNT;i++)
        {
            //采集一次数据到bytes[]中
            memcpy((void *)(buf+i*DATABYTES),(void *)bytes,DATABYTES);
        }
        n++;
  if (n>MAXN) break;
 m_SysTime = CTime::GetCurrentTime();
 CString  str1 = m_SysTime.Format("%Y")+m_SysTime.Format("%m")
        +m_SysTime.Format("%d")+m_SysTime.Format("%H")
        +m_SysTime.Format("%M")+m_SysTime.Format("%S");
 CString strFileName ="Data\\"+str1+".STD";
 //CFile file ;
 f=fopen(strFileName,"wb");
 if (NULL==f)
 {
    printf("无法创建文件%s!\n",strFileName);
            
  }
   fwrite(buf,DATABYTES,COUNT,f);
   fclose(f);
    }
   
}
}
2012-02-22 21:22
qqflying
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2009-8-25
收藏
得分:0 
回复 楼主 qqflying
程序要达到的目的是:像手表的指针一样,扫描线走一圈(360度),每一度上的数据(300个)在一个数组中,将这一圈的数据保存成一个文件。周而复始的保存数据。
2012-02-22 21:31
快速回复:从网口接收采集卡的数据并保存成文件
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020881 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved