void CLSPGT8000HVChannel::onVoltageChanged(double voltage){ emit voltageChanged(voltage); if(isOn() && demand_->withinTolerance(voltage)) emit fullyPowered(); if(isConnected() && poweringDown_ && (voltage_->value()) < 1){ poweringDown_ = false; powerState_ = AMHighVoltageChannel::isPowerOff; emit powerStateChanged(powerState_); } }
void DriverStation::resetEverything() { m_elapsedTime->resetTimer(); m_elapsedTime->stopTimer(); emit codeChanged (false); emit voltageChanged (QString ("")); emit elapsedTimeChanged ("00:00.0"); emit communicationsChanged (kFailing); }
Battery::Battery(const QString &udi, QObject *parent) : QObject(parent) , m_device(Solid::Device(udi)) { // qCDebug(BATTERY) << "Added battery" << udi; m_battery = m_device.as<Solid::Battery>(); connect(m_battery, &Solid::Battery::chargePercentChanged, [this](int, const QString &) { Q_EMIT chargePercentChanged(); }); connect(m_battery, &Solid::Battery::capacityChanged, [this](int, const QString &) { Q_EMIT capacityChanged(); }); connect(m_battery, &Solid::Battery::powerSupplyStateChanged, [this](bool, const QString &) { Q_EMIT powerSupplyChanged(); }); connect(m_battery, &Solid::Battery::chargeStateChanged, [this](int, const QString &) { Q_EMIT chargeStateChanged(); }); connect(m_battery, &Solid::Battery::timeToEmptyChanged, [this](qlonglong, const QString &) { Q_EMIT timeToEmptyChanged(); }); connect(m_battery, &Solid::Battery::timeToFullChanged, [this](qlonglong, const QString &) { Q_EMIT timeToFullChanged(); }); connect(m_battery, &Solid::Battery::chargeStateChanged, [this](int, const QString &) { Q_EMIT chargeStateChanged(); }); connect(m_battery, &Solid::Battery::energyChanged, [this](double, const QString &) { Q_EMIT energyChanged(); }); connect(m_battery, &Solid::Battery::energyRateChanged, [this](double, const QString &) { Q_EMIT energyRateChanged(); }); connect(m_battery, &Solid::Battery::voltageChanged, [this](double, const QString &) { Q_EMIT voltageChanged(); }); connect(m_battery, &Solid::Battery::temperatureChanged, [this](double, const QString &) { Q_EMIT temperatureChanged(); }); }
void Elm327::_refreshData() { QVector<int> data; static int voltageTimeout = 0; if (!_started) { return; } for(int i = 0; i < _watchList.size(); i++) { data = _readPID(1, _watchList.at(i)); if (!data.isEmpty()) emit pidValueChanged(_watchList.at(i), data); } if (voltageTimeout-- <= 0) { emit voltageChanged(_readVoltage()); voltageTimeout = 5; } _watchTimer->start(); }
DriverStation::DriverStation() { m_init = false; /* Initialize private members */ m_client = new DS_Client; m_netConsole = new DS_NetConsole; m_elapsedTime = new DS_ElapsedTime; m_manager = new DS_ProtocolManager; m_protocol = Q_NULLPTR; /* Update internal values and notify object on robot status events */ connect (m_manager, SIGNAL (codeChanged (bool)), this, SLOT (updateRobotStatus (bool))); connect (m_manager, SIGNAL (communicationsChanged (DS_CommStatus)), this, SLOT (updateRobotStatus (DS_CommStatus))); connect (m_manager, SIGNAL (controlModeChanged (DS_ControlMode)), this, SLOT (resetElapsedTimer (DS_ControlMode))); connect (m_manager, SIGNAL (codeChanged (bool)), this, SIGNAL (codeChanged (bool))); connect (m_manager, SIGNAL (communicationsChanged (DS_CommStatus)), this, SIGNAL (communicationsChanged (DS_CommStatus))); connect (m_manager, SIGNAL (controlModeChanged (DS_ControlMode)), this, SIGNAL (controlModeChanged (DS_ControlMode))); connect (m_manager, SIGNAL (diskUsageChanged (int)), this, SIGNAL (diskUsageChanged (int))); connect (m_manager, SIGNAL (ramUsageChanged (int)), this, SIGNAL (ramUsageChanged (int))); connect (m_manager, SIGNAL (cpuUsageChanged (int)), this, SIGNAL (cpuUsageChanged (int))); connect (m_manager, SIGNAL (voltageChanged (QString)), this, SIGNAL (voltageChanged (QString))); connect (m_manager, SIGNAL (voltageBrownoutChanged (bool)), this, SIGNAL (voltageBrownoutChanged (bool))); connect (m_manager, SIGNAL (CANInfoReceived (DS_CAN)), this, SIGNAL (CANInfoReceived (DS_CAN))); connect (m_manager, SIGNAL (emergencyStopped (void)), this, SIGNAL (emergencyStopped (void))); connect (m_manager, SIGNAL (fmsChanged (bool)), this, SIGNAL (fmsChanged (bool))); /* Stop timer when the communications status changes */ connect (m_manager, SIGNAL (communicationsChanged (DS_CommStatus)), m_elapsedTime, SLOT (stopTimer())); /* Robot information has changed */ connect (m_manager, SIGNAL (libVersionChanged (QString)), this, SIGNAL (libVersionChanged (QString))); connect (m_manager, SIGNAL (rioVersionChanged (QString)), this, SIGNAL (rioVersionChanged (QString))); connect (m_manager, SIGNAL (pcmVersionChanged (QString)), this, SIGNAL (pcmVersionChanged (QString))); connect (m_manager, SIGNAL (pdpVersionChanged (QString)), this, SIGNAL (pdpVersionChanged (QString))); /* Sync robot address and calculated IPs automatically */ connect (m_manager, SIGNAL (robotAddressChanged (QString)), m_client, SLOT (setRobotAddress (QString))); /* Update the elapsed time text automatically */ connect (m_elapsedTime, SIGNAL (elapsedTimeChanged (QString)), this, SIGNAL (elapsedTimeChanged (QString))); /* New NetConsole message received */ connect (m_netConsole, SIGNAL (newMessage (QString)), this, SIGNAL (newMessage (QString))); /* Send and read robot packets */ connect (m_client, SIGNAL (dataReceived (QByteArray)), this, SLOT (readRobotPacket (QByteArray))); connect (DS_Timers::getInstance(), SIGNAL (timeout20()), this, SLOT (sendClientPacket())); }
/** * Polls for new LibDS events and emits Qt signals as appropiate. * This function is called every 5 milliseconds. */ void DriverStation::processEvents() { DS_Event event; while (DS_PollEvent (&event)) { switch (event.type) { case DS_FMS_COMMS_CHANGED: emit fmsAddressChanged(); emit fmsCommunicationsChanged (event.fms.connected); break; case DS_RADIO_COMMS_CHANGED: emit radioAddressChanged(); emit radioCommunicationsChanged (event.radio.connected); break; case DS_NETCONSOLE_NEW_MESSAGE: emit newMessage (QString::fromUtf8 (event.netconsole.message)); break; case DS_ROBOT_ENABLED_CHANGED: emit enabledChanged (event.robot.enabled); break; case DS_ROBOT_MODE_CHANGED: emit controlModeChanged (controlMode()); break; case DS_ROBOT_COMMS_CHANGED: emit robotAddressChanged(); emit robotCommunicationsChanged (event.robot.connected); break; case DS_ROBOT_CODE_CHANGED: emit robotCodeChanged (event.robot.code); break; case DS_ROBOT_VOLTAGE_CHANGED: emit voltageChanged (event.robot.voltage); break; case DS_ROBOT_CAN_UTIL_CHANGED: emit canUsageChanged (event.robot.can_util); break; case DS_ROBOT_CPU_INFO_CHANGED: emit cpuUsageChanged (event.robot.cpu_usage); break; case DS_ROBOT_RAM_INFO_CHANGED: emit ramUsageChanged (event.robot.ram_usage); break; case DS_ROBOT_DISK_INFO_CHANGED: emit diskUsageChanged (event.robot.disk_usage); break; case DS_ROBOT_STATION_CHANGED: emit stationChanged(); emit allianceChanged (teamAlliance()); emit positionChanged (teamPosition()); break; case DS_ROBOT_ESTOP_CHANGED: emit emergencyStoppedChanged (event.robot.estopped); break; case DS_STATUS_STRING_CHANGED: emit statusChanged (QString::fromUtf8 (DS_GetStatusString())); break; default: break; } } QTimer::singleShot (5, Qt::CoarseTimer, this, SLOT (processEvents())); }