Пример #1
0
SettingsMenu::SettingsMenu() :
	QWidget(),
	ui(new Ui::SettingsMenu)
{
	ui->setupUi(this);
	ui->buttonBack->setText(QString::fromLocal8Bit("Назад в главное меню"));
	ui->buttonNetwork->setText(QString::fromLocal8Bit("Настройки сети"));
	ui->buttonVolume->setText(QString::fromLocal8Bit("Настройки звука"));
	connect(ui->buttonBack, SIGNAL(clicked()), SIGNAL(buttonBackPushed()));
	connect(ui->buttonNetwork, SIGNAL(clicked()), SLOT(showNetworkSettings()));
	connect(ui->buttonVolume, SIGNAL(clicked()), SLOT(showVolumeSettings()));
	volSettings = QSharedPointer<Settings> (new Settings);
	netorkSettings = QSharedPointer<SettingsNetwork> (new SettingsNetwork);
	connect(volSettings.data(), SIGNAL(buttonBackPushed()), SLOT(hideBoth()));
	connect(netorkSettings.data(), SIGNAL(buttonBackPushed()), SLOT(hideBoth()));
	connect(volSettings.data(), SIGNAL(changeVolume(int)), SIGNAL(volumeChanched(int)));
	connect(volSettings.data(), SIGNAL(mute(bool)), SIGNAL(mute(bool)));
	connect(netorkSettings.data(), SIGNAL(nameOfServerWithPort(QString,quint16))
			, SLOT(handleNameOfServerWithPort(QString,quint16)));

	ui->layoutForWidget->addWidget(volSettings.data());
	ui->layoutForWidget->addWidget(netorkSettings.data());
	hideBoth();
}
Пример #2
0
//--------------------------------------------------------------------------------------------------------------------//
// QCanConfig::runCmdParser()                                                                                         //
// 10ms after the application starts this method will parse all commands                                              //
//--------------------------------------------------------------------------------------------------------------------//
void QCanConfig::runCmdParser(void)
{
   //---------------------------------------------------------------------------------------------------
   // setup command line parser
   //
   clCmdParserP.setApplicationDescription(tr("Configure CAN interface"));
   clCmdParserP.addHelpOption();
   
   //---------------------------------------------------------------------------------------------------
   // argument <interface> is required
   //
   clCmdParserP.addPositionalArgument("interface", 
                                      tr("CAN interface, e.g. can1"));

   //---------------------------------------------------------------------------------------------------
   // command line option: -a 
   //
   QCommandLineOption clOptAllT(QStringList() << "a" << "all", 
         tr("Show all CAN interfaces"));
   clCmdParserP.addOption(clOptAllT);
   
   //---------------------------------------------------------------------------------------------------
   // command line option: -H <host>
   //
   QCommandLineOption clOptHostT("H", 
         tr("Connect to <host>"),
         tr("host"));
   clCmdParserP.addOption(clOptHostT);
   
   //---------------------------------------------------------------------------------------------------
   // command line option: -m <mode>
   //
   QCommandLineOption clOptModeT(QStringList() << "m" << "mode", 
         tr("Set mode of CAN interface"),
         tr("start|stop|listen-only"));
   clCmdParserP.addOption(clOptModeT);
   
   //---------------------------------------------------------------------------------------------------
   // command line option: -nbtr <value>
   //
   QCommandLineOption clOptNomBtrT("nbtr", 
         tr("Set nominal bit-rate"),
         tr("value"));
   clCmdParserP.addOption(clOptNomBtrT);
   
   //---------------------------------------------------------------------------------------------------
   // command line option: -dbtr <value>
   //
   QCommandLineOption clOptDatBtrT("dbtr", 
         tr("Set data bit-rate"),
         tr("value"));
   clCmdParserP.addOption(clOptDatBtrT);

   
   
   clCmdParserP.addVersionOption();

   //---------------------------------------------------------------------------------------------------
   // Process the actual command line arguments given by the user
   //
   clCmdParserP.process(*pclAppP);
   
   //---------------------------------------------------------------------------------------------------
   // Test for --all option
   //
   if(clCmdParserP.isSet(clOptAllT))
   {
      QCanServerSettings   clServerT;
      if (clServerT.state() == QCanServerSettings::eSTATE_ACTIVE)
      {
         fprintf(stdout, "%s %d.%d.%d \n",
                 qPrintable(tr("CANpie FD server active, version:")),
                 clServerT.versionMajor(),
                 clServerT.versionMinor(),
                 clServerT.versionBuild() );

         fprintf(stdout, "%s %d \n",
                 qPrintable(tr("Supported CAN networks:")),
                 clServerT.networkCount() );
         for (uint8_t ubCanChannelT = eCAN_CHANNEL_1; ubCanChannelT <= clServerT.networkCount(); ubCanChannelT++)
         {
            showNetworkSettings((CAN_Channel_e) ubCanChannelT);
         }
      }
      else
      {
         fprintf(stdout, "%s \n",
                 qPrintable(tr("No CANpie FD server active")));
      }
      quit();
      return;
   }
   
   const QStringList clArgsT = clCmdParserP.positionalArguments();
   if (clArgsT.size() != 1) 
   {
      fprintf(stdout, "%s\n",
              qPrintable(tr("Error: Must specify CAN interface.\n")));
      clCmdParserP.showHelp(0);
   }

   
   //---------------------------------------------------------------------------------------------------
   // test format of argument <interface>
   //
   QString clInterfaceT = clArgsT.at(0);
   if(!clInterfaceT.startsWith("can"))
   {
      fprintf(stderr, "%s %s\n", 
              qPrintable(tr("Error: Unknown CAN interface ")),
              qPrintable(clInterfaceT));
      clCmdParserP.showHelp(0);
   }
   
   //---------------------------------------------------------------------------------------------------
   // convert CAN channel to uint8_t value
   //
   QString clIfNumT = clInterfaceT.right(clInterfaceT.size() - 3);
   bool btConversionSuccessT;
   int32_t slChannelT = clIfNumT.toInt(&btConversionSuccessT, 10);
   if((btConversionSuccessT == false) ||
      (slChannelT == 0) )
   {
      fprintf(stderr, "%s \n\n", 
              qPrintable(tr("Error: CAN interface out of range")));
      clCmdParserP.showHelp(0);
   }
   
   //---------------------------------------------------------------------------------------------------
   // store CAN interface channel (CAN_Channel_e)
   //
   ubChannelP = (uint8_t) (slChannelT);


   //---------------------------------------------------------------------------------------------------
   // set bit-rate
   //
   btConfigBitrateP = false;
   slNomBitRateP = eCAN_BITRATE_NONE;
   slDatBitRateP = eCAN_BITRATE_NONE;
   
   if (clCmdParserP.isSet(clOptNomBtrT))
   {
      slNomBitRateP  = clCmdParserP.value(clOptNomBtrT).toInt(Q_NULLPTR, 10);    
      btConfigBitrateP = true;
   }
   
   if (clCmdParserP.isSet(clOptDatBtrT))
   {
      if (slNomBitRateP == eCAN_BITRATE_NONE)
      {
         fprintf(stderr, "%s \n\n", 
                 qPrintable(tr("Error: Must set nominal bit-rate also")));
         clCmdParserP.showHelp(0);         
      }
      else
      {
         slDatBitRateP  = clCmdParserP.value(clOptDatBtrT).toInt(Q_NULLPTR, 10);
      }
   }
   
   //---------------------------------------------------------------------------------------------------
   // set host address for socket
   //
   if(clCmdParserP.isSet(clOptHostT))
   {
      QHostAddress clAddressT = QHostAddress(clCmdParserP.value(clOptHostT));
      clCanSocketP.setHostAddress(clAddressT);
   }

   //---------------------------------------------------------------------------------------------------
   // connect to CAN interface
   //
   clCanSocketP.connectNetwork((CAN_Channel_e) ubChannelP);

}