• 4633阅读
  • 0回复

请大家帮忙看看是什么问题 [复制链接]

上一主题 下一主题
离线wangweicumt1
 
只看楼主 倒序阅读 楼主  发表于: 2009-11-25
我在网上找了一个数字示波器的程序,编译通过了。该程序我读过了,大体上是打开一个文本文件,读文件中的内容,然后根据读出的数据进行绘图。下面是该程序:
头文件:
#ifndef READFILEWINDOW_H
#define READFILEWINDOW_H

#include <qwidget.h>
//#include <qfile.h>

class QMultiLineEdit;
class QFile;
class QFrame;
class QTimer;
class QPushButton;

class readfileWindow : public QWidget
{
    Q_OBJECT

    public :
        readfileWindow( QWidget *parent = 0, const char *name = 0, WFlags f = 0 );
        ~readfileWindow( );
        int readdata( );
        void writedata( );
        void valinit( );
    private :
        QMultiLineEdit *medit;
        QFile *myfile;
        QFrame *frame1;
        QTimer *timer;
        QPushButton *btn;

        int i,fd,ret;
        unsigned int val[200];
        //unsigned int buff[200];
        //unsigned int read_val[4];
    protected :
        void paintEvent( QPaintEvent * );
    private slots:
        void flushBuff();

};
#endif // READFILEWINDOW_H
源文件:
/*****************************************************************************************************************
******************************************************************************************************************

opyRight C 2006 SEU
FlieName:       readfile.cpp
Descreption:    aheader of myproject1
Others:
Version:        0.01
Author:         jack
Date:           2007/04/09
History 1:      no
Date:
Version:
Author:
Modified:
******************************************************************************************************************
*****************************************************************************************************************/

#include <qapplication.h>
#include <qfile.h>
#include <qstring.h>
#include <qtextstream.h>
#include <qmultilineedit.h>
#include <qframe.h>
#include <qtimer.h>
#include <qpainter.h>
#include <qpushbutton.h>

#include "readfilewindow.h"
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <sys/ioctl.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/mman.h>
#define DEVICE  "/root/2410sQt/pc-qtopia/drawcurve/in1.txt"


      const double pi = 3.14159;
      unsigned int read_val[200];
//      unsigned int val[200];

readfileWindow :: readfileWindow( QWidget *parent, const char *name, WFlags f )
          : QWidget( parent, name, f )
{
    if ( !name )
    setName( "readdata" );
    setGeometry( 10, 10, 300, 230 );
    frame1 = new QFrame( this, "frame1" );
    frame1->setBackgroundColor( black );
    frame1->setGeometry( QRect( 10, 10, 200, 200 ) );  

    timer = new QTimer( this, "flushtimer" );
    connect( timer, SIGNAL( timeout() ), this, SLOT( flushBuff() ) );
    timer->start( 5000 );
    
    btn = new QPushButton( "close",this, "btnclose");
    btn->setGeometry( 250, 200, 40, 20 );
    connect( btn, SIGNAL( clicked( ) ), qApp, SLOT( quit( ) ) );

     if((fd = open(DEVICE,O_RDWR | O_NONBLOCK))<0)
        {
                qWarning("can not open device");
                return;
        }

        qWarning("open device: %s\n",DEVICE);
        valinit( );
        writedata( );
        readdata( );
}
void readfileWindow :: valinit()
{
for ( int i = 0; i<200; i++ )
    {
        val = ( int ) ( sin((pi*i)/100)*100*360/200 + 180 );//store sin wave map to 0--160
    }      
        //return ;    
}
readfileWindow :: ~readfileWindow()
{
    close( fd );
}

int readfileWindow :: readdata( )
{
        printf("begin to read:\n");
        ret = read(fd,read_val,800 );
        printf("ret=%d\n", ret );
        for( i = 0; i < 200; i++ )
        {
            printf("read1=%d\n",read_val);//*(read_val+i)&0xffffffff );
            //buff = read_val; // modify at 20070512
        }
        return 0;
}

