?? readfilewindow.cpp
字號:
/***********************************************************************************************************************************************************************************************************************************opyRight C 2006 SEUFlieName: readfile.cppDescreption: aheader of myproject1Others:Version: 0.01Author: jackDate: 2007/04/09History 1: noDate: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 "/usr/local/arm/mydrives/lllllll/drawcurve/tridata.txt"#define DEVICE "/dev/phyaddrtest" const double pi = 3.14159; unsigned int read_val[200];// unsigned int val[200];/*for ( int i = 0; i<200; i++ ) { val[i] = ( int ) ( sin((pi*i)/100)*100*360/200 + 180 );//store sin wave map to 0--160 } unsigned int val[200]={0x83,0x19,0x6A,0x6B,77,90,88,44,22,33, 123,31,32,55,36,75,43,123,44,89, 98,13,69,56,66,59,31,34,36,79, 85,55,28,77,1,14,58,0,71,34, 23,13,56,78,71,52,63,2,59,18, 73,51,52,61,97,55,69,45,28,71, 58,69,28,39,27,29,14,18,19,45, 42,75,91,59,85,10,20,45,62,99, 45,89,17,46,13,79,93,52,41,88, 85,97,59,58,54,29,12,18,22,55,//2nd cycle; 0x83,0x39,0x6A,0x6B,77,90,88,44,20,33, 13,34,32,55,36,65,42,13,44,89, 98,23,39,36,66,59,31,24,46,79, 85,55,48,77,1,14,58,0,75,14, 23,12,46,78,71,82,93,2,19,18, 73,91,82,71,97,55,29,45,18,71, 38,39,28,39,27,29,14,18,19,45, 42,73,91,59,75,21,60,45,62,99, 45,89,18,46,13,79,93,52,71,88, 85,97,59,58,74,29,12,15,22,55};*/readfileWindow :: readfileWindow( QWidget *parent, const char *name, WFlags f ) : QWidget( parent, name, f ){ if ( !name ) setName( "readdata" ); setGeometry( 10, 10, 300, 230 );/* medit = new QMultiLineEdit( this ); medit->setGeometry( 10, 10, 260, 180 ); medit->setReadOnly( TRUE ); myfile = new QFile( "/dev/phyaddrtest");*/ 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( 50 ); btn1 = new QPushButton( "close", this,"btn1close" ); btn2 = new QPushButton( "FFT", this,"btn2close" ); btn1->setGeometry( 250, 200, 40, 20 ); btn2->setGeometry( 250, 150, 40, 20 ); connect( btn1, 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[i] = ( 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[i]);//*(read_val+i)&0xffffffff ); //buff[i] = read_val[i]; // 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 ); painter1.setPen( QPen( green, 1, SolidLine ) ); painter1.drawLine( 0, 100, 200, 100 ); painter1.drawLine( 100, 0, 100, 200 ); painter1.setPen( QPen( QColor( 0, 100, 0 ), 1, DotLine ) ); painter1.drawLine( 0, 20, 200, 20 ); painter1.drawLine( 0, 40, 200, 40 ); painter1.drawLine( 0, 60, 200, 60 ); painter1.drawLine( 0, 80, 200, 80 ); //painter1.drawLine( 0, 100, 200, 100 ); painter1.drawLine( 0, 120, 200, 120 ); painter1.drawLine( 0, 140, 200, 140 ); painter1.drawLine( 0, 160, 200, 160 ); painter1.drawLine( 0, 180, 200, 180 ); painter1.drawLine( 20, 0, 20, 200 ); painter1.drawLine( 40, 0, 40, 200 ); painter1.drawLine( 60, 0, 60, 200 ); painter1.drawLine( 80, 0, 80, 200 ); //painter1.drawLine( 100, 0, 100, 200 ); painter1.drawLine( 120, 0, 120, 200 ); painter1.drawLine( 140, 0, 140, 200 ); painter1.drawLine( 160, 0, 160, 200 ); painter1.drawLine( 180, 0, 180, 200 ); painter1.setFont( QFont("Times", 10, QFont::Bold ) ); painter1.setPen( red ); painter1.drawText( 10, 10, "CH1" ); painter1.drawText( 10, 80, "100ms/div" ); painter1.drawText( 110, 10, "1v/div" ); 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[i]); endPoint.setX( i + 1 ); endPoint.setY( read_val[i + 1]); painter1.drawLine( beginPoint, endPoint ); }}/*void readfileWindow :: flushBuff( ){ int tmp = buff[0]; for (int i = 0; i<199; i++ ) { buff[i] = buff[i + 1]; } buff[199] = tmp; repaint( 0, 0, 640, 480, TRUE );}*/void readfileWindow :: flushBuff( ){ int tmp = read_val[0]; for (int i = 0; i<199; i++ ) { read_val[i] = read_val[i + 1]; } read_val[199] = tmp; repaint( 0, 0, 320, 240, TRUE );}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -