#include <qscan345controller.h>
Public Types | |
typedef Command | inherited |
Public Slots | |
void | initialize () |
void | erase () |
void | scan () |
void | changeMode2300 () |
void | changeMode2000 () |
void | changeMode1600 () |
void | changeMode1200 () |
void | changeMode3450 () |
void | changeMode3000 () |
void | changeMode2400 () |
void | changeMode1800 () |
void | restart_scanner () |
void | change_scanner_number (int n) |
int | poll_status () |
void | setWorkingDirectory (QString d) |
void | setFileRoot (QString root) |
void | execute_command (QString cmd) |
void | log_spy_message (QString msg) |
Signals | |
void | scan_completed () |
void | scanner_number_changed (int) |
void | scan_mode_changed (int) |
Public Member Functions | |
QScan345Controller (QScan345MainWindow *win, QScan345Server *srv, QObject *parent=0) | |
~QScan345Controller () | |
void | updateScannerMenu () |
Private Member Functions | |
void | changeMode (int n) |
void | updateActions () |
void | check_scanner_number () |
Private Attributes | |
QMutex | m_Mutex |
QTimer * | m_Timer |
QScan345MainWindow * | m_MainWindow |
QScan345Server * | m_Server |
QList< int > | m_SerialNumbers |
Definition at line 12 of file qscan345controller.h.
typedef Command QScan345Controller::inherited |
Reimplemented from Command.
Definition at line 18 of file qscan345controller.h.
QScan345Controller::QScan345Controller | ( | QScan345MainWindow * | win, |
QScan345Server * | srv, | ||
QObject * | parent = 0 |
||
) |
Definition at line 22 of file qscan345controller.cpp.
References timeout.
: inherited(parent), m_MainWindow(win), m_Server(srv) { openlog("qscan354", 0, LOG_LOCAL0); log_spy_message("starting"); m_MainWindow -> setScanController(this); connect (this, SIGNAL(scanner_number_changed(int)), m_MainWindow, SLOT(update_scanner_menu())); check_scanner_number(); setWorkingDirectory("."); setFileRoot("junk"); m_Timer = new QTimer(this); connect(m_Timer, SIGNAL(timeout()), this, SLOT(poll_status())); connect (m_MainWindow->actionInitialize, SIGNAL(triggered()), this, SLOT(initialize())); connect (m_MainWindow->actionErase, SIGNAL(triggered()), this, SLOT(erase())); connect (m_MainWindow->actionScan, SIGNAL(triggered()), this, SLOT(scan())); connect (m_MainWindow->actionMode2300, SIGNAL(triggered()), this, SLOT(changeMode2300())); connect (m_MainWindow->actionMode2000, SIGNAL(triggered()), this, SLOT(changeMode2000())); connect (m_MainWindow->actionMode1600, SIGNAL(triggered()), this, SLOT(changeMode1600())); connect (m_MainWindow->actionMode1200, SIGNAL(triggered()), this, SLOT(changeMode1200())); connect (m_MainWindow->actionMode3450, SIGNAL(triggered()), this, SLOT(changeMode3450())); connect (m_MainWindow->actionMode3000, SIGNAL(triggered()), this, SLOT(changeMode3000())); connect (m_MainWindow->actionMode2400, SIGNAL(triggered()), this, SLOT(changeMode2400())); connect (m_MainWindow->actionMode1800, SIGNAL(triggered()), this, SLOT(changeMode1800())); connect (this, SIGNAL(print_message(QString)), m_MainWindow, SLOT(display_message(QString))); connect (this, SIGNAL(spy_message(QString)), m_MainWindow, SLOT(display_spy_message(QString))); connect (this, SIGNAL(spy_message(QString)), this, SLOT(log_spy_message(QString))); connect (m_Server, SIGNAL(execute_command(QString)), this, SLOT(execute_command(QString))); connect (this, SIGNAL(scan_finished()), m_Server, SLOT(scan_finished())); connect (this, SIGNAL(erase_finished()), m_Server, SLOT(erase_finished())); connect (m_MainWindow, SIGNAL(scanner_changed()), this, SLOT(restart_scanner())); scan345_main(0, NULL); m_Timer->start(10); updateActions(); }
QScan345Controller::~QScan345Controller | ( | ) |
Definition at line 84 of file qscan345controller.cpp.
References log_spy_message().
{ log_spy_message("shutting down"); closelog(); }
void QScan345Controller::change_scanner_number | ( | int | n | ) | [slot] |
Definition at line 109 of file qscan345controller.cpp.
References restart_scanner(), scanner_number_changed(), and QScan345Settings::setMarscannernumber().
{ QScan345Settings s; s.setMarscannernumber(n); restart_scanner(); emit scanner_number_changed(n); }
void QScan345Controller::changeMode | ( | int | n | ) | [private] |
Definition at line 222 of file qscan345controller.cpp.
References Command::exec_command(), QScan345Settings::setMarscannermode(), and updateActions().
Referenced by changeMode1200(), changeMode1600(), changeMode1800(), changeMode2000(), changeMode2300(), changeMode2400(), changeMode3000(), changeMode3450(), and initialize().
{ QScan345Settings s; s.setMarscannermode(n); exec_command(qPrintable(tr("MODE %1").arg(n))); updateActions(); }
void QScan345Controller::changeMode1200 | ( | ) | [slot] |
void QScan345Controller::changeMode1600 | ( | ) | [slot] |
void QScan345Controller::changeMode1800 | ( | ) | [slot] |
void QScan345Controller::changeMode2000 | ( | ) | [slot] |
void QScan345Controller::changeMode2300 | ( | ) | [slot] |
void QScan345Controller::changeMode2400 | ( | ) | [slot] |
void QScan345Controller::changeMode3000 | ( | ) | [slot] |
void QScan345Controller::changeMode3450 | ( | ) | [slot] |
void QScan345Controller::check_scanner_number | ( | ) | [private] |
Definition at line 121 of file qscan345controller.cpp.
References m_Mutex, m_SerialNumbers, QScan345Settings::marscannernumber(), QScan345Settings::martabledir(), scanner_number_changed(), and QScan345Settings::setMarscannernumber().
{ QMutexLocker lock(&m_Mutex); QScan345Settings s; QDir d(s.martabledir()); m_SerialNumbers.clear(); QStringList l = d.entryList(QStringList("config.[0-9][0-9][0-9]")); printf("NFiles: %d\n", l.count()); QString nm; foreach(nm,l) { QRegExp rr("config.([0-9]+)"); if (rr.exactMatch(nm)) { printf("Scanner %s\n", qPrintable(rr.cap(1))); bool ok; int n = rr.cap(1).toInt(&ok); if (ok) { m_SerialNumbers.append(n); } } else { printf("%s\n", qPrintable(nm)); } } int n = s.marscannernumber(); QFile f0(d.filePath(tr("config.%1").arg(n,3,10,QLatin1Char('0')))); QFile f1(d.filePath(tr("mar2300.%1").arg(n,3,10,QLatin1Char('0')))); QFile f2(d.filePath(tr("mar3450.%1").arg(n,3,10,QLatin1Char('0')))); printf("f0 : %s\n", qPrintable(f0.fileName())); printf("f1 : %s\n", qPrintable(f1.fileName())); printf("f2 : %s\n", qPrintable(f2.fileName())); if (f0.exists() && f1.exists() && f2.exists()) { printf("Scanner %d is valid\n", n); } else { printf("Calibration Tables for Scanner %d not available\n", n); if (m_SerialNumbers.count()>0) { n = m_SerialNumbers.at(0); s.setMarscannernumber(n); printf("Scanner %d used instead\n", n); } else { printf("No scanner calibration tables available\n"); } } emit scanner_number_changed(n); }
void QScan345Controller::erase | ( | ) | [slot] |
Definition at line 209 of file qscan345controller.cpp.
References Command::exec_command().
{ exec_command("comm erase"); }
void QScan345Controller::execute_command | ( | QString | cmd | ) | [slot] |
Definition at line 313 of file qscan345controller.cpp.
References Command::exec_command().
{ exec_command(qPrintable(cmd)); }
void QScan345Controller::initialize | ( | ) | [slot] |
Definition at line 177 of file qscan345controller.cpp.
References changeMode(), and QScan345Settings::marscannermode().
{ QScan345Settings s; changeMode(s.marscannermode()); }
void QScan345Controller::log_spy_message | ( | QString | msg | ) | [slot] |
Definition at line 319 of file qscan345controller.cpp.
Referenced by ~QScan345Controller().
{
syslog(LOG_LOCAL0 + LOG_INFO, "%s", qPrintable(msg.trimmed()));
}
int QScan345Controller::poll_status | ( | ) | [slot] |
Definition at line 281 of file qscan345controller.cpp.
References i, MarNet::net_data(), MarNet::net_msg(), MarNet::net_stat(), and netcontrol.
{ int i, status=0; if (netcontrol) { i = net_data(); while (1) { status = net_stat(); if (status < 200) break; } i = net_msg(); } return status; }
void QScan345Controller::restart_scanner | ( | ) | [slot] |
Definition at line 185 of file qscan345controller.cpp.
References MarStartup::marStartup(), and MarHW::restart().
Referenced by change_scanner_number().
{ restart(); marStartup(); }
void QScan345Controller::scan | ( | ) | [slot] |
Definition at line 215 of file qscan345controller.cpp.
References Command::exec_command().
{ exec_command("root testscan"); exec_command("comm scan"); }
void QScan345Controller::scan_completed | ( | ) | [signal] |
void QScan345Controller::scan_mode_changed | ( | int | ) | [signal] |
void QScan345Controller::scanner_number_changed | ( | int | ) | [signal] |
Referenced by change_scanner_number(), and check_scanner_number().
void QScan345Controller::setFileRoot | ( | QString | root | ) | [slot] |
Definition at line 307 of file qscan345controller.cpp.
References com_root.
void QScan345Controller::setWorkingDirectory | ( | QString | d | ) | [slot] |
Definition at line 301 of file qscan345controller.cpp.
References com_dir.
void QScan345Controller::updateActions | ( | ) | [private] |
Definition at line 192 of file qscan345controller.cpp.
References m_MainWindow, and QScan345Settings::marscannermode().
Referenced by changeMode().
{ QScan345Settings s; int m = s.marscannermode(); m_MainWindow->actionMode2300->setChecked(m==0); m_MainWindow->actionMode2000->setChecked(m==1); m_MainWindow->actionMode1600->setChecked(m==2); m_MainWindow->actionMode1200->setChecked(m==3); m_MainWindow->actionMode3450->setChecked(m==4); m_MainWindow->actionMode3000->setChecked(m==5); m_MainWindow->actionMode2400->setChecked(m==6); m_MainWindow->actionMode1800->setChecked(m==7); }
void QScan345Controller::updateScannerMenu | ( | ) |
Definition at line 91 of file qscan345controller.cpp.
References m_MainWindow, m_Mutex, and m_SerialNumbers.
Referenced by QScan345MainWindow::update_scanner_menu().
{ QMutexLocker lock(&m_Mutex); int n; m_MainWindow -> menuScanner_Number -> clear(); foreach(n,m_SerialNumbers) { QScan345SelectAction *a = new QScan345SelectAction(n, this); m_MainWindow -> menuScanner_Number->addAction(a); connect(a, SIGNAL(triggered()), a, SLOT(select_scanner())); } }
Definition at line 61 of file qscan345controller.h.
Referenced by updateActions(), and updateScannerMenu().
QMutex QScan345Controller::m_Mutex [private] |
Definition at line 59 of file qscan345controller.h.
Referenced by check_scanner_number(), and updateScannerMenu().
QList<int> QScan345Controller::m_SerialNumbers [private] |
Definition at line 63 of file qscan345controller.h.
Referenced by check_scanner_number(), and updateScannerMenu().
QScan345Server* QScan345Controller::m_Server [private] |
Definition at line 62 of file qscan345controller.h.
QTimer* QScan345Controller::m_Timer [private] |
Definition at line 60 of file qscan345controller.h.