Ejemplo n.º 1
0
//==============================================================================
/// MAIN
//==============================================================================
int main(int argc, char *argv[])
{
    bool arduinoOnly = false;
#ifdef ARDUINO_ONLY
    arduinoOnly = true;
#endif

#ifdef Q_OS_UNIX
  QApplication::setStyle("cleanlooks");
#endif
  QApplication app( argc, argv);

  QTranslator qt_translator;
  if ( qt_translator.load( ":tr/qt_ru.qm" ))
  { QApplication::installTranslator(&qt_translator);
  }

  Utils::AppInfo::setTitle("MKStudio");

  Console::setMessageTypes( Console::AllTypes );
  Console::setMessageTypes( Console::ModbusPacket, false );

  InitDialog initdialog(0, arduinoOnly);
  if(!initdialog.portsFound())
  { QMessageBox::critical(0, Utils::AppInfo::title(),
                  "В системе не обнаружено последовательных портов ввода-вывода.");
    return 0;
  }
  if( initdialog.exec() != QDialog::Accepted )
      return 0;

  AbstractSerialPortPtr port = initdialog.port();
  if( !port->open() )
  { QMessageBox::critical(0, Utils::AppInfo::title(),
                             "Ошибка открытия порта.\n\n"
                             "Возможно, что порт используется\n"
                             "другим приложением." );
    return 0;
  }

  QString portname = port->name();
  QString portspeed = QString::number(port->speed());
  if(portspeed=="0" ) portspeed.clear();

  Utils::AppInfo::setTitle((QString("%1 %2 - MKStudio")
                      + (arduinoOnly ? "-arduino" : "")).arg(portname).arg(portspeed));

  MBMasterXMLPtr mbmaster(new MBMasterXML);
  mbmaster->setTransport( port );
  mbmaster->setMaximumPacketLength( initdialog.sb_max_len->value() );
  mbmaster->setTransactionDelay( initdialog.sb_tr_delay->value() );
  mbmaster->setCycleTime( initdialog.sb_cycle_time->value() );

  MainWindow mainwindow(mbmaster, arduinoOnly);
  mainwindow.show();

  return QApplication::exec();
}
Ejemplo n.º 2
0
INT_PTR KeymapDataDlg::_proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	switch (uMsg) {
	case WM_INITDIALOG:
		m_hDlg = hWnd;
		initdialog();
		break;
	case WM_COMMAND:
		switch (LOWORD(wParam))
		{
		case IDOK:
			keymapData.Enable = true;
			return EndDialog(hWnd, IDOK);
		case IDCANCEL:
			return EndDialog(hWnd, IDCANCEL);
		case IDC_KEYMAP_BTN:
			if (HIWORD(wParam) == CBN_SELCHANGE) {
				keymapData.ButtonID = (vJoyButtonID)SendMessage((HWND)lParam, CB_GETCURSEL, 0, 0);
			}
			break;
		case IDC_INPUT:
			switch (HIWORD(wParam))
			{
			case EN_CHANGE: {
				keymapData.GetState();
				SetWindowText((HWND)lParam, keymapData.StrVal());
				break;
			}
			default:
				return FALSE;
			}
			break;
		case IDC_POSTMESSAGE:
		{
			BOOL flag = FALSE;
			if (BST_CHECKED == SendMessage((HWND)lParam, BM_GETCHECK, 0, 0)) {
				flag = TRUE;
			}
			keymapData.usePostmessage = flag?true:false;
			EnableWindow(GetDlgItem(m_hDlg, IDC_FW_TEXT), flag);
			EnableWindow(GetDlgItem(m_hDlg, IDC_FINDWINDOW), flag);
			break;
		}
		case IDC_FINDWINDOW:
		{
			FindwindowDlg dlg;
			dlg.findwindow = keymapData.findWindow;
			if (dlg.Open(hWnd)) {
				//keymapData.findWindow.Val( dlg.findwindow.Val() );
				keymapData.findWindow = dlg.findwindow;
				SetWindowText(GetDlgItem(m_hDlg, IDC_FW_TEXT), keymapData.findWindow.Val().c_str() );
			}
		}
			break;
	

		}

	default:
		return FALSE;
	}
	return TRUE;
}