@@ -29,7 +29,7 APBUART_Plugin_ui::APBUART_Plugin_ui(QWi | |||
|
29 | 29 | { |
|
30 | 30 | ui->setupUi(this); |
|
31 | 31 | connect(this->ui->FIFODebugChkBx,SIGNAL(stateChanged(int)),this,SIGNAL(loopbackChkBxStateChanged(int))); |
|
32 |
connect(this,SIGNAL(apbUartTextReceived(QString)),this->ui->UART_TERM,SLOT(ap |
|
|
32 | connect(this,SIGNAL(apbUartTextReceived(QString)),this->ui->UART_TERM,SLOT(apbUartTextReceived(QString))); | |
|
33 | 33 | connect(this->ui->ConnectQpb,SIGNAL(clicked()),this,SIGNAL(connectPort())); |
|
34 | 34 | connect(this->ui->UART_TERM,SIGNAL(sendChar(char)),this,SIGNAL(sendChar(char))); |
|
35 | 35 | connect(this->ui->PortNameLineEdit,SIGNAL(textChanged(QString)),this,SIGNAL(PortNameChanged(QString))); |
@@ -17,7 +17,7 | |||
|
17 | 17 | <item> |
|
18 | 18 | <widget class="QTabWidget" name="TabWidget"> |
|
19 | 19 | <property name="currentIndex"> |
|
20 |
<number> |
|
|
20 | <number>0</number> | |
|
21 | 21 | </property> |
|
22 | 22 | <widget class="QWidget" name="Config"> |
|
23 | 23 | <attribute name="title"> |
@@ -33,7 +33,7 | |||
|
33 | 33 | <string>Enable FIFO debug mode</string> |
|
34 | 34 | </property> |
|
35 | 35 | <property name="checked"> |
|
36 |
<bool> |
|
|
36 | <bool>false</bool> | |
|
37 | 37 | </property> |
|
38 | 38 | </widget> |
|
39 | 39 | </item> |
@@ -24,12 +24,22 | |||
|
24 | 24 | ApbUartTerminal::ApbUartTerminal(QWidget *parent) : |
|
25 | 25 | QTextEdit(parent) |
|
26 | 26 | { |
|
27 | connect(this,SIGNAL(apbUartTextReceived(QString)),this,SLOT(append(QString))); | |
|
27 | // connect(this,SIGNAL(apbUartTextReceived(QString)),this,SLOT(append(QString))); | |
|
28 | 28 | setReadOnly(true); |
|
29 | 29 | } |
|
30 | 30 | |
|
31 | 31 | void ApbUartTerminal::keyPressEvent(QKeyEvent *e) |
|
32 | 32 | { |
|
33 | if((e->modifiers()==(Qt::ShiftModifier | Qt::ControlModifier)) && (e->key()==Qt::Key_L)) | |
|
34 | this->clear(); | |
|
35 | else | |
|
33 | 36 | emit this->sendChar((char)e->key()); |
|
34 | 37 | e->accept(); |
|
35 | 38 | } |
|
39 | ||
|
40 | void ApbUartTerminal::apbUartTextReceived(QString text) | |
|
41 | { | |
|
42 | moveCursor (QTextCursor::End); | |
|
43 | insertPlainText (text); | |
|
44 | moveCursor (QTextCursor::End); | |
|
45 | } |
@@ -34,9 +34,9 public: | |||
|
34 | 34 | |
|
35 | 35 | protected: |
|
36 | 36 | void keyPressEvent(QKeyEvent * e); |
|
37 | ||
|
37 | public slots: | |
|
38 | void apbUartTextReceived(QString text); | |
|
38 | 39 | signals: |
|
39 | void apbUartTextReceived(QString text); | |
|
40 | 40 | void sendChar(char c); |
|
41 | 41 | public slots: |
|
42 | 42 |
@@ -29,9 +29,16 UARTPollingThread::UARTPollingThread(soc | |||
|
29 | 29 | uartMutex = new QMutex(); |
|
30 | 30 | uartOpened = false; |
|
31 | 31 | fifoDebugConfigured = false; |
|
32 | fifoDebugEnabled = false; | |
|
32 | 33 | this->moveToThread(this); |
|
33 | 34 | } |
|
34 | 35 | |
|
36 | UARTPollingThread::~UARTPollingThread() | |
|
37 | { | |
|
38 | this->requestInterruption(); | |
|
39 | while(isRunning()); | |
|
40 | } | |
|
41 | ||
|
35 | 42 | void UARTPollingThread::run() |
|
36 | 43 | { |
|
37 | 44 | |
@@ -70,19 +77,21 void UARTPollingThread::run() | |||
|
70 | 77 | else |
|
71 | 78 | { |
|
72 | 79 | int read =0; |
|
73 | char ch; | |
|
80 | char ch[1]; | |
|
74 | 81 | uartMutex->lock(); |
|
75 | 82 | if(uartOpened) |
|
76 | 83 | { |
|
77 |
read =rs232read(this->uart, |
|
|
84 | read =rs232read(this->uart,ch,1); | |
|
85 | SocExplorerEngine::message(this->plugin,QString("Read %1 bytes on uart").arg(read),3); | |
|
78 | 86 | } |
|
79 | 87 | uartMutex->unlock(); |
|
80 |
if(read |
|
|
88 | if(read>=1) | |
|
81 | 89 | { |
|
82 | emit this->sendChar(ch); | |
|
90 | SocExplorerEngine::message(this->plugin,QString("Received one char from APBUART"),3); | |
|
91 | emit this->apbUartTextReceived(QString(ch[0])); | |
|
83 | 92 | } |
|
93 | msleep(1); | |
|
84 | 94 | } |
|
85 | msleep(100); | |
|
86 | 95 | } |
|
87 | 96 | } |
|
88 | 97 | |
@@ -106,16 +115,20 void UARTPollingThread::sendChar(char c) | |||
|
106 | 115 | |
|
107 | 116 | bool UARTPollingThread::openUart() |
|
108 | 117 | { |
|
118 | uartMutex->lock(); | |
|
109 | 119 | if(uartOpened) |
|
110 | 120 | { |
|
111 | 121 | closeUart(); |
|
112 | 122 | } |
|
123 | SocExplorerEngine::message(this->plugin,"Opening UART "+this->portName,3); | |
|
113 | 124 | this->uart = rs232open((char*)this->portName.toStdString().c_str()); |
|
114 | 125 | if(this->uart!=badPortValue) |
|
115 | 126 | { |
|
127 | SocExplorerEngine::message(this->plugin,QString("Configuring UART, speed =%1").arg(this->uartSpeed),3); | |
|
116 | 128 | rs232setup(this->uart,8,this->uartSpeed,rs232parityNo,rs232OneStop); |
|
117 | 129 | uartOpened = true; |
|
118 | 130 | } |
|
131 | uartMutex->unlock(); | |
|
119 | 132 | return uartOpened; |
|
120 | 133 | } |
|
121 | 134 | |
@@ -129,16 +142,19 void UARTPollingThread::closeUart() | |||
|
129 | 142 | |
|
130 | 143 | void UARTPollingThread::setPortName(QString name) |
|
131 | 144 | { |
|
145 | SocExplorerEngine::message(this->plugin,"Changing UART port Name: "+name,3); | |
|
132 | 146 | this->portName = name; |
|
133 | 147 | } |
|
134 | 148 | |
|
135 | 149 | void UARTPollingThread::setPortSpeedStr(QString speed) |
|
136 | 150 | { |
|
151 | SocExplorerEngine::message(this->plugin,"Changing UART speed: "+speed,3); | |
|
137 | 152 | this->uartSpeed = speed.toInt(); |
|
138 | 153 | } |
|
139 | 154 | |
|
140 | 155 | void UARTPollingThread::setPortSpeed(int speed) |
|
141 | 156 | { |
|
157 | SocExplorerEngine::message(this->plugin,QString("Changing UART speed: %1").arg(speed),3); | |
|
142 | 158 | this->uartSpeed = speed; |
|
143 | 159 | } |
|
144 | 160 |
@@ -39,6 +39,7 class UARTPollingThread : public QThread | |||
|
39 | 39 | Q_OBJECT |
|
40 | 40 | public: |
|
41 | 41 | explicit UARTPollingThread(socexplorerplugin *parent = 0); |
|
42 | ~UARTPollingThread(); | |
|
42 | 43 | void run(); |
|
43 | 44 | signals: |
|
44 | 45 | void apbUartTextReceived(QString text); |
General Comments 0
You need to be logged in to leave comments.
Login now