コード例 #1
0
ファイル: editorwindow.cpp プロジェクト: Bramas/Ultratools
void UEditorWindow::tick(quint64 time)
{
   UNoteManager::Instance.tick(time);
    QTime displayTime(0, (time / 60000) % 60, (time / 1000) % 60);

    ui->lcd_music->display(displayTime.toString("mm:ss"));


    showSentenceWidget->setSeekPosition(_currentFile->lyrics->timeToBeat(time));

    _wydget_timeline->setSeek(time);
    _widgetSongData->setSeekPosition(time);
    _wydget_timeline->setSeekPosition(time);


if(_currentFile->lyrics->words().empty()) return;


  //qDebug()<<time<<" : s :"<<_currentFile->beatToMsc(_currentFile->lyrics->getSentences()->first()->getSepAfter()->getTime2())<< "Sentence commençant par "<<s->getWords()->first()->getWord();

  if(UNoteManager::Instance.isPlaying())
  foreach(const Word & w,_currentFile->lyrics->words())
  {
        if(!w.isSeparator() && _currentFile->lyrics->beatToMsc(w.getTime())-20<=time
           && _currentFile->lyrics->beatToMsc(w.getTime()+w.getLength())>time
           )
        {

            UNoteManager::Instance.play(w);
        }
  }


}
コード例 #2
0
void PresentationAudioPage::updateTracksNumber()
{
    QTime displayTime(0, 0, 0);
    int number = m_SoundFilesListBox->count();

    if ( number > 0 )
    {
        displayTime.addMSecs(1000 * (number - 1));

        for (QMap<QUrl, QTime>::iterator it = d->tracksTime->begin(); it != d->tracksTime->end(); ++it)
        {
            int hours = it.value().hour()   + displayTime.hour();
            int mins  = it.value().minute() + displayTime.minute();
            int secs  = it.value().second() + displayTime.second();

            /* QTime doesn't get a overflow value in input. They need
             * to be cut down to size.
             */

            mins        = mins + (int)(secs / 60);
            secs        = secs % 60;
            hours       = hours + (int)(mins / 60);
            displayTime = QTime(hours, mins, secs);
        }
    }

    m_timeLabel->setText(i18ncp("number of tracks and running time", "1 track [%2]", "%1 tracks [%2]", number, displayTime.toString()));

    m_soundtrackTimeLabel->setText(displayTime.toString());

    d->totalTime = displayTime;

    compareTimes();
}
コード例 #3
0
// 描画の際呼び出される 
void display()
{
	glClear(GL_COLOR_BUFFER_BIT);

	// ボード基盤描画
	displayBoard();
	displayBombNum(owner->Model()->Bomb(),owner->Model()->getFlagNum());
	displayTime(owner->Timer()->getElapsedTime());

	if (!owner->First()) {
		// 押されたマス目とフラグ描画
		for (int i = 0; i < sqrNum; i++) {
			for (int j = 0; j < sqrNum; j++) {
				if (owner->Board(i,j)->Pushed()) {
					// 押されたマスを描画
					displayPushedPiece(i, j, owner->Board(i,j)->Num());
				}
				else if (owner->Board(i, j)->Flag()) {
					// フラグが立ててあるマスを描画
					displayFlagPiece(i, j);
				}
			}
		}
	}

	if (owner->Clear()) {
		displayGrayBand();
		displaySentenceOnBandRandom(" Congratulations!");
	}

	glutSwapBuffers();
}
コード例 #4
0
ファイル: pebble_timer.c プロジェクト: mstahl/pebble_projects
void set_state_up_long_click_handler(ClickRecognizerRef recognizer, Window *window) {
  (void)recognizer;
  (void)window;

  timer_time += 300;

  displayTime();
}
コード例 #5
0
ファイル: window.cpp プロジェクト: chideat/media-player
void Window::setPorcessPosition(qint64 val) {
//    if(val >= 2147483648)
//        process->setValue((int)val / 1000);
//    else 
        process->setValue((int)val);
        QTime displayTime(0,(val / 60000) % 60, (val / 1000) % 60);
        time->setText (displayTime.toString ("mm:ss"));
}
コード例 #6
0
ファイル: main.c プロジェクト: jackzkdavies/foobar-
								//of initialisation, are still
								//in pseudo 8bit data mode
