void MD_Parola::begin(uint8_t numZones) { _D.begin(); // Set up the MAX72XX library // The MAX72XX is in power-saving mode on startup, // we have to do a wakeup call, set the brightness, enable updates and clear the display _D.control(MD_MAX72XX::INTENSITY, MAX_INTENSITY/2); _D.control(MD_MAX72XX::SHUTDOWN, MD_MAX72XX::OFF); _D.control(MD_MAX72XX::UPDATE, MD_MAX72XX::ON); // Create the zone objects _numZones = numZones; _Z = new MD_PZone[_numZones]; if (_numZones == 1) setZone(0, 0, _numModules-1); for (uint8_t i=0; i<_numZones; i++) _Z[i].begin(&_D); // initialise options for all zones setSpeed(10); setPause(10*getSpeed()); setCharSpacing(1); setTextAlignment(LEFT); setTextEffect(PRINT, NO_EFFECT); setTextBuffer(NULL); setInvert(false); displaySuspend(false); displayClear(); // Now set the default viewing parameters for this library _D.setFont(NULL); }
void MD_Parola::begin(uint8_t numZones) { _D.begin(); // Create the zone objects _numZones = numZones; _Z = new MD_PZone[_numZones]; if (_numZones == 1) setZone(0, 0, _numModules-1); for (uint8_t i=0; i<_numZones; i++) _Z[i].begin(&_D); // initialise options for all zones setSpeed(10); setPause(10*getSpeed()); setCharSpacing(1); setTextAlignment(LEFT); setTextEffect(PRINT, NO_EFFECT); setTextBuffer(NULL); setInvert(false); displaySuspend(false); displayClear(); // Now set the default viewing parameters for this library _D.setFont(NULL); }
/*! read data from TCP socket. Connects to signal readyRead of socket */ void So2sdrBandmap::readData() { // continue on as long as data is available while (socket->bytesAvailable()) { // first read command and length char buff[2]; if (cmdLen==0) { if (socket->bytesAvailable()<2) return; int n=socket->read(buff,2); if (n==2) { cmd=buff[0]; cmdLen=buff[1]; } } QByteArray data; data.clear(); if (cmdLen>0) { if (socket->bytesAvailable()<cmdLen) return; data=socket->read(cmdLen); } bool ok=false; int f; unsigned int ff; switch (cmd) { case BANDMAP_CMD_SET_FREQ: // set frequency f=data.toInt(&ok); if (ok) { centerFreq=f; int b=getBand(f); setBandName(b); endFreqs[0] = centerFreq- settings->value(s_sdr_sample_freq,s_sdr_sample_freq_def).toInt()/2 -settings->value(s_sdr_offset,s_sdr_offset_def).toInt(); endFreqs[1] = centerFreq+ settings->value(s_sdr_sample_freq,s_sdr_sample_freq_def).toInt()/2 -settings->value(s_sdr_offset,s_sdr_offset_def).toInt(); setWindowTitle("Bandmap "+bandName+" ["+QString::number(endFreqs[0]/1000)+"-"+QString::number(endFreqs[1]/1000)+"]"); if (band != b) { // if band changed, clear all signals spectrumProcessor->clearSigs(); spectrumProcessor->clearCQ(); band=b; } spectrumProcessor->setFreq(centerFreq, band, endFreqs[0], endFreqs[1]); spectrumProcessor->resetAvg(); makeFreqScaleAbsolute(); FreqLabel->setPixmap(freqPixmap); FreqLabel->update(); } break; case BANDMAP_CMD_SET_LOWER_FREQ: // set freq finder lower limit ff=data.toUInt(&ok); if (ok) { flow=ff; } break; case BANDMAP_CMD_SET_UPPER_FREQ: // set freq finder upper limit ff=data.toUInt(&ok); if (ok) { fhigh=ff; } break; case BANDMAP_CMD_QUIT: // quit program quit(); break; case BANDMAP_CMD_TX: // set transmit state tx=true; txLabel.setText("<font color=#FF0000>TX"); settings->setValue(s_sdr_peakdetect,false); break; case BANDMAP_CMD_RX: // cancel transmit state tx=false; txLabel.setText("<font color=#000000>TX"); settings->setValue(s_sdr_peakdetect,true); break; case BANDMAP_CMD_FIND_FREQ: // find open frequency if (centerFreq!=0 && flow!=0 && fhigh!=0) { spectrumProcessor->startFindCQ(flow,fhigh,callList); } break; case BANDMAP_CMD_SET_INVERT: // invert spectrum if (data[0]==char(0x00)) { setInvert(false); } else { setInvert(true); } break; case BANDMAP_CMD_SET_ADD_OFFSET: // set additional IF offset f=data.toInt(&ok); if (ok) { spectrumProcessor->setAddOffset(f); } break; case BANDMAP_CMD_ADD_CALL: // add callsign addCall(data); break; case BANDMAP_CMD_CLEAR: // clear callsign list callList.clear(); break; case BANDMAP_CMD_DELETE_CALL: // delete callsign deleteCall(data); break; case BANDMAP_CMD_QSY_UP: // qsy to next higher signal qsyNext(true); break; case BANDMAP_CMD_QSY_DOWN: // qsy to next lower signal qsyNext(false); break; } cmd=0; cmdLen=0; } }