📄 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 ); 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[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 ); 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 + -