void readfileWindow :: writedata( )
{

        ret=write(fd,val,800);
        printf("ret=%d\n", ret );
        if (ret!=800)
        printf("write error\n");
        else
        printf("write data ok\n");
        for (i=0;i<200;i++)
        {
            printf("val=%x\n",*(val+i));
        }
}

void readfileWindow :: paintEvent( QPaintEvent * )
{
    frame1->erase( 0, 0, 200, 200 );
    QPainter painter1( frame1 );
    QPoint beginPoint;
    QPoint endPoint;
    painter1.setPen( QPen( yellow, 1, SolidLine ) );
    painter1.drawLine( 0, 100, 200, 100 ); // a line at 20070512
    for ( int i = 0; i <200-1; i++)
    {
        beginPoint.setX( i );
        beginPoint.setY(read_val);
        endPoint.setX( i + 1 );
        endPoint.setY( read_val[i + 1]);
        painter1.drawLine( beginPoint, endPoint );
    }
}


void readfileWindow :: flushBuff( )
{
    int tmp = read_val[0];
    for (int i = 0; i<199; i++ )
    {
        read_val = read_val[i + 1];
    }
    read_val[199] = tmp;
    repaint( 0, 0, 320, 240, TRUE );
}
主函数:
#include <qapplication.h>

#include "readfilewindow.h"

#define QT_NO_WIZARD

int main( int argc, char **argv )
{
    QApplication a(argc,argv);
    readfileWindow w;
    a.setMainWidget( &w );
    w.show();
    return a.exec();
}
输出结果:
open device: /root/2410sQt/pc-qtopia/drawcurve/in1.txt

ret=800
write data ok
val=b4
val=b9
val=bf
val=c4
val=ca
val=d0
val=d5
val=db
val=e0
val=e6
val=eb
val=f0
val=f6
val=fb
val=100
val=105
val=10a
val=10f
val=114
val=119
val=11d
val=122
val=126
val=12b
val=12f
val=133
val=137
val=13b
val=13e
val=142
val=145
val=148
val=14b
val=14e
val=151
val=154
val=156
val=159
val=15b
val=15d
val=15f
val=160
val=162
val=163
val=164
val=165
val=166
val=167
val=167
val=167
val=167
val=167
val=167
val=167
val=166
val=165
val=164
val=163
val=162
val=160
val=15f
val=15d
val=15b
val=159
val=156
val=154
val=151
val=14e
val=14b
val=148
val=145
val=142
val=13e
val=13b
val=137
val=133
val=12f
val=12b
val=126
val=122
val=11d
val=119
val=114
val=10f
val=10a
val=105
val=100
val=fb
val=f6
val=f0
val=eb
val=e6
val=e0
val=db
val=d5
val=d0
val=ca
val=c4
val=bf
val=b9
val=b4
val=ae
val=a8
val=a3
val=9d
val=97
val=92
val=8c
val=87
val=81
val=7c
val=77
val=71
val=6c
val=67
val=62
val=5d
val=58
val=53
val=4e
val=4a
val=45
val=41
val=3c
val=38
val=34
val=30
val=2c
val=29
val=25
val=22
val=1f
val=1c
val=19
val=16
val=13
val=11
val=e
val=c
val=a
val=8
val=7
val=5
val=4
val=3
val=2
val=1
val=0
val=0
val=0
val=0
val=0
val=0
val=0
val=1
val=2
val=3
val=4
val=5
val=7
val=8
val=a
val=c
val=e
val=11
val=13
val=16
val=19
val=1c
val=1f
val=22
val=25
val=29
val=2c
val=30
val=34
val=38
val=3c
val=41
val=45
val=4a
val=4e
val=53
val=58
val=5d
val=62
val=67
val=6c
val=71
val=77
val=7c
val=81
val=87
val=8c
val=92
val=97
val=9d
val=a3
val=a8
val=ae
begin to read:
ret=800
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=170991665
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=170991665
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=170991665
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=170991665
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=170991665
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=170991665
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=170991665
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=540090417
read1=170991665
我给出的文本文件的内容是全1,可是为什么读的显示结果是read1的内容?绘图也没有显示,请大家帮我看看了。先谢了

快速回复
限100 字节
 
上一个 下一个