Example #1
0
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);
}
Example #2
0
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);
}
Example #3
0
/*! 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;
    }
}