uint8_t SettingsMenu::printItem(uint8_t index)
{
    StaticMenu::printItem(index);
    if(getBlinkIndex() != index) {
        START_CASE_COUNTER;
        switch (index) {
#ifdef ENABLE_LCD_BACKLIGHT
            case NEXT_CASE:     lcdPrintUnsigned(p_.backlight_, 3);     break;
#endif
#ifdef ENABLE_FAN
            case NEXT_CASE:     printTemp(p_.fanTempOn_);               break;
#endif
#ifdef ENABLE_T_INTERNAL
            case NEXT_CASE:     printTemp(p_.dischargeTempOff_);        break;
#endif
            case NEXT_CASE:     lcdPrintYesNo(p_.externT_);             break;
            case NEXT_CASE:     printTemp(p_.externTCO_);               break;
            case NEXT_CASE:     printDeltaT(p_.deltaT_);                break;
            case NEXT_CASE:     lcdPrint_mV(p_.deltaV_NiMH_, 5);        break;
            case NEXT_CASE:     lcdPrint_mV(p_.deltaV_NiCd_, 5);        break;
            case NEXT_CASE:     lcdPrintUnsigned(p_.CDcycles_, 3);      break;
            case NEXT_CASE:     lcdPrintPercentage(p_.capCutoff_, 5);   break;
            case NEXT_CASE:     printVolt(p_.inputVoltageLow_);         break;
            case NEXT_CASE:     lcdPrint_mV(p_.dischargeOffset_LiXX_,6);break;
            case NEXT_CASE:     lcdPrint_mV(p_.balancerError_, 5);      break;
            case NEXT_CASE:     printUART();                            break;
            case NEXT_CASE:     printUARTSpeed();                       break;
        }
    }
}
Beispiel #2
0
void lcdPrint_mV(AnalogInputs::ValueType p, int8_t dig)
{
    if(dig > 2) {
        lcdPrintUnsigned(p,dig-2);
        lcdPrint_P(PSTR("mV"));
    }
}
Beispiel #3
0
void lcdPrintPercentage(AnalogInputs::ValueType p, int8_t dig)
{
    if(dig > 0) {
        lcdPrintUnsigned(p,--dig);
        lcdPrintChar('%');
    }
}
void SettingsMenu::printDeltaT(AnalogInputs::ValueType dt)
{
    lcdPrintUnsigned(dt/100, 3);
    lcdPrintChar('.');
    lcdPrintDigit((dt%100)/10);
    lcdPrint_P(PSTR("C/m"));
}
Beispiel #5
0
void Screen::displayCalibrationErrorScreen(uint8_t errNo)
{
    lcdClear();
    lcdSetCursor0_0();
    lcdPrint_P(PSTR("Cal.err.  F:"));
    lcdPrintUnsigned(errNo, 2);
    Time::delay(8000);
}
void SettingsMenu::printUARTSpeed() const
{
    //TODO: add printULong
    uint32_t s = p_.getUARTspeed();
    s/=100;
    lcdPrintUnsigned(s,5);
    lcdPrintChar('0');
    lcdPrintChar('0');
}
Beispiel #7
0
 virtual void printItem(uint8_t index) {
     //TODO: hack, should be improved ... Gyuri: R138 burned.
     if(!AnalogInputs::isConnected(AnalogInputs::Vout)) {
         Screen::displayStrings(string_connect, string_battery);
         if(cName1_ == AnalogInputs::IdischargeSet) {
             Discharger::powerOff();
         }
     } else {
         StaticMenu::printItem(index);
         if(getBlinkIndex() != index) {
             if(index == 0) {
                 lcdPrintUnsigned(value_, 9);
             } else {
                 lcdPrintCurrent(AnalogInputs::getIout(), 7);
                 lcdPrintUnsigned(AnalogInputs::getAvrADCValue(cName2_), 6);
             }
         }
     }
 }
Beispiel #8
0
 virtual uint8_t printItem(uint8_t index) {
     StaticMenu::printItem(index);
     if(getBlinkIndex() != index) {
         if(index == 0) {
             AnalogInputs::printRealValue(tName_, 7);
         } else {
             lcdPrintUnsigned(AnalogInputs::getAvrADCValue(tName_), 7);
         }
     }
 }