int main() {

	initLCD();
	initTimerAndInput();

	while (1) {

		int m = 0;
		int s = 0;
		int h = 0;

		int i;
		for (i=0; i<1; i++){
			displayTime(m, s, h);
			wait_for_user();
		}

		while (! GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0)){

			if (h == 100) {
				s++;
				h = 0;
				delay_millisec(40); // make up for processing delays
			}
			if (s == 60){
				m++;
				s=0;
			}

			h ++;

			displayTime(m, s, h);
			delay_millisec(7); //resetting display requires 2ms, 8ms delay results in stopwatch
							// running slow, 7ms with 40ms delay every second corrects this
		}

		wait_for_user(); //removes bounce effect

		for (i=0; i<1; i++){
			displayTime(m, s, h);
			wait_for_user();
		}

	}
}
コード例 #7
0
ファイル: startscene.cpp プロジェクト: dotkrnl/dotFive
void StartScene::toChangeTime(int time, bool is_white)
{
    if (is_white) {
        m_white_time = time / 1000;
    } else {
        m_black_time = time / 1000;
    }
    displayTime();
}
コード例 #8
0
void HomeScreen::displayDateTime() {
#if DBG
  Serial.print("HomeScreen::displayDateTime: ");
  Serial.println(tNow);
#endif
  int hours=0, minutes=0, seconds=0;

  readTime(hours, minutes, seconds);
  displayTime(hours, minutes, seconds);
}
コード例 #9
0
ファイル: editorwindow.cpp プロジェクト: Bramas/Ultratools
void UEditorWindow::changeSeek(quint64 time)
{
    _startTime = time;
    UAudioManager::Instance.seek(time);
    QTime displayTime(0, (time / 60000) % 60, (time / 1000) % 60);

    ui->lcd_music->display(displayTime.toString("mm:ss"));
    _wydget_timeline->setSeek(time);
    //UNoteManager::Instance.pause();
}
コード例 #10
0
ファイル: pebble_timer.c プロジェクト: mstahl/pebble_projects
void set_state_down_single_click_handler(ClickRecognizerRef recognizer, Window *window) {
  (void)recognizer;
  (void)window;

  timer_time -= 60;
  if(timer_time < 0) {
    timer_time = 0;
  }

  displayTime();
}
コード例 #11
0
ファイル: mainwindow.cpp プロジェクト: modSquad/cmmai
MainWindow::MainWindow(Socket *connection, QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow),
    connection(connection)
{
    ui->setupUi(this);

    /* Disable unavailable offline control
     */
    ui->configurationWidget->setDisabled(true);
    ui->controlWidget->setDisabled(true);
    ui->PiecesDock->setDisabled(true);
    ui->stopButton->setDisabled(true);
    ui->resumeButton->setDisabled(true);

    /* Connection/Disconnection notification
     */
    connect(connection, SIGNAL(connected()), this, SLOT(connectionNotify()));
    connect(connection, SIGNAL(disconnected()), this, SLOT(disconnectionNotify()));

    /* Received logLine
     */
    connect(connection, SIGNAL(gotLog(QString)), this, SLOT(appendLog(QString)));

    /* Received Boxed info
     */
    connect(connection, SIGNAL(gotAccepted(int)), this, SLOT(addAccepted(int)));
    connect(connection, SIGNAL(gotRejected(int)), this, SLOT(addRejected(int)));

    /* Received Error / Warning
     */
    connect(connection, SIGNAL(gotError(int)), this, SLOT(errorNotify(int)));
    //connect(connection, SIGNAL(gotWarning(int)), this, SLOT(warningNotify(int)));

    /* Connection button
     */
    connect(ui->ConnectionButton, SIGNAL(clicked()), this, SLOT(connectToHost()));

    /* Send configuration data button
     */
    connect(ui->sendConfigButton, SIGNAL(clicked()), this, SLOT(sendConfig()));

    /* Actions button : Lauch / Resume / Stop
     */
    connect(ui->launchButton, SIGNAL(clicked()), this, SLOT(launch()));
    connect(ui->resumeButton, SIGNAL(clicked()), this, SLOT(resume()));
    connect(ui->stopButton, SIGNAL(clicked()), this, SLOT(stop()));

    /* Refresh time display
     */
    connect(&timer, SIGNAL(timeout()), this, SLOT(displayTime()));

    timer.start(50);
}
コード例 #12
0
ファイル: Display.cpp プロジェクト: rxk8345/Cyclometer
void toggleDisplay(){
	int temp = displayMode + 1;
	temp = temp % 3;
	displayMode = temp;
	clearDisplay();
	if(displayMode == 0){
		displaySpeed();
	}else if(displayMode == 1){
		displayDistance();
	}else if(displayMode == 2){
		displayTime();
	}
}
コード例 #13
0
void dispTime(void* /* vp */)
{
#if defined(__OS2__)
	int	times = 0;

	while (!gTimeThreadEnd)
		{
		if (++times == 4)
			{
			times = 0;
			displayTime();
			}

		DosSleep(250);
		}
#elif defined(__WIN32__) && !defined(__DPMI32__)
	int	times = 0;

	while (!gTimeThreadEnd)
		{
		if (++times == 4)
			{
			times = 0;
			displayTime();
			}

		Sleep(250);
		}
#elif defined(__MSDOS__) || defined(__DPMI32__)
	Time t = systemTime();
	static long lasttime;

	if ((long(t) - lasttime) < 1)
		return;

	lasttime = t;
	displayTime();
#endif
}
コード例 #14
0
// method creates and manages the three needed processes
// pipes are created and seconds are converted
void processManager(int time) {
	int status;	
	secondsToMinutes(time);
	pipe(pfd);
	
	// current time process
	switch(fork()) {
		case -1: 
			printf("Error creating child process one.");
			exit(0);
		case 0:
			displayTime();
			
		default:
			break;
	}
	
	// uptime program process
	switch(fork()) {
		case -1: 
			printf("Error creating child process two.");
			exit(0)
		case 0:
			runUptimeProgram();
			
		default:
			break;
	}		
	
	// remaining time process
	switch(fork()) {
		case -1: 
			printf("Error creating child process three.");
			exit(0);
		case 0:
			countdown(minutes, seconds);
			
		default:
			break;
	}	
	
	//parent closes unued pipes
	close(pfd[0];
	close(pf[1]);
	wait(&sttus);
	wait(&status);
	wait(&status);
	friendlyMessage();
	return;
	
}	
コード例 #15
0
ファイル: TestMain.cpp プロジェクト: Naginn/ADS
int main()
{
    int x,y;
    BSTNode *root=0;
    Interval *interval=0;

    size_t len;
    char buf[4096];
    FILE *fi = fopen("TestOutput.out", "rb");
    FILE *fo=fopen("logs.txt","a");
    len = fread(buf, sizeof(char), sizeof(buf), fi);

    displayTime(fo);
    fprintf(fo,"Before execution:\n");
    fprintf(fo,"The checksum of %s is %#x\n","output.out", checkSum(buf, len, 0));

    fi=fopen("TestInput.in","r+");
    fo=fopen("TestOutput.out","w");

    //generateInput(nodeNr,intervalNr,pointNr,fi);

    fi=fopen("TestInput.in","r");
    for(int i=1; i<=nodeNr; i++)
    {
        interval=createNewInterval(interval,fi);
        root=insert(root,interval);
        free(interval);

    }
    fprintf(fo,"\n");
    for(int i=1; i<=intervalNr; i++) {
        interval=createNewInterval(interval,fi);
        fprintf(fo,"\n\nQuerry interval: [%d,%d] \n",interval->lo,interval->hi);
        fprintf(fo,"Intersected intervals:\n");
        segmentIntersect(root,interval,fo);
        free(interval);
    }
    for(int i=1; i<=pointNr; i++) {
        fprintf(fo,"\n");
        fscanf(fi,"%d",&x);
        fprintf(fo,"\n\nQuerry point:%d \n",x);
        searchPoint(root,x,fo);
        fprintf(fo,"\n");
    }
    fi = fopen("TestOutput.out", "rb");
    fo=fopen("logs.txt","a");
    len = fread(buf, sizeof(char), sizeof(buf), fi);
    fprintf(fo,"After execution:\n");
    fprintf(fo,"The checksum of %s is %#x\n\n","output.out", checkSum(buf, len, 0));
    return 0;
}
コード例 #16
0
ファイル: main.c プロジェクト: fluorine/CProgrammingExercises
int main() {
	struct time d;
	
	// Initialize date
	printf("Initialize time (hh:mm:ss) > ");
	scanf("%i:%i:%i", &d.hour, &d.minute, &d.second);
	printf("Press enter to update time.\n\n");
	
	while(1)
	{
		displayTime(d);
		d = updateTime(d);
		getchar();
	}
	return 0;
}
コード例 #17
0
ファイル: pebble_timer.c プロジェクト: mstahl/pebble_projects
void handle_tick(AppContextRef ctx, PebbleTickEvent *event) {
  if(state == RUN_STATE) {
    // Decrement time
    timer_time -= 1;

    // Finish timer if time is zero
    if(timer_time <= 0) {
      enter_finished_state();
    }

    // Update display
    displayTime();
  }
  else if(state == FINISHED_STATE) {
    vibes_double_pulse();
    text_layer_set_text(&textLayer, "Time's Up!");
  }
}
コード例 #18
0
ファイル: arabicNumerals.c プロジェクト: yTakada17/asciiClock
int
main ()
{
  time_t timer;
  struct tm *t_st;

  while (1)
    {
      system ("clear");
      time (&timer);
      t_st = localtime (&timer);

      displayTime (t_st->tm_hour, t_st->tm_min, t_st->tm_sec);
      sleep (1);
    }

  return 0;
}
コード例 #19
0
ファイル: Display.cpp プロジェクト: rxk8345/Cyclometer
void displayCalculations(){

	switch(displayMode){
	case 0:
		displaySpeed();
		break;
	case 1:
		displayDistance();
		break;
	case 2:
		displayTime();
		break;
	default:
		displayNumbers(-1,-1,-1,-1);
		break;
	}

}
コード例 #20
0
ファイル: player.cpp プロジェクト: obiwankennedy/audioPlayer
void Player::tick(qint64 time)
{
    QTime displayTime(0, (time / 60000) % 60, (time / 1000) % 60);

    m_timeLcd->display(displayTime.toString("mm:ss"));

    if(m_mediaPlayer->duration()!=0)
    {
       // qDebug() << "time:" << time << m_seekSlider->maximum();
        emit positionTime(time);
    }
    else
    {
        next();
    }
    //  out << mediaObject->totalTime() << " " << time << endl;
    //	if(mediaObject->totalTime()==time)
    //		next();
}
コード例 #21
0
ファイル: TkTime.cpp プロジェクト: vilkov/phonon-vlc-mplayer
QString TkTime::convertMilliseconds(qint64 milliseconds) {
	QTime displayTime((milliseconds / 3600 / 1000) % 60,
			(milliseconds / 60 / 1000) % 60,
			(milliseconds / 1000) % 60);

	QString timeFormat;

	if (displayTime.hour() == 0 && displayTime.minute() == 0 &&
		displayTime.second() == 0 && displayTime.msec() == 0) {
		//Total time is 0, return nothing
		return QString();
	} else {
		if (displayTime.hour() > 0) {
			timeFormat = "hh:mm:ss";
		} else {
			timeFormat = "mm:ss";
		}
		return displayTime.toString(timeFormat);
	}
}
コード例 #22
0
void ClickClickEngine::drawGameScreen() {
	ofBackground(39, 40, 34);
	c->display(Base3D::SOLID);
	
	d->display(Base3D::SOLID);
	
	t->display(Base3D::SOLID);
	
	s->display(Base3D::SOLID);
	
	cel->display(Base3D::SOLID);
	
	dia->display(Base3D::SOLID);
	
	st->display(Base3D::SOLID);
	
	//tor->display(Base3D::SOLID);
	
	displayTime();
	
	if(timeLeft <= 0) {
		screen = END_SCREEN;
	}
}
コード例 #23
0
CuteSong::CuteSong(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::CuteSong)
{
    ui->setupUi(this);

    ui->tabWidget->setCurrentIndex(0);

    database.getDatabaseFromFile("QSQLITE","CuteSong.sqlite");

    // initialisation du 'lecteur media'
    audioOutput = new Phonon::AudioOutput(Phonon::MusicCategory, this);
    mediaObject = new Phonon::MediaObject(this);
    mediaObject->setTickInterval(1000);
    connect(mediaObject,SIGNAL(tick(qint64)),this,SLOT(tickOfMediaObject(qint64)));
    Phonon::createPath(mediaObject, audioOutput);

    // intialisation de l'afficheur LCD de progression du temps de la musique
    QTime displayTime(0,0);
    ui->lcdProgress->display(displayTime.toString("mm:ss"));

    // affichage du message de binvenue dans la statusBar (en bas)
    statusBar()->showMessage("Welcome to CuteSong !");

    // initialisation du volume
    ui->volumeSlider->setAudioOutput(audioOutput);
    ui->volumeSlider->setMuteVisible(true);
    audioOutput->setVolume(0);

    // genere la vue
    makeBddView();
    makePlaylistView();
    allowPlayControlManager(false);
    ui->coverLabel->setScaledContents(true);
    ui->playFilesButton->setEnabled(false);
    ui->rmButton->setEnabled(false);
    ui->actionExport_to_PLS->setEnabled(false);

    currentSong = new Song();


    // faire tous les connect
    connect (mediaObject,SIGNAL(finished()),this,SLOT(songFinished()));
    connect (ui->actionOuvrir_fichier,SIGNAL(triggered()),this,SLOT(addFile()));
    connect (ui->actionQuit,SIGNAL(triggered()),this,SLOT(close()));
    connect (ui->actionAjouter_dossier,SIGNAL(triggered()),this,SLOT(addDirToBdd()));
    connect (ui->actionAjouter_fichiers,SIGNAL(triggered()),this,SLOT(on_addButton_clicked()));
    connect (ui->actionSauver_playlist_courante,SIGNAL(triggered()),this,SLOT(popPlaylistDialog()));
    connect (ui->actionOpen_Directory,SIGNAL(triggered()),this,SLOT(addDirToPlaylist()));
    connect (ui->actionChange_cover,SIGNAL(triggered()),this,SLOT(on_button_changeCover_clicked()));
    connect (ui->actionMute,SIGNAL(triggered()),this,SLOT(muteManager()));
    connect (ui->actionNext,SIGNAL(triggered()),this,SLOT(next()));
    connect (ui->actionPause,SIGNAL(triggered()),this->mediaObject,SLOT(pause()));
    connect (ui->actionPlay,SIGNAL(triggered()),this->mediaObject,SLOT(play()));
    connect (ui->actionPrevious,SIGNAL(triggered()),this,SLOT(previous()));
    connect (ui->actionStop,SIGNAL(triggered()),this,SLOT(stopStateManager()));
    connect (ui->actionVolume_Down,SIGNAL(triggered()),this,SLOT(volumeDown()));
    connect (ui->actionVolume_up,SIGNAL(triggered()),this,SLOT(volumeUp()));
    connect (ui->actionEdit_song_s_tag,SIGNAL(triggered()),this,SLOT(editCurrentSongTag()));
    connect (ui->actionExport_to_PLS,SIGNAL(triggered()),this,SLOT(PLSExport()));
    connect (ui->actionImport_from_PLS,SIGNAL(triggered()),this,SLOT(PLSImport()));

}
コード例 #24
0
/// @brief MAJ du temps de la musique fait a chque signal 'tick'
void CuteSong :: tickOfMediaObject(qint64 time)
{
    QTime displayTime(0, (time / 60000) % 60, (time / 1000) % 60);
    ui->lcdProgress->display(displayTime.toString("mm:ss"));
}
コード例 #25
0
ファイル: musiclayouta.cpp プロジェクト: aarontc/mcar
void MusicLayoutA::updateUI(qint64 time) {
	static Song * n1, * n2, * n3;
	static enum MusicPlayer::State state;
	Song * s = m_musicplayer->playlist.getCurrentItem();

	QTime displayTime(0, (time / 60000) % 60, (time / 1000) % 60);


	//if (m_musicplayer->getState() != state) {
	state = m_musicplayer->getState();
	switch(state) {
	case MusicPlayer::Initializing:
		m_ui->lblAlbum->setText("");
		m_ui->lblAlbumArt->setPixmap(QPixmap(QString(":/images/resources/images/CD_icon.svg")));
		m_ui->lblArtist->setText("");
		m_ui->lblBitrate->setText("Bitrate:");
		m_ui->lblFormat->setText("Format:");
		m_ui->lblSongTitle->setText("<Initializing>");
		m_ui->lcdTime->display("-:--");

		m_ui->btnPlayPause->setDefaultAction(&m_action_play);
		break;
	case MusicPlayer::Paused:
		m_ui->lblAlbum->setText((s ? s->album() : ""));
		m_ui->lblAlbumArt->setPixmap(QPixmap(QString(":/images/resources/images/CD_icon.svg")));
		m_ui->lblArtist->setText((s ? s->artist() : ""));
		m_ui->lblBitrate->setText("Bitrate:");
		m_ui->lblFormat->setText("Format:");
		m_ui->lblSongTitle->setText((s ? s->title() : "<No song>"));
		if (time>0)
			m_ui->lcdTime->display(displayTime.toString("m:ss"));

		m_ui->btnPlayPause->setDefaultAction(&m_action_play);
		break;
	case MusicPlayer::Playing:
		m_ui->lblAlbum->setText((s ? s->album() : ""));
		m_ui->lblAlbumArt->setPixmap(QPixmap(QString(":/images/resources/images/CD_icon.svg")));
		m_ui->lblArtist->setText((s ? s->artist() : ""));
		m_ui->lblBitrate->setText("Bitrate:");
		m_ui->lblFormat->setText("Format:");
		m_ui->lblSongTitle->setText((s ? s->title() : "<No song>"));
		if (time>0)
			m_ui->lcdTime->display(displayTime.toString("m:ss"));



		m_ui->btnPlayPause->setDefaultAction(&m_action_pause);
		break;
	case MusicPlayer::Idle:
		m_ui->lblAlbum->setText("");
		m_ui->lblAlbumArt->setPixmap(QPixmap(QString(":/images/resources/images/CD_icon.svg")));
		m_ui->lblArtist->setText("");
		m_ui->lblBitrate->setText("Bitrate:");
		m_ui->lblFormat->setText("Format:");
		m_ui->lblSongTitle->setText("<Idle>");
		m_ui->lcdTime->display("-:--");

		m_ui->btnPlayPause->setDefaultAction(&m_action_play);
		break;
	case MusicPlayer::Stopped:
		m_ui->lblAlbum->setText("");
		m_ui->lblAlbumArt->setPixmap(QPixmap(QString(":/images/resources/images/CD_icon.svg")));
		m_ui->lblArtist->setText("");
		m_ui->lblBitrate->setText("Bitrate:");
		m_ui->lblFormat->setText("Format:");
		m_ui->lblSongTitle->setText("<Stopped>");
		m_ui->lcdTime->display("-:--");

		m_ui->btnPlayPause->setDefaultAction(&m_action_play);
		break;

		//}
	}


	n1 = m_musicplayer->playlist.getCurrentItem(1);
	n2 = m_musicplayer->playlist.getCurrentItem(2);
	n3 = m_musicplayer->playlist.getCurrentItem(3);

	if (n1)
		m_ui->lblUpcoming0->setText(QString(n1->artist() + " - " + n1->title()));
	else
		m_ui->lblUpcoming0->setText("");

	if (n2)
		m_ui->lblUpcoming1->setText(QString(n2->artist() + " - " + n2->title()));
	else
		m_ui->lblUpcoming1->setText("");


	if (n3)
		m_ui->lblUpcoming2->setText(QString(n3->artist() + " - " + n3->title()));
	else
		m_ui->lblUpcoming2->setText("");


}
コード例 #26
0
ファイル: HistoryTreeItem.cpp プロジェクト: dyfet/sflphone
///Update player labels
void HistoryTreeItem::tick(qint64 time)
{
   QTime displayTime(0, (time / 60000) % 60, (time / 1000) % 60);
   m_pTimePlayedL->setText(displayTime.toString("mm:ss"));
}
コード例 #27
0
ファイル: Logger.cpp プロジェクト: sequencing/EAGLE
std::string displayTime(size_t time, size_t &acc)
{
    acc += time;
    return displayTime(time);
}
コード例 #28
0
void loop()
{
       // Process AI   
  if (Settings[S_ENABLEADC]){
    //temperature=(analogRead(temperaturePin)-102)/2.048; // Does someone use this ATM??
    if (!Settings[S_MAINVOLTAGE_VBAT]){
      static uint16_t ind = 0;
      static uint32_t voltageRawArray[8];
      voltageRawArray[(ind++)%8] = analogRead(voltagePin);                  
      uint16_t voltageRaw = 0;
      for (uint16_t i=0;i<8;i++)
        voltageRaw += voltageRawArray[i];
      voltage = float(voltageRaw) * Settings[S_DIVIDERRATIO] /1023; 
    }
    if (!Settings[S_VIDVOLTAGE_VBAT]) {     
      static uint16_t ind = 0;
      static uint32_t voltageRawArray[8];
      voltageRawArray[(ind++)%8] = analogRead(vidvoltagePin);                  
      uint16_t voltageRaw = 0;
      for (uint16_t i=0;i<8;i++)
        voltageRaw += voltageRawArray[i];
      vidvoltage = float(voltageRaw) * Settings[S_VIDDIVIDERRATIO] /1023;  
    }
    if (!Settings[S_MWRSSI] && !Settings[S_PWMRSSI]) {
      rssiADC = analogRead(rssiPin)/4;  // RSSI Readings, rssiADC=0 to 1023/4 (avoid a number > 255)
    }
    if (!Settings[S_MWAMPERAGE]) {
      int16_t currsensOffSet=(Settings[S_CURRSENSOFFSET_L] | (Settings[S_CURRSENSOFFSET_H] << 8));  // Read OffSetH/L
      amperageADC = analogRead(amperagePin);
      if (amperageADC > currsensOffSet) amperageADC=((amperageADC-currsensOffSet)*4.8828)/Settings[S_CURRSENSSENSITIVITY]; // [A] Positive Current flow (512...1023) or Unidir (0...1023)
      else amperageADC=((currsensOffSet-amperageADC)*4.8828)/Settings[S_CURRSENSSENSITIVITY]; // [A] Negative Current flow (0...512)
      }
}
   if (Settings[S_MWAMPERAGE]) {
     amperagesum = MW_ANALOG.pMeterSum;
     amperage = MW_ANALOG.Amperage /100;
    }
	
  if (Settings[S_MWRSSI]) {
      rssiADC = MW_ANALOG.Rssi/4;  // RSSI from MWii, rssiADC=0 to 1023/4 (avoid a number > 255)
    } 
	
  if (Settings[S_PWMRSSI] && !Settings[S_MWRSSI]){
	rssiADC = pulseIn(PWMrssiPin, HIGH,15000)/Settings[S_PWMRSSIDIVIDER]; // Reading W/time out (microseconds to wait for pulse to start: 15000=0.015sec)
    }
   
  // Blink Basic Sanity Test Led at 1hz - this stuff introduces strange behavior on my system
  if(tenthSec>10)
    digitalWrite(7,HIGH);
  else
    digitalWrite(7,LOW);


  //---------------  Start Timed Service Routines  ---------------------------------------
  uint16_t currentMillis = millis();

  if((currentMillis - previous_millis_low) >= lo_speed_cycle)  // 10 Hz (Executed every 100ms)
  {
    previous_millis_low = currentMillis;
	
	tenthSec++;
	TempBlinkAlarm++;
	Blink10hz=!Blink10hz;
	
	if(!fontMode)
      blankserialRequest(MSP_ATTITUDE);
      
    if(Settings[L_RSSIPOSITIONDSPL])
      calculateRssi();      
  }  // End of slow Timed Service Routine (100ms loop)

  if((currentMillis - previous_millis_high) >= hi_speed_cycle)  // 20 Hz (Executed every 50ms)
  {
    previous_millis_high = currentMillis;   

    calculateTrip();      // Speed integration on 50msec
    if (!Settings[S_MWAMPERAGE]) calculateAmperage();  // Amperage and amperagesum integration on 50msec
    
      uint8_t MSPcmdsend;
      if(queuedMSPRequests == 0)
        queuedMSPRequests = modeMSPRequests;
    uint32_t req = queuedMSPRequests & -queuedMSPRequests;
    queuedMSPRequests &= ~req;
      switch(req) {
      case REQ_MSP_IDENT:
        MSPcmdsend = MSP_IDENT;
        break;
      case REQ_MSP_STATUS:
        MSPcmdsend = MSP_STATUS;
        break;
      case REQ_MSP_RAW_IMU:
        MSPcmdsend = MSP_RAW_IMU;
        break;
      case REQ_MSP_RC:
        MSPcmdsend = MSP_RC;
        break;
      case REQ_MSP_RAW_GPS:
        MSPcmdsend = MSP_RAW_GPS;
        break;
      case REQ_MSP_COMP_GPS:
        MSPcmdsend = MSP_COMP_GPS;
        break;
      case REQ_MSP_ATTITUDE:
        MSPcmdsend = MSP_ATTITUDE;
        break;
      case REQ_MSP_ALTITUDE:
        MSPcmdsend = MSP_ALTITUDE;
        break;
      case REQ_MSP_ANALOG:
        MSPcmdsend = MSP_ANALOG;
        break;
      case REQ_MSP_RC_TUNING:
        MSPcmdsend = MSP_RC_TUNING;
        break;
      case REQ_MSP_PID:
        MSPcmdsend = MSP_PID;
        break;
      case REQ_MSP_BOX:
        MSPcmdsend = MSP_BOXIDS;
         break;
      case REQ_MSP_FONT:
        MSPcmdsend = MSP_OSD;
      break;
    }
      if(!fontMode)
      blankserialRequest(MSPcmdsend);     

    //MAX7456_DrawScreen();
    
    if( allSec < 6 ){
      displayIntro(KVTeamVersionPosition);
      lastCallSign = onTime;
    }  
    else
    {
      if(armed){
        previousarmedstatus=1;
      }
      if(previousarmedstatus && !armed){
        configPage=9;
        ROW=10;
        COL=1;
        configMode=1;
        setMspRequests();
      }
      if(fontMode) {
         displayFontScreen();
      }
      else if(configMode)
      {
        displayConfigScreen();
      }
      else
      {
        
        displayVoltage();
        displayVidVoltage();
        displayRSSI();
        displayTime();
        displaySensor();
        displayGPSMode();
        displayMode();
        //if((temperature<Settings[S_TEMPERATUREMAX])||(BlinkAlarm)) displayTemperature();
        displayAmperage();
        displaypMeterSum();
        displayArmed();
        displayCurrentThrottle();
        displayautoPilot(); 

        if ( (onTime > (lastCallSign+300)) || (onTime < (lastCallSign+4)))
       {
           // Displays 4 sec every 5min (no blink during flight)
        if ( onTime > (lastCallSign+300))lastCallSign = onTime; 
        displayCallsign(); 
       
       }

        if(MW_STATUS.sensorPresent&ACCELEROMETER)
           displayHorizon(MW_ATT.Angle[0],MW_ATT.Angle[1]);

        if(MW_STATUS.sensorPresent&MAGNETOMETER) {
          displayHeadingGraph();
          displayHeading();
        }

        if(MW_STATUS.sensorPresent&BAROMETER) {
          displayAltitude();
          displayClimbRate();
        }

        if(MW_STATUS.sensorPresent&GPSSENSOR) 
          if(Settings[S_DISPLAYGPS]){
            displayNumberOfSat();
            displayDirectionToHome();
            displayDistanceToHome();
            displayAngleToHome();
            displayGPS_speed();
            displayGPSPosition();
            //displayGPS_altitude(); // Do not remove yet
          }
      }
    }
	 MAX7456_DrawScreen();
  }  // End of fast Timed Service Routine (50ms loop)
//---------------------  End of Timed Service Routine ---------------------------------------


  if(TempBlinkAlarm >= Settings[S_BLINKINGHZ]) {    // selectable alarm blink freq
    TempBlinkAlarm = 0;
    BlinkAlarm =!BlinkAlarm;     // 10=1Hz, 9=1.1Hz, 8=1.25Hz, 7=1.4Hz, 6=1.6Hz, 5=2Hz, 4=2.5Hz, 3=3.3Hz, 2=5Hz, 1=10Hz
  }

 
  if(tenthSec >= 10)     // this execute 1 time a second
  {
    onTime++;
    
    tenthSec=0;

    if(!armed) {
      flyTime=0;
    }
    else {
      flyTime++;
      flyingTime++;
      configMode=0;
      setMspRequests();
    }
    allSec++;
    
    

    if((accCalibrationTimer==1)&&(configMode)) {
      blankserialRequest(MSP_ACC_CALIBRATION);
      accCalibrationTimer=0;
    }

    if((magCalibrationTimer==1)&&(configMode)) {
      blankserialRequest(MSP_MAG_CALIBRATION);
      magCalibrationTimer=0;
    }

    if((eepromWriteTimer==1)&&(configMode)) {
      blankserialRequest(MSP_EEPROM_WRITE);
      eepromWriteTimer=0;
    }

    if(accCalibrationTimer>0) accCalibrationTimer--;
    if(magCalibrationTimer>0) magCalibrationTimer--;
    if(eepromWriteTimer>0) eepromWriteTimer--;

    if((rssiTimer==1)&&(configMode)) {
      Settings[S_RSSIMIN]=rssiADC;  // set MIN RSSI signal received (tx off?)
      rssiTimer=0;
    }
    if(rssiTimer>0) rssiTimer--;
  }
  
  serialMSPreceive();

}  // End of main loop
コード例 #29
0
ファイル: disqteca.cpp プロジェクト: jimmyandrade/disqteca
void disqteca::tick(qint64 time)
{
    QTime displayTime(0, (time / 60000) % 60, (time / 1000) % 60);

    ui->andamento->setText(displayTime.toString("mm:ss"));
}
コード例 #30
0
void main () {
    // Current timer state
    enum stateType state = COUNTING;

    // Default timer value to 10 minutes
    int timerValue = 600;

    // Note that count = 4x number of seconds
    int count = timerValue << 2;
 
    // This is used for the blinking digit during set mode
    char currentDigitValue = 0;

    lcd_init();

    initTimer();
    initButtons();
    initEncoder();
    initLedDisplay();
    
    displayTime(timerValue);

    while (1)
    {
        // display the LED string
        displayLEDs(0, displayString[displayStringIndex]);
        displayLEDs(1, displayString[displayStringIndex + 1]);
        displayLEDs(2, displayString[displayStringIndex + 2]);
        displayLEDs(3, displayString[displayStringIndex + 3]);

        // Get user input (buttons and encoder)
        enum button buttonState = getButtonState();
        enum encoderChange encoderState = getEncoderState();

        if (state == SITTING || state == COUNTING) {
            // User wants to enable set mode
            if (buttonState == BUTTON_S2) {
                count = 0;
                timerValue = 0;
                currentDigitValue = 0;
                state = SETTING_DIGIT0;
                
                bcd.digit0 = 0xA;
                bcd.digit1 = 0xA;
                bcd.digit2 = 0xA;
                bcd.digit3 = 0xA;
                lcd_display_digits(bcd);

            // User wants to reset the timer
            } else if (buttonState == BUTTON_S3) {
                count = timerValue << 2;
                state = SITTING;
                displayTime(timerValue);

            // User wants to start the timer
            } else if (state == SITTING && buttonState == BUTTON_S4) {
                count = timerValue << 2;
                state = COUNTING;
                displayTime(count >> 2);
            }
        }

        // If we're already in set mode
        else if (state == SETTING_DIGIT0