Esempio n. 1
0
void
QMFieldView::initScrollbar(void)
{
    if(_pScrollbar == NULL)
    {
        _pScrollbar = new QScrollBar(Vertical, this, 
                                     "QMFieldView::_pScrollbar");
    }

    _pScrollbar->setGeometry(
        width()-_pScrollbar->sizeHint().width(), 0,
        _pScrollbar->sizeHint().width(),         height());

    if(getFieldPtr()->getSize() <= 2)
    {
        _pScrollbar->hide       ( );
        _pScrollbar->setMinValue(0);
        _pScrollbar->setMaxValue(0);
    }
    else
    {
        _pScrollbar->show       (                            );
        _pScrollbar->setMinValue(0                           );
        _pScrollbar->setMaxValue(2*getFieldPtr()->getSize()-2);
    }
}
Esempio n. 2
0
void
QMFieldView::mouseDoubleClickEvent(QMouseEvent *pEvent)
{
    bool   bValid  = false;
    UInt32 uiIndex = pointToIndex(pEvent->pos(), bValid);

    if(bValid && (uiIndex < getFieldPtr()->getSize()))
    {
        emit doubleClicked(getFieldContainer(), getFieldId(), 
                           uiIndex,             pEvent->button());
    }
}
Esempio n. 3
0
void
QMFieldView::beginEdit(UInt32 uiIndex)
{
    if(uiIndex >= getFieldPtr()->getSize())
        return;

    endEdit();

    _pEditor->setIndex(uiIndex);
    _pEditor->activate(       );

    update();
}
Esempio n. 4
0
QSize
QMFieldView::sizeHint(void) const
{
    QMFieldView          *pThis         = const_cast<QMFieldView *>(this);
    QFieldValueLabelBase *pLabel;
    QSize                 labelSize( 0,  0);
    QSize                 retSize  (10, 10);
    bool                  bReleaseLabel = false;

    if(_usedLabels.size() != 0)
    {
        pLabel = (*_usedLabels.begin()).second.getLabel();
    }
    else
    {
        pLabel        = QFieldLabelFactory::the().createLabel(pThis, 0);
        bReleaseLabel = true;
    }

    labelSize = pLabel->sizeHint();

    retSize.setHeight(
        osgMin<UInt32>(5, getFieldPtr()->getSize()) * labelSize.height());

    retSize.setWidth(
        osgMax(retSize.width(), labelSize.width() + _pScrollbar->width()));

    
    retSize.setWidth (osgMax(retSize.width(),  10*fontMetrics().width("W")));
    
    retSize.setHeight(osgMax(retSize.height(),    fontMetrics().height()  ));

    if(bReleaseLabel)
        delete pLabel;

    return retSize;
}
Esempio n. 5
0
void
QMFieldView::redrawChanged(QPaintEvent *pEvent, QPainter *pPainter)
{
    SNOTICE << "QMFieldView::redrawChanged()" << endLog;

    UInt32                currIndex;
    Int32                 drawTop;

    QRect                 drawRect;
    QSize                 drawSize;

    bool                  doneDraw = false;

    QFieldValueLabelBase *pLabel;

    _uiBeginIndex = _pScrollbar->value()/2;
    _uiEndIndex   = _uiBeginIndex;
    currIndex     = _uiBeginIndex;

    if(_uiBeginIndex >= getFieldPtr()->getSize())
    {
        releaseAllLabels();
        return;
    }

    pLabel   = acquireLabel   (_uiEndIndex++);
    drawSize = pLabel->sizeHint(             );
    drawTop  = ((_pScrollbar->value() % 2) == 0) ? 0 : -drawSize.height()/2;

    drawRect = QRect(0, drawTop,
                     width()-_pScrollbar->width(), 
                     osgMin(drawSize.height(), height()            ) );

    while(!doneDraw)
    {
        pPainter->setClipRect(drawRect.intersect(pEvent->rect()));

        pLabel->paint(pPainter, palette().active(), drawRect);
        
        _usedLabels[currIndex].setLabel(pLabel  );
        _usedLabels[currIndex].setRect (drawRect);
              
        drawTop += drawRect.height();
        
        if((_uiEndIndex >= getFieldPtr()->getSize()) ||
           (drawTop     >= height()                )   )
        {
            doneDraw = true;
        }
        else
        {
            currIndex = _uiEndIndex++;
            pLabel    = acquireLabel    (currIndex);
            drawSize  = pLabel->sizeHint(         );

            drawRect  = QRect(0, drawTop,
                              width()-_pScrollbar->width(),
                              osgMin(drawSize.height(), height()));
        }
    }

    IndexLabelMapIt   begin = _usedLabels.begin();
    IndexLabelMapIt   end   = _usedLabels.end();

    for(; begin != end; ++begin)
    {
        pLabel = begin->second.getLabel();

        if( (pLabel->getIndex() <  _uiBeginIndex) ||
            (pLabel->getIndex() >= _uiEndIndex  )   )
        {
            releaseLabel(pLabel);
//            _usedLabels.erase(begin);
//            _poolLabels.push_back(pLabel);
        }
    }

    _bContentsChanged = false;
}
Esempio n. 6
0
void vGpsTask(void *pvParameters)
{
    delay_ms(100);

    GpsInitialization();

    //UART_Send(LPC_UART0, "$PMTK314,0,0,0,5,0,0,0,0,1,1,1,1,1,1,1,1,1*2C\r\n", 47, BLOCKING );
    //UART_Send(LPC_UART0,(uint8_t *) "$PMTK314,0,0,0,5,5,5,0,0,1,1,1,1,1,1,1,1,1*2C\r\n", 47, BLOCKING );
    UART_Send(LPC_UART0,(uint8_t *) "$PMTK314,1,1,1,1,1,5,0,0,0,0,0,0,0,0,0,0,0,0,0*2C\r\n",52, BLOCKING);

    //UART_Send(LPC_UART0,(uint8_t *) "$PMTK000*32\r\n",13, BLOCKING);
    UART_Send(LPC_UART0,(uint8_t *) "$PMTK101*32\r\n",13, BLOCKING);

    while(UART_CheckBusy(LPC_UART0));
    NVIC_EnableIRQ(UART0_IRQn);


    while(1)
    {
        gpsSetProcessingBuffer(-1);
        if(xSemaphoreTake(xSemaphoreGPS,portMAX_DELAY) == pdTRUE)
        {
            gpsSetProcessingBuffer(0);
            gps_tokenize_input();
            char *token_msgid = gps_getToken(0);

            if( strcmp(token_msgid, "$GPGGA") == 0)
            {
                //$GPGGA,081604.000,5204.8543,N,02101.6233,E,1,8,1.06,96.7,M,39.3,M,,*66
                //$GPGGA,082316.000,5204.8526,N,02101.6227,E,1,8,1.04,93.9,M,39.3,M,,*6C
                //$GPGGA,083352.000,5205.1129,N,02102.3054,E,2,9,0.99,107.4,M,39.3,M,0000,0000*58
                asm("nop");

                //			if(checkFixPresence()!=0)
                //			{
                //				parseGgaMessage();
                //			}
            } else if (strcmp(token_msgid, "$GPRMC")==0) {
                //$GPRMC,081253.000,A,5204.8527,N,02101.6226,E,0.04,0.00,210214,,,A*6A
                //$GPRMC,082223.000,A,5204.8527,N,02101.6234,E,0.33,175.46,210214,,,A*68

                char *test = gps_getToken(2);
                if(test[0] == 'V') {
                    asm("nop");
                } else if (test[0] == 'A') {
                    asm("nop");
                }
            }	else if (strncmp(token_msgid, "GPGSA", 5)==0) {
                // GSA - SATELITES AVAILVLE
                //$GPGSA,A,3,20,31,17,11,01,,,,,,,,1.80,1.54,0.93*06
                //$GPGSA,A,3,20,31D*0C\r\n

                asm("nop");
            } else if (strncmp(token_msgid, "GPVTG", 5) == 0) {
                //$GPVTG,71.41,T,,M,0.06,N,0.10,K,A*09\r\n
                // 10 km/h
                //$GPVTG,70.02,T,,M,8.04,N,14.90,K,A*38\r\n
                // 25 km/h
                //$GPVTG,248.73,T,,M,12.53,N,23.23,K,D*37
                asm("nop");
            } else if (strncmp(token_msgid, "GPGSV", 5) == 0) {
                // GSV - Satelistes in view
                // $GPGSV,4,1,13,20,76,279,46,01,62,169,45,32,61,082,44,23,40,210,48*7F
                // $GPGSV,2,1,08,20,71,276,26,01,67,172,40,11,37,173,31,31,32,091,*79

                char *test = getFieldPtr(3);
                if (strncmp(test, "00", 2)!= 0) {
                    asm("nop");
                }
            } else if (strncmp(token_msgid, "PMTK011",7)==0) {
                asm("nop");
            } else if (strncmp(token_msgid, "PMTK010", 7)==0) {
                asm("nop");
            } else {
                asm("nop");
            }
        }
        //	vTaskDelay(1000/portTICK_RATE_MS);
    }

}