Beispiel #9
0
void Screen::displayDebugDelta()
{
    lcdSetCursor0_0();

    lcdPrint_P(PSTR("C="));
    lcdPrintUnsigned(analogInputs.getRealValue(AnalogInputs::deltaLastCount),5);
    lcdPrint_P(PSTR(" L="));
    int x = analogInputs.deltaLastT_;
    lcdPrintSigned(x, 6);
    lcdPrintSpaces();

    lcdSetCursor0_1();
    lcdPrint_P(PSTR("N="));
    lcdPrintUnsigned(analogInputs.deltaCount_,5);
    lcdPrint_P(PSTR(" L="));
    x = ProgramData::currentProgramData.getDeltaVLimit();
    lcdPrintSigned(x, 6);
    lcdPrintSpaces();
}
Beispiel #10
0
 virtual uint8_t printItem(uint8_t index) {
     StaticMenu::printItem(index);
     if(getBlinkIndex() != index) {
         if(index == 0) {
             lcdPrintUnsigned(value_, 5);
         } else {
             lcdPrintCurrent(AnalogInputs::getIout(), 7);
         }
     }
 }
Beispiel #11
0
void Screen::displayScreenReversedPolarity()
{
    lcdSetCursor0_0();
    lcdPrint_P(PSTR("REVERSE POLARITY"));

    if(settings.isDebug()) {
        lcdSetCursor0_1();
        lcdPrint_P(PSTR("Vrev:"));
        lcdPrintUnsigned(analogInputs.getRealValue(AnalogInputs::VreversePolarity), 8);
    }
}
void Screen::Cycle::displayCycles()
{
    uint8_t c, time = Blink::blinkTime_/8;
    uint8_t all_scr = ProgramDCcycle::currentCycle/2 + 1;
    c = time % all_scr;
    lcdSetCursor0_0();
    lcdPrintUnsigned(c+1, 1);
    lcdPrintChar(SCREEN_EMPTY_CELL_CHAR);
    lcdPrintTime(cyclesHistoryTime[c*2], 6);
    lcdPrintSpace1();
    lcdPrintChar(SCREEN_FULL_CELL_CHAR);
    lcdPrintTime(cyclesHistoryTime[c*2+1], 6);
    lcdPrintSpaces();

    lcdSetCursor0_1();
    lcdPrintCharge(cyclesHistoryCapacity[c*2],8);
    lcdPrintCharge(cyclesHistoryCapacity[c*2+1],8);
    lcdPrintSpaces();
}
Beispiel #13
0
void Screen::displayStartInfo()
{
    lcdSetCursor0_0();
    ProgramData::currentProgramData.printBatteryString(4);
    lcdPrintChar(' ');
    ProgramData::currentProgramData.printVoltageString();
    lcdPrintChar(' ');
    printProgram2chars(Program::programType_);

    lcdSetCursor0_1();
    uint16_t procent = getChargeProcent();
    if(procent == 100) {
        if(getBlinkOff())
            lcdPrintSpaces(4);
        else
            lcdPrint_P(PSTR("FUL "));
    } else {
        lcdPrintUnsigned(procent, 2);
        lcdPrint_P(PSTR("% "));
    }

    int bindex = getBlinkIndex();
    if(bindex & 1) analogInputs.printRealValue(AnalogInputs::Vout, 5);
    else lcdPrintSpaces(5);

    lcdPrintChar(' ');
    if(ProgramData::currentProgramData.isLiXX()) {
        //display balance port
        if(bindex & 2) analogInputs.printRealValue(AnalogInputs::Vbalancer, 5);
        else lcdPrintSpaces(5);

        if(bindex & 4) lcdPrintDigit(analogInputs.getConnectedBalancePorts());
        else lcdPrintChar(' ');
    } else {

        lcdPrintCharge(ProgramData::currentProgramData.battery.C, 6);
        lcdPrintSpaces();
    }
}
Beispiel #14
0
void lcdPrintTime(uint16_t timeSec)
{
    lcdPrintUnsigned(timeSec/60, 3, '0');
    lcdPrintChar(':');
    lcdPrintUnsigned(timeSec%60, 2, '0');
}
Beispiel #15
0
void Screen::runCalibrationError(const char *s, uint8_t error) {
    displayStrings(PSTR("calib. error"), s);
    lcdPrintUnsigned(error, 3);
    waitButtonPressed();
}
Beispiel #16
0
void SettingsMenu::printTemp(AnalogInputs::ValueType t) {
    lcdPrintUnsigned(t/100, 3);
    lcdPrintChar('C');
}
Beispiel #17
0
void lcdPrintUnsigned(uint16_t x, int8_t dig)
{
    lcdPrintUnsigned(x,dig, ' ');
}
Beispiel #18
0
void SettingsMenu::printVolt(AnalogInputs::ValueType v) {
    lcdPrintUnsigned(v/1000, 3);
    lcdPrintChar('V');
}