Added stylesheet, demo docs etc.

This commit is contained in:
2025-12-17 13:11:26 +01:00
parent 4c5e42fcfd
commit 08d6c593da
17 changed files with 530 additions and 160 deletions

1
.gitignore vendored
View File

@@ -1,3 +1,4 @@
BionxControl.pro.user BionxControl.pro.user
build/ build/
bcvalue.cpp.autosave bcvalue.cpp.autosave
.qtcreator/BionxControl.pro.user

View File

@@ -1,5 +1,6 @@
<RCC> <RCC>
<qresource prefix="/"> <qresource prefix="/">
<file alias="bikeinfo.xml">data/bikeinfo.xml</file> <file alias="bikeinfo.xml">data/bikeinfo.xml</file>
<file>BionxControl.qss</file>
</qresource> </qresource>
</RCC> </RCC>

29
BionxControl.qss Normal file
View File

@@ -0,0 +1,29 @@
/* app.qss */
/* Alle QWidgets bekommen diesen Font */
QWidget {
font-size: 14px;
font-family: "Segoe UI", sans-serif;
}
/* Spezifisches Styling für Buttons */
QPushButton {
background-color: #0078d7;
color: white;
border-radius: 4px;
padding: 6px;
}
QPushButton:hover {
background-color: #1084e3;
}
QPushButton:pressed {
background-color: #005a9e;
}
/* Styling anhand von Objektnamen (ID) */
#loginButton {
font-weight: bold;
background-color: green;
}

1
bc.h
View File

@@ -748,6 +748,7 @@ namespace BCTags
{ {
inline constexpr auto Device = "Device"_L1; inline constexpr auto Device = "Device"_L1;
inline constexpr auto ID = "ID"_L1; inline constexpr auto ID = "ID"_L1;
inline constexpr auto Label = "Label"_L1;
inline constexpr auto Default = "Default"_L1; inline constexpr auto Default = "Default"_L1;
inline constexpr auto Current = "Current"_L1; inline constexpr auto Current = "Current"_L1;
inline constexpr auto Enabled = "Enabled"_L1; inline constexpr auto Enabled = "Enabled"_L1;

View File

@@ -27,8 +27,47 @@
<property name="frameShadow"> <property name="frameShadow">
<enum>QFrame::Shadow::Raised</enum> <enum>QFrame::Shadow::Raised</enum>
</property> </property>
<widget class="QPushButton" name="pushButton">
<property name="geometry">
<rect>
<x>30</x>
<y>50</y>
<width>171</width>
<height>51</height>
</rect>
</property>
<property name="text">
<string>PushButton</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_2">
<property name="geometry">
<rect>
<x>20</x>
<y>140</y>
<width>171</width>
<height>51</height>
</rect>
</property>
<property name="text">
<string>PushButton</string>
</property>
</widget>
</widget>
<widget class="QTableView" name="_valueView">
<property name="frameShape">
<enum>QFrame::Shape::NoFrame</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Shadow::Plain</enum>
</property>
<property name="alternatingRowColors">
<bool>false</bool>
</property>
<property name="gridStyle">
<enum>Qt::PenStyle::CustomDashLine</enum>
</property>
</widget> </widget>
<widget class="QTableView" name="_valueView"/>
</widget> </widget>
</item> </item>
</layout> </layout>
@@ -39,7 +78,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>800</width> <width>800</width>
<height>22</height> <height>18</height>
</rect> </rect>
</property> </property>
</widget> </widget>

View File

@@ -48,7 +48,7 @@ uint8_t BCValue::getLongValue()
} }
BCValue* BCValue::makeValue( BCDevice::ID deviceID, const BCValueParams& params ) BCValue BCValue::makeValue( BCDevice::ID deviceID, const BCValueParams& params )
{ {
auto setIfExists = [&]( QStringView source, optDouble& target ) auto setIfExists = [&]( QStringView source, optDouble& target )
@@ -69,17 +69,18 @@ BCValue* BCValue::makeValue( BCDevice::ID deviceID, const BCValueParams& params
- eine gültige ID - eine gültige ID
*/ */
BCValue* newValue{}; BCValue newValue{};
auto IDVal = s_bcValueEnum.keyToValue64( params.ID.toLatin1().constData() ); auto IDVal = s_bcValueEnum.keyToValue64( params.ID.toLatin1().constData() );
if( IDVal.has_value() ) if( IDVal.has_value() )
{ {
newValue = new BCValue( deviceID, BC::ID( IDVal.value() ) ); newValue = BCValue( deviceID, BC::ID( IDVal.value() ) );
setIfExists( params.Factor, newValue->factor ); setIfExists( params.Factor, newValue.factor );
setIfExists( params.Min, newValue->min ); setIfExists( params.Min, newValue.min );
setIfExists( params.Max, newValue->max ); setIfExists( params.Max, newValue.max );
newValue->defaultValue.setValue( params.Default ); newValue.defaultValue.setValue( params.Label );
newValue->value.setValue( params.Current ); newValue.value.setValue( params.Current );
newValue.label = params.Label;
} }
return newValue; return newValue;

View File

@@ -42,14 +42,15 @@ using optDouble = std::optional<double>;
struct BCValueParams struct BCValueParams
{ {
QString ID; QString ID;
QString Default; QString Label;
QString Current; QString Default;
QString Enabled; QString Current;
QString UnitType; QString Enabled;
QString Min; QString UnitType;
QString Max; QString Min;
QString Factor; QString Max;
QString Factor;
}; };
@@ -81,10 +82,11 @@ public:
optDouble min; optDouble min;
optDouble max; optDouble max;
optDouble factor; optDouble factor;
QVariant defaultValue; QVariant defaultValue;
QVariant value; QVariant value;
static BCValue* makeValue( BCDevice::ID deviceID, const BCValueParams& params ); static BCValue makeValue(BCDevice::ID deviceID, const BCValueParams& params );
}; };
@@ -104,18 +106,7 @@ constexpr auto to_u(E e) noexcept {
} }
*/ */
class BCValueShort using BCValueList = QList<BCValue>;
{
};
class BCValueLong
{
};
using BCValueList = QList<BCValue*>;
#endif // BCRawValue_H #endif // BCRawValue_H

View File

@@ -163,9 +163,11 @@ void BCValueManager::readDevice( BCValueList& parsedValues )
{ {
//qDebug() << " --- found: " << _xml.name() << " : " << _xml.attributes().value(BCTags::ID); //qDebug() << " --- found: " << _xml.name() << " : " << _xml.attributes().value(BCTags::ID);
QString id = _xml.attributes().value(BCTags::ID).toString();
BCValueParams params BCValueParams params
{ {
.ID = _xml.attributes().value(BCTags::ID).toString(), .ID = id,
.Label = _xml.attributes().value(BCTags::Label).toString(),
.Default = _xml.attributes().value(BCTags::Default).toString(), .Default = _xml.attributes().value(BCTags::Default).toString(),
.Current = _xml.attributes().value(BCTags::Current).toString(), .Current = _xml.attributes().value(BCTags::Current).toString(),
.Enabled = _xml.attributes().value(BCTags::Enabled).toString(), .Enabled = _xml.attributes().value(BCTags::Enabled).toString(),
@@ -175,10 +177,11 @@ void BCValueManager::readDevice( BCValueList& parsedValues )
.Factor = _xml.attributes().value(BCTags::Factor).toString() .Factor = _xml.attributes().value(BCTags::Factor).toString()
}; };
BCValue* newValue = BCValue::makeValue( _currentDeviceID, params ); // __fix! können ungültige werte erzeugt werden ?
if(newValue) //BCValue newValue = BCValue::makeValue( _currentDeviceID, params );
parsedValues.push_back( BCValue::makeValue( _currentDeviceID, params ) ); //if(newValue)
// parsedValues.push_back( newValue );
parsedValues.push_back( BCValue::makeValue( _currentDeviceID, params ) );
} }
//printAttrs (_xml); //printAttrs (_xml);

View File

@@ -1,136 +1,156 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<Bike name='franken-wheeler'> <Bike name='franken-wheeler'>
<Device Type="Console">
<!-- müssen wir doppel werte hier reinschreiben? -->
<Value ID='Cons_Stat_Dist_Hi' Default='' Current='' Enabled='true' UnitType='mm' Factor='0.1' />
<Value ID='Cons_Stat_Dist_Lo' Default='' Current='' Enabled='true' UnitType='mm'/>
<Value ID='Cons_Stat_Avgspeed_Hi' Default='' Current='' Enabled='true' UnitType='mm' Factor='0.1' />
<Value ID='Cons_Stat_Avgspeed_Lo' Default='' Current='' Enabled='true' UnitType='mm'/>
<Value ID='Cons_Stat_Odo_Hihi' Default='' Current='' Enabled='true' Factor='0.1' /> <Device Type="Console">
<Value ID='Cons_Stat_Odo_Hilo' Default='' Current='' Enabled='true' />
<Value ID='Cons_Stat_Odomoter_Lohi' Default='' Current='' Enabled='true' />
<Value ID='Cons_Stat_Odo_Lolo' Default='' Current='' Enabled='true' />
<Value ID='Cons_Preference_Nip_Hihi' Default='' Current='' Enabled='true' /> <Value ID='Cons_Rev_Hw' Label='Hardware Version' Default='' Current='' Enabled='true' />
<Value ID='Cons_Preference_Nip_Hilo' Default='' Current='' Enabled='true' /> <Value ID='Cons_Rev_Sw' Label='Software Version' Default='' Current='' Enabled='true' />
<Value ID='Cons_Preference_Nip_Lohi' Default='' Current='' Enabled='true' /> <Value ID='Cons_Sn_Product_Hi' Label='Product Number' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Preference_Nip_Lolo' Default='' Current='' Enabled='true' /> <Value ID='Cons_Sn_Oem_Hi' Label='OEM Number' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Throttle_Calibrated' Default='' Current='' Enabled='true' />
<Value ID='Cons_Stat_Chrono_Second' Default='' Current='' Enabled='true' />
<Value ID='Cons_Stat_Chrono_Minute' Default='' Current='' Enabled='true' />
<Value ID='Cons_Stat_Chrono_Hour' Default='' Current='' Enabled='true' />
<Value ID='Cons_Preference_Lcd_Contrast' Default='' Current='' Enabled='true' />
<Value ID='Cons_Sn_Location' Default='' Current='' Enabled='true' />
<Value ID='Cons_Sn_Year' Default='' Current='' Enabled='true' />
<Value ID='Cons_Sn_Month' Default='' Current='' Enabled='true' />
<Value ID='Cons_Sn_Day' Default='' Current='' Enabled='true' />
<Value ID='Cons_Sn_Pn_Hi' Default='' Current='' Enabled='true' /> <Value ID='Cons_Assist_Initlevel' Label='Assistance Init Level' Default='' Current='' Enabled='true' Min='0' Max='4' />
<Value ID='Cons_Sn_Pn_Lo' Default='' Current='' Enabled='true' /> <Value ID='Cons_Assist_Level_1' Label='Assistance Level 1' Default='' Current='' Enabled='true' UnitType='%' Factor='1.5625'/>
<Value ID='Cons_Sn_Item_Hi' Default='' Current='' Enabled='true' /> <Value ID='Cons_Assist_Level_2' Label='Assistance Level 2' Default='' Current='' Enabled='true' UnitType='%' Factor='1.5625'/>
<Value ID='Cons_Sn_Item_Lo' Default='' Current='' Enabled='true' /> <Value ID='Cons_Assist_Level_3' Label='Assistance Level 3' Default='' Current='' Enabled='true' UnitType='%' Factor='1.5625'/>
<Value ID='Cons_Assist_Level_4' Label='Assistance Level 4' Default='' Current='' Enabled='true' UnitType='%' Factor='1.5625'/>
<Value ID='Cons_Assist_Gauge_Joint' Default='' Current='' Enabled='true' Min='0' Max='11' /> <Value ID='Cons_Assist_Maxspeed_Flag' Label='Max Limit Enabled' Default='' Current='' Enabled='true' />
<Value ID='Cons_Throttle_Min_Hi' Default='' Current='' Enabled='true' /> <Value ID='Cons_Assist_Maxspeed_Hi' Label='Max Speed Limit' Default='' Current='' LongValue='true' Enabled='true' UnitType='kmh' Factor='0.1'/>
<Value ID='Cons_Throttle_Min_Lo' Default='' Current='' Enabled='true' />
<Value ID='Cons_Throttle_Max_Hi' Default='' Current='' Enabled='true' />
<Value ID='Cons_Throttle_Max_Lo' Default='' Current='' Enabled='true' />
<Value ID='Cons_Preference_Light_On_At_Start' Default='' Current='' Enabled='true' /> <Value ID='Cons_Assist_Minspeed_Flag' Label='Min Limit Enabled' Default='' Current='' Enabled='true' />
<Value ID='Cons_Assist_Minspeed' Label='Min Speed Limit' Default='' Current='' Enabled='true' />
<Value ID='Cons_Geometry_Circ_Hi' Default='' Current='' Enabled='true' UnitType='mm' /> <Value ID='Cons_Throttle_Maxspeed_Flag' Label='Throttle Limit Enabled' Default='' Current='' Enabled='true' />
<Value ID='Cons_Geometry_Circ_Lo' Default='' Current='' Enabled='true' /> <Value ID='Cons_Throttle_Maxspeed_Hi' Label='Throttle Speed Limit' Default='' Current='' LongValue='true' Enabled='true' UnitType='kmh' Factor='0.1'/>
<Value ID='Cons_Assist_Maxspeed_Flag' Default='' Current='' Enabled='true' /> <Value ID='Cons_Geometry_Circ_Hi' Label='Wheel Circumference' Default='' Current='' LongValue='true' Enabled='true' UnitType='mm' />
<Value ID='Cons_Assist_Maxspeed_Hi' Default='' Current='' Enabled='true' UnitType='kmh' Factor='0.1'/> <Value ID='Cons_Assist_Mountain_Cap' Label='Mountain Cap' Default='' Current='' Enabled='true' UnitType='%' Factor='1.5625' />
<Value ID='Cons_Assist_Maxspeed_Lo' Default='' Current='' Enabled='true' />
<Value ID='Cons_Throttle_Maxspeed_Flag' Default='' Current='' Enabled='true' /> </Device>
<Value ID='Cons_Throttle_Maxspeed_Hi' Default='' Current='' Enabled='true' UnitType='kmh' Factor='0.1'/>
<Value ID='Cons_Throttle_Maxspeed_Lo' Default='' Current='' Enabled='true' />
<Value ID='Cons_Assist_Minspeed_Flag' Default='' Current='' Enabled='true' />
<Value ID='Cons_Assist_Minspeed' Default='' Current='' Enabled='true' />
<Value ID='Cons_Assist_Brake_Level' Default='' Current='' Enabled='true' Min='0' Max='64' UnitType='%' Factor='1.5625'/> <Device Type="Battery">
<Value ID='Cons_Preference_Trip_To_Empty_Flag' Default='' Current='' Enabled='true' /> </Device>
<Value ID='Cons_Preference_Display_Units' Default='1' Current='' Enabled='true' /> <Device Type="Motor">
<Value ID='Cons_Throttle_Enabled_Onstrain' Default='' Current='' Enabled='true' /> </Device>
<Device Type="Sensor">
</Device>
<Value ID='Cons_Assist_Brake_Flag' Default='1' Current='' Enabled='true' />
<Value ID='Cons_Assist_Brake_Polarity' Default='' Current='' Enabled='true' />
<Value ID='Cons_Assist_Gauge_Filter' Default='' Current='' Enabled='true' Min='0' Max='8' />
<Value ID='Cons_Rev_Sw' Default='' Current='' Enabled='true' />
<Value ID='Cons_Assist_Gauge_Gain' Default='' Current='' Enabled='true' Min='0.1' Max='4.0' Factor='0.1' />
<Value ID='Cons_Assist_Gain_A' Default='' Current='' Enabled='true' Min='0.1' Max='4.0' Factor='0.1' />
<Value ID='Cons_Assist_Gain_B' Default='' Current='' Enabled='true' Min='0.1' Max='25.0' Factor='0.1' />
<Value ID='Cons_Sn_Type' Default='' Current='' Enabled='true' />
<Value ID='Cons_Preference_Region' Default='' Current='' Enabled='true' />
<Value ID='Cons_Preference_Configbit_0' Default='' Current='' Enabled='true' />
<Value ID='Cons_Throttle_Enabled_Boost_Display' Default='' Current='' Enabled='true' />
<Value ID='Cons_Assist_Autoregen_Flag' Default='' Current='' Enabled='true' />
<Value ID='Cons_Rev_Sub' Default='' Current='' Enabled='true' />
<Value ID='Cons_Preference_Light_Button_Mode' Default='' Current='' Enabled='true' />
<Value ID='Cons_Preference_Expertmode' Default='' Current='' Enabled='true' />
<Value ID='Cons_Assist_Level_1' Default='' Current='' Enabled='true' UnitType='%' Factor='1.5625'/>
<Value ID='Cons_Assist_Level_2' Default='' Current='' Enabled='true' UnitType='%' Factor='1.5625'/>
<Value ID='Cons_Assist_Level_3' Default='' Current='' Enabled='true' UnitType='%' Factor='1.5625'/>
<Value ID='Cons_Assist_Level_4' Default='' Current='' Enabled='true' UnitType='%' Factor='1.5625'/>
<Value ID='Cons_Assist_Initlevel' Default='' Current='' Enabled='true' Min='0' Max='4' />
<Value ID='Cons_Preference_Codes_Hihi' Default='' Current='' Enabled='true' />
<Value ID='Cons_Preference_Codes_Hilo' Default='' Current='' Enabled='true' />
<Value ID='Cons_Preference_Codes_Lohi' Default='' Current='' Enabled='true' />
<Value ID='Cons_Preference_Codes_Lolo' Default='' Current='' Enabled='true' />
<Value ID='Cons_Preference_Codesrw_Hihi' Default='' Current='' Enabled='true' />
<Value ID='Cons_Preference_Codesrw_Hilo' Default='' Current='' Enabled='true' />
<Value ID='Cons_Preference_Codesrw_Lohi' Default='' Current='' Enabled='true' />
<Value ID='Cons_Preference_Codesrw_Lolo' Default='' Current='' Enabled='true' />
<Value ID='Cons_Sn_Oem_Hi' Default='' Current='' Enabled='true' />
<Value ID='Cons_Sn_Oem_Lo' Default='' Current='' Enabled='true' />
<Value ID='Cons_Preference_Throttle_Mode' Default='' Current='' Enabled='true' />
<Value ID='Cons_Assist_Speedgain' Default='' Current='' Enabled='true' Factor='0.1' />
<Value ID='Cons_Sn_Product_Hi' Default='' Current='' Enabled='true' />
<Value ID='Cons_Sn_Product_Lo' Default='' Current='' Enabled='true' />
<Value ID='Cons_Throttle_Boost_Triggerlevel' Default='' Current='' Enabled='true' Min='1.5' Max='50.0' UnitType='%' Factor='1.5625' />
<Value ID='Cons_Preference_Flip_Side' Default='' Current='' Enabled='true' />
<Value ID='Cons_Config_Testmode' Default='' Current='' Enabled='true' />
<Value ID='Cons_Config_Testmode_Hw14' Default='' Current='' Enabled='true' />
<Value ID='Cons_Assist_Mountain_Cap' Default='' Current='' Enabled='true' UnitType='%' Factor='1.5625' />
<Value ID='Cons_Config_Last_Mode' Default='' Current='' Enabled='true' />
<Value ID='Cons_Config_Last_Mode_On' Default='' Current='' Enabled='true' />
<Value ID='Cons_Config_Last_Mode_Off' Default='' Current='' Enabled='true' />
<Value ID='Cons_Rev_Hw' Default='' Current='' Enabled='true' />
<Value ID='Cons_Status_Slave' Default='' Current='' Enabled='true' />
<Value ID='Cons_Throttle_Raw_Hi' Default='' Current='' Enabled='true' />
<Value ID='Cons_Throttle_Raw_Lo' Default='' Current='' Enabled='true' />
<Value ID='Cons_Throttle_Position' Default='' Current='' Enabled='true' Factor='1.5625'/>
<Value ID='Cons_Assist_Level_Rekuperation_3' Default='' Current='' Enabled='true' UnitType='%' Factor='1.5625'/>
<Value ID='Cons_Assist_Level_Rekuperation_4' Default='' Current='' Enabled='true' UnitType='%' Factor='1.5625'/>
<Value ID='Cons_Config_Service_Timestamp_Hi' Default='' Current='' Enabled='true' />
<Value ID='Cons_Config_Service_Zimestamp_Lo' Default='' Current='' Enabled='true' />
<Value ID='Cons_Config_Service_Distance_Hi' Default='' Current='' Enabled='true' />
<Value ID='Cons_Config_Service_Distance_Lo' Default='' Current='' Enabled='true' />
<Value ID='Cons_Assist_Level_Rekuperation_1' Default='' Current='' Enabled='true' UnitType='%' Factor='1.5625'/>
<Value ID='Cons_Assist_Level_Rekuperation_2' Default='' Current='' Enabled='true' UnitType='%' Factor='1.5625'/>
</Device>
<Device Type="Battery">
</Device>
<Device Type="Motor">
</Device>
<Device Type="Sensor">
</Device>
</Bike> </Bike>
<!--
printf( " odo .....................: %0.2f Km" _NL _NL,
((getValue(CONSOLE, CONSOLE_STATS_ODO_1) << 24) +
(getValue(CONSOLE, CONSOLE_STATS_ODO_2) << 16) +
(getValue(CONSOLE, CONSOLE_STATS_ODO_3) << 8) +
(getValue(CONSOLE, CONSOLE_STATS_ODO_4))) / (double)10
);
}
<Value ID='Cons_Stat_Dist_Hi' Label='' Default='' Current='' LongValue='true' Enabled='true' UnitType='mm' Factor='0.1' />
<Value ID='Cons_Stat_Dist_Lo' Label='' Default='' Current='' LongValue='true' Enabled='true' UnitType='mm'/>
<Value ID='Cons_Stat_Avgspeed_Hi' Label='' Default='' Current='' LongValue='true' Enabled='true' UnitType='mm' Factor='0.1' />
<Value ID='Cons_Stat_Avgspeed_Lo' Label='' Default='' Current='' LongValue='true' Enabled='true' UnitType='mm'/>
<Value ID='Cons_Stat_Odo_Hihi' Label='' Default='' Current='' LongValue='true' Enabled='true' Factor='0.1' />
<Value ID='Cons_Stat_Odo_Hilo' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Stat_Odomoter_Lohi' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Stat_Odo_Lolo' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Preference_Nip_Hihi' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Preference_Nip_Hilo' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Preference_Nip_Lohi' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Preference_Nip_Lolo' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Throttle_Calibrated' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Stat_Chrono_Second' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Stat_Chrono_Minute' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Stat_Chrono_Hour' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Preference_Lcd_Contrast' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Sn_Location' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Sn_Year' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Sn_Month' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Sn_Day' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Sn_Pn_Hi' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Sn_Pn_Lo' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Sn_Item_Hi' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Sn_Item_Lo' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Assist_Gauge_Joint' Label='' Default='' Current='' LongValue='true' Enabled='true' Min='0' Max='11' />
<Value ID='Cons_Throttle_Min_Hi' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Throttle_Min_Lo' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Throttle_Max_Hi' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Throttle_Max_Lo' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Preference_Light_On_At_Start' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Assist_Brake_Level' Label='' Default='' Current='' LongValue='true' Enabled='true' Min='0' Max='64' UnitType='%' Factor='1.5625'/>
<Value ID='Cons_Preference_Trip_To_Empty_Flag' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Preference_Display_Units' Default='1' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Throttle_Enabled_Onstrain' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Assist_Brake_Flag' Default='1' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Assist_Brake_Polarity' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Assist_Gauge_Filter' Label='' Default='' Current='' LongValue='true' Enabled='true' Min='0' Max='8' />
<Value ID='Cons_Assist_Gauge_Gain' Label='' Default='' Current='' LongValue='true' Enabled='true' Min='0.1' Max='4.0' Factor='0.1' />
<Value ID='Cons_Assist_Gain_A' Label='' Default='' Current='' LongValue='true' Enabled='true' Min='0.1' Max='4.0' Factor='0.1' />
<Value ID='Cons_Assist_Gain_B' Label='' Default='' Current='' LongValue='true' Enabled='true' Min='0.1' Max='25.0' Factor='0.1' />
<Value ID='Cons_Sn_Type' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Preference_Region' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Preference_Configbit_0' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Throttle_Enabled_Boost_Display' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Assist_Autoregen_Flag' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Rev_Sub' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Preference_Light_Button_Mode' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Preference_Expertmode' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Preference_Codes_Hihi' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Preference_Codes_Hilo' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Preference_Codes_Lohi' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Preference_Codes_Lolo' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Preference_Codesrw_Hihi' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Preference_Codesrw_Hilo' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Preference_Codesrw_Lohi' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Preference_Codesrw_Lolo' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Preference_Throttle_Mode' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Throttle_Boost_Triggerlevel' Label='' Default='' Current='' LongValue='true' Enabled='true' Min='1.5' Max='50.0' UnitType='%' Factor='1.5625' />
<Value ID='Cons_Preference_Flip_Side' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Config_Testmode' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Config_Testmode_Hw14' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Config_Last_Mode' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Assist_Speedgain' Label='' Default='' Current='' LongValue='true' Enabled='true' Factor='0.1' />
<Value ID='Cons_Config_Last_Mode_On' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Config_Last_Mode_Off' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Status_Slave' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Throttle_Raw_Hi' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Throttle_Raw_Lo' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Throttle_Position' Label='' Default='' Current='' LongValue='true' Enabled='true' Factor='1.5625'/>
<Value ID='Cons_Assist_Level_Rekuperation_3' Label='' Default='' Current='' LongValue='true' Enabled='true' UnitType='%' Factor='1.5625'/>
<Value ID='Cons_Assist_Level_Rekuperation_4' Label='' Default='' Current='' LongValue='true' Enabled='true' UnitType='%' Factor='1.5625'/>
<Value ID='Cons_Config_Service_Timestamp_Hi' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Config_Service_Zimestamp_Lo' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Config_Service_Distance_Hi' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Config_Service_Distance_Lo' Label='' Default='' Current='' LongValue='true' Enabled='true' />
<Value ID='Cons_Assist_Level_Rekuperation_1' Label='' Default='' Current='' LongValue='true' Enabled='true' UnitType='%' Factor='1.5625'/>
<Value ID='Cons_Assist_Level_Rekuperation_2' Label='' Default='' Current='' LongValue='true' Enabled='true' UnitType='%' Factor='1.5625'/>
-->

BIN
doc/BF_BikeInformation.docx Normal file

Binary file not shown.

Binary file not shown.

136
doc/console_full.xml Normal file
View File

@@ -0,0 +1,136 @@
<?xml version='1.0' encoding='UTF-8'?>
<Bike name='franken-wheeler'>
<Device Type="Console">
<!-- müssen wir doppel werte hier reinschreiben? -->
<Value ID='Cons_Stat_Dist_Hi' Default='' Current='' Enabled='true' UnitType='mm' Factor='0.1' />
<Value ID='Cons_Stat_Dist_Lo' Default='' Current='' Enabled='true' UnitType='mm'/>
<Value ID='Cons_Stat_Avgspeed_Hi' Default='' Current='' Enabled='true' UnitType='mm' Factor='0.1' />
<Value ID='Cons_Stat_Avgspeed_Lo' Default='' Current='' Enabled='true' UnitType='mm'/>
<Value ID='Cons_Stat_Odo_Hihi' Default='' Current='' Enabled='true' Factor='0.1' />
<Value ID='Cons_Stat_Odo_Hilo' Default='' Current='' Enabled='true' />
<Value ID='Cons_Stat_Odomoter_Lohi' Default='' Current='' Enabled='true' />
<Value ID='Cons_Stat_Odo_Lolo' Default='' Current='' Enabled='true' />
<Value ID='Cons_Preference_Nip_Hihi' Default='' Current='' Enabled='true' />
<Value ID='Cons_Preference_Nip_Hilo' Default='' Current='' Enabled='true' />
<Value ID='Cons_Preference_Nip_Lohi' Default='' Current='' Enabled='true' />
<Value ID='Cons_Preference_Nip_Lolo' Default='' Current='' Enabled='true' />
<Value ID='Cons_Throttle_Calibrated' Default='' Current='' Enabled='true' />
<Value ID='Cons_Stat_Chrono_Second' Default='' Current='' Enabled='true' />
<Value ID='Cons_Stat_Chrono_Minute' Default='' Current='' Enabled='true' />
<Value ID='Cons_Stat_Chrono_Hour' Default='' Current='' Enabled='true' />
<Value ID='Cons_Preference_Lcd_Contrast' Default='' Current='' Enabled='true' />
<Value ID='Cons_Sn_Location' Default='' Current='' Enabled='true' />
<Value ID='Cons_Sn_Year' Default='' Current='' Enabled='true' />
<Value ID='Cons_Sn_Month' Default='' Current='' Enabled='true' />
<Value ID='Cons_Sn_Day' Default='' Current='' Enabled='true' />
<Value ID='Cons_Sn_Pn_Hi' Default='' Current='' Enabled='true' />
<Value ID='Cons_Sn_Pn_Lo' Default='' Current='' Enabled='true' />
<Value ID='Cons_Sn_Item_Hi' Default='' Current='' Enabled='true' />
<Value ID='Cons_Sn_Item_Lo' Default='' Current='' Enabled='true' />
<Value ID='Cons_Assist_Gauge_Joint' Default='' Current='' Enabled='true' Min='0' Max='11' />
<Value ID='Cons_Throttle_Min_Hi' Default='' Current='' Enabled='true' />
<Value ID='Cons_Throttle_Min_Lo' Default='' Current='' Enabled='true' />
<Value ID='Cons_Throttle_Max_Hi' Default='' Current='' Enabled='true' />
<Value ID='Cons_Throttle_Max_Lo' Default='' Current='' Enabled='true' />
<Value ID='Cons_Preference_Light_On_At_Start' Default='' Current='' Enabled='true' />
<Value ID='Cons_Geometry_Circ_Hi' Default='' Current='' Enabled='true' UnitType='mm' />
<Value ID='Cons_Geometry_Circ_Lo' Default='' Current='' Enabled='true' />
<Value ID='Cons_Assist_Maxspeed_Flag' Default='' Current='' Enabled='true' />
<Value ID='Cons_Assist_Maxspeed_Hi' Default='' Current='' Enabled='true' UnitType='kmh' Factor='0.1'/>
<Value ID='Cons_Assist_Maxspeed_Lo' Default='' Current='' Enabled='true' />
<Value ID='Cons_Throttle_Maxspeed_Flag' Default='' Current='' Enabled='true' />
<Value ID='Cons_Throttle_Maxspeed_Hi' Default='' Current='' Enabled='true' UnitType='kmh' Factor='0.1'/>
<Value ID='Cons_Throttle_Maxspeed_Lo' Default='' Current='' Enabled='true' />
<Value ID='Cons_Assist_Minspeed_Flag' Default='' Current='' Enabled='true' />
<Value ID='Cons_Assist_Minspeed' Default='' Current='' Enabled='true' />
<Value ID='Cons_Assist_Brake_Level' Default='' Current='' Enabled='true' Min='0' Max='64' UnitType='%' Factor='1.5625'/>
<Value ID='Cons_Preference_Trip_To_Empty_Flag' Default='' Current='' Enabled='true' />
<Value ID='Cons_Preference_Display_Units' Default='1' Current='' Enabled='true' />
<Value ID='Cons_Throttle_Enabled_Onstrain' Default='' Current='' Enabled='true' />
<Value ID='Cons_Assist_Brake_Flag' Default='1' Current='' Enabled='true' />
<Value ID='Cons_Assist_Brake_Polarity' Default='' Current='' Enabled='true' />
<Value ID='Cons_Assist_Gauge_Filter' Default='' Current='' Enabled='true' Min='0' Max='8' />
<Value ID='Cons_Rev_Sw' Default='' Current='' Enabled='true' />
<Value ID='Cons_Assist_Gauge_Gain' Default='' Current='' Enabled='true' Min='0.1' Max='4.0' Factor='0.1' />
<Value ID='Cons_Assist_Gain_A' Default='' Current='' Enabled='true' Min='0.1' Max='4.0' Factor='0.1' />
<Value ID='Cons_Assist_Gain_B' Default='' Current='' Enabled='true' Min='0.1' Max='25.0' Factor='0.1' />
<Value ID='Cons_Sn_Type' Default='' Current='' Enabled='true' />
<Value ID='Cons_Preference_Region' Default='' Current='' Enabled='true' />
<Value ID='Cons_Preference_Configbit_0' Default='' Current='' Enabled='true' />
<Value ID='Cons_Throttle_Enabled_Boost_Display' Default='' Current='' Enabled='true' />
<Value ID='Cons_Assist_Autoregen_Flag' Default='' Current='' Enabled='true' />
<Value ID='Cons_Rev_Sub' Default='' Current='' Enabled='true' />
<Value ID='Cons_Preference_Light_Button_Mode' Default='' Current='' Enabled='true' />
<Value ID='Cons_Preference_Expertmode' Default='' Current='' Enabled='true' />
<Value ID='Cons_Assist_Level_1' Default='' Current='' Enabled='true' UnitType='%' Factor='1.5625'/>
<Value ID='Cons_Assist_Level_2' Default='' Current='' Enabled='true' UnitType='%' Factor='1.5625'/>
<Value ID='Cons_Assist_Level_3' Default='' Current='' Enabled='true' UnitType='%' Factor='1.5625'/>
<Value ID='Cons_Assist_Level_4' Default='' Current='' Enabled='true' UnitType='%' Factor='1.5625'/>
<Value ID='Cons_Assist_Initlevel' Default='' Current='' Enabled='true' Min='0' Max='4' />
<Value ID='Cons_Preference_Codes_Hihi' Default='' Current='' Enabled='true' />
<Value ID='Cons_Preference_Codes_Hilo' Default='' Current='' Enabled='true' />
<Value ID='Cons_Preference_Codes_Lohi' Default='' Current='' Enabled='true' />
<Value ID='Cons_Preference_Codes_Lolo' Default='' Current='' Enabled='true' />
<Value ID='Cons_Preference_Codesrw_Hihi' Default='' Current='' Enabled='true' />
<Value ID='Cons_Preference_Codesrw_Hilo' Default='' Current='' Enabled='true' />
<Value ID='Cons_Preference_Codesrw_Lohi' Default='' Current='' Enabled='true' />
<Value ID='Cons_Preference_Codesrw_Lolo' Default='' Current='' Enabled='true' />
<Value ID='Cons_Sn_Oem_Hi' Default='' Current='' Enabled='true' />
<Value ID='Cons_Sn_Oem_Lo' Default='' Current='' Enabled='true' />
<Value ID='Cons_Preference_Throttle_Mode' Default='' Current='' Enabled='true' />
<Value ID='Cons_Assist_Speedgain' Default='' Current='' Enabled='true' Factor='0.1' />
<Value ID='Cons_Sn_Product_Hi' Default='' Current='' Enabled='true' />
<Value ID='Cons_Sn_Product_Lo' Default='' Current='' Enabled='true' />
<Value ID='Cons_Throttle_Boost_Triggerlevel' Default='' Current='' Enabled='true' Min='1.5' Max='50.0' UnitType='%' Factor='1.5625' />
<Value ID='Cons_Preference_Flip_Side' Default='' Current='' Enabled='true' />
<Value ID='Cons_Config_Testmode' Default='' Current='' Enabled='true' />
<Value ID='Cons_Config_Testmode_Hw14' Default='' Current='' Enabled='true' />
<Value ID='Cons_Assist_Mountain_Cap' Default='' Current='' Enabled='true' UnitType='%' Factor='1.5625' />
<Value ID='Cons_Config_Last_Mode' Default='' Current='' Enabled='true' />
<Value ID='Cons_Config_Last_Mode_On' Default='' Current='' Enabled='true' />
<Value ID='Cons_Config_Last_Mode_Off' Default='' Current='' Enabled='true' />
<Value ID='Cons_Rev_Hw' Default='' Current='' Enabled='true' />
<Value ID='Cons_Status_Slave' Default='' Current='' Enabled='true' />
<Value ID='Cons_Throttle_Raw_Hi' Default='' Current='' Enabled='true' />
<Value ID='Cons_Throttle_Raw_Lo' Default='' Current='' Enabled='true' />
<Value ID='Cons_Throttle_Position' Default='' Current='' Enabled='true' Factor='1.5625'/>
<Value ID='Cons_Assist_Level_Rekuperation_3' Default='' Current='' Enabled='true' UnitType='%' Factor='1.5625'/>
<Value ID='Cons_Assist_Level_Rekuperation_4' Default='' Current='' Enabled='true' UnitType='%' Factor='1.5625'/>
<Value ID='Cons_Config_Service_Timestamp_Hi' Default='' Current='' Enabled='true' />
<Value ID='Cons_Config_Service_Zimestamp_Lo' Default='' Current='' Enabled='true' />
<Value ID='Cons_Config_Service_Distance_Hi' Default='' Current='' Enabled='true' />
<Value ID='Cons_Config_Service_Distance_Lo' Default='' Current='' Enabled='true' />
<Value ID='Cons_Assist_Level_Rekuperation_1' Default='' Current='' Enabled='true' UnitType='%' Factor='1.5625'/>
<Value ID='Cons_Assist_Level_Rekuperation_2' Default='' Current='' Enabled='true' UnitType='%' Factor='1.5625'/>
</Device>
<Device Type="Battery">
</Device>
<Device Type="Motor">
</Device>
<Device Type="Sensor">
</Device>
</Bike>

129
doc/dummy.c Normal file
View File

@@ -0,0 +1,129 @@
hwVersion = getValue(CONSOLE, CONSOLE_REF_HW);
" assistance level ........: %d"
getValue(CONSOLE, CONSOLE_ASSIST_INITLEVEL)
printf( " part number .............: %05d" ((getValue(CONSOLE, CONSOLE_SN_PN_HI) << 8) + getValue(CONSOLE, CONSOLE_SN_PN_LO)),
" item number .............: %05d" ((getValue(CONSOLE, CONSOLE_SN_ITEM_HI) << 8) + getValue(CONSOLE, CONSOLE_SN_ITEM_LO))
/* ASSIST speed limit */
max limit enabled sl = getValue(CONSOLE, CONSOLE_ASSIST_MAXSPEEDFLAG) == 0 ? "no" : "yes";
speed limit speedLimit = ((getValue(CONSOLE, CONSOLE_ASSIST_MAXSPEED_HI) << 8) + getValue(CONSOLE, CONSOLE_ASSIST_MAXSPEED_LO)) / (double)10;
/* MIN speed limit */
sl = getValue(CONSOLE, CONSOLE_ASSIST_MINSPEEDFLAG) == 0 ? "no" : "yes";
speedLimit = (getValue(CONSOLE, CONSOLE_ASSIST_MINSPEED)) / (double)10;
/* THROTTLE speed limit */
" throttle limit enabled ..: %sl = getValue(CONSOLE, CONSOLE_THROTTLE_MAXSPEEDFLAG) == 0 ? "no" : "yes";
" throttle limit enabled ..: %s" = ((getValue(CONSOLE, CONSOLE_THROTTLE_MAXSPEED_HI) << 8) + getValue(CONSOLE, CONSOLE_THROTTLE_MAXSPEED_LO)) / (double)10;
printf( " throttle limit enabled ..: %s" _NL
" throttle speed limit ....: %0.2f Km/h" _NL _NL, sl, speedLimit);
/* WHEEL CIRCUMFERENCE */
wheel circumference .....: %d mm" = (getValue(CONSOLE, CONSOLE_GEOMETRY_CIRC_HI) << 8) + getValue(CONSOLE, CONSOLE_GEOMETRY_CIRC_LO);
" mountain cap ............: %0.2f%%" _NL,
(getValue(CONSOLE, CONSOLE_ASSIST_MOUNTAINCAP) * 1.5625));
printf( " odo .....................: %0.2f Km" _NL _NL,
((getValue(CONSOLE, CONSOLE_STATS_ODO_1) << 24) +
(getValue(CONSOLE, CONSOLE_STATS_ODO_2) << 16) +
(getValue(CONSOLE, CONSOLE_STATS_ODO_3) << 8) +
(getValue(CONSOLE, CONSOLE_STATS_ODO_4))) / (double)10
);
}
hwVersion = getValue(BATTERY, BATTERY_REF_HW);
if (hwVersion == 0)
printf("Battery not responding" _NL _NL);
else {
printf( "Battery information:" _NL
" hardware version ........: %02d" _NL
" software version ........: %02d" _NL,
hwVersion, getValue(BATTERY, BATTERY_REF_SW)
);
if (!gNoSerialNumbers)
printf( " part number .............: %05d" _NL
" item number .............: %05d" _NL,
((getValue(BATTERY, BATTERY_SN_PN_HI) << 8) + getValue(BATTERY, BATTERY_SN_PN_LO)),
((getValue(BATTERY, BATTERY_SN_ITEM_HI) << 8) + getValue(BATTERY, BATTERY_SN_ITEM_LO))
);
printf( " voltage .................: %0.2fV" _NL
" battery level ...........: %0.2f%%" _NL
" maximum voltage .........: %0.2f%%" _NL
" minimum voltage .........: %0.2f%%" _NL
" mean voltage ............: %0.2f%%" _NL
" resets ..................: %0d" _NL
" ggjrCalib ...............: %0d" _NL
" vctrlShorts .............: %0d" _NL
" lmd .....................: %0.2fAh" _NL
" cell capacity ...........: %0.2fAh" _NL _NL,
((getValue(BATTERY, BATTERY_STATUS_VBATT_HI) << 8) + getValue(BATTERY, BATTERY_STATUS_VBATT_LO)) * 0.001,
(getValue(BATTERY, BATTERY_STATUS_LEVEL) * 6.6667),
getVoltageValue(BATTERY, BATTERY_STATS_VBATTMAX),
getVoltageValue(BATTERY, BATTERY_STATS_VBATTMIN),
getVoltageValue(BATTERY, BATTERY_STATS_VBATTMEAN),
(getValue(BATTERY, BATTERY_STATS_RESET_HI) << 8) + getValue(BATTERY, BATTERY_STATS_RESET_LO),
getValue(BATTERY, BATTERY_STSTS_GGJSRCALIB),
getValue(BATTERY, BATTERY_STSTS_VCTRLSHORTS),
((getValue(BATTERY, BATTERY_STATS_LMD_HI) << 8) + getValue(BATTERY, BATTERY_STATS_LMD_LO)) * 0.002142,
((getValue(BATTERY, BATTERY_CONFIG_CELLCAPACITY_HI) << 8) + getValue(BATTERY, BATTERY_CONFIG_CELLCAPACITY_LO)) * 0.001
);
printf( " charge time worst .......: %0d" _NL
" charge time mean ........: %0d" _NL
" charge cycles ...........: %0d" _NL
" full charge cycles ......: %0d" _NL
" power cycles ............: %0d" _NL
" battery temp max ........: %0d" _NL
" battery temp min ........: %0d" _NL _NL,
(getValue(BATTERY, BATTERY_STATS_CHARGETIMEWORST_HI) << 8) + getValue(BATTERY, BATTERY_STATS_CHARGETIMEWORST_LO),
(getValue(BATTERY, BATTERY_STATS_CHARGETIMEMEAN_HI) << 8) + getValue(BATTERY, BATTERY_STATS_CHARGETIMEMEAN_LO),
(getValue(BATTERY, BATTERY_STATS_BATTCYCLES_HI) << 8) + getValue(BATTERY, BATTERY_STATS_BATTCYCLES_LO),
(getValue(BATTERY, BATTERY_STATS_BATTFULLCYCLES_HI) << 8) + getValue(BATTERY, BATTERY_STATS_BATTFULLCYCLES_LO),
(getValue(BATTERY, BATTERY_STATS_POWERCYCLES_HI) << 8) + getValue(BATTERY, BATTERY_STATS_POWERCYCLES_HI),
getValue(BATTERY, BATTERY_STATS_TBATTMAX),
getValue(BATTERY, BATTERY_STATS_TBATTMIN)
);
printChargeStats();
if (hwVersion >= 60)
printBatteryStats();
else
printf(" no battery details supported by battery hardware #%d" _NL _NL, hwVersion);
}
hwVersion = getValue(MOTOR, MOTOR_REF_HW);
if (hwVersion == 0)
printf("Motor not responding" _NL _NL);
else {
printf( "Motor information:" _NL
" hardware version ........: %02d" _NL
" software version ........: %02d" _NL
" temperature .............: %02d" _DEGREE_SIGN "C"_NL
" speed limit .............: %02d Km/h" _NL,
hwVersion, getValue(MOTOR, MOTOR_REF_SW),
getValue(MOTOR, MOTOR_REALTIME_TEMP),
getValue(MOTOR, MOTOR_ASSIST_MAXSPEED)
);
wheelCirc = (getValue(MOTOR, MOTOR_GEOMETRY_CIRC_HI) << 8) + getValue(MOTOR, MOTOR_GEOMETRY_CIRC_LO);
printf( " wheel circumference .....: %d mm" _NL _NL, wheelCirc);
if (!gNoSerialNumbers)
printf( " part number .............: %05d" _NL
" item number .............: %05d" _NL _NL,
((getValue(MOTOR, MOTOR_SN_PN_HI) << 8) + getValue(MOTOR, MOTOR_SN_PN_LO)),
((getValue(MOTOR, MOTOR_SN_ITEM_HI) << 8) + getValue(MOTOR, MOTOR_SN_ITEM_LO))
);
}
}

BIN
doc/~$_BikeInformation.docx Normal file

Binary file not shown.

Binary file not shown.

View File

@@ -30,6 +30,7 @@
#include <QApplication> #include <QApplication>
#include <QMetaEnum> #include <QMetaEnum>
#include <QFile>
// main.cpp // main.cpp
#include <QCoreApplication> #include <QCoreApplication>
@@ -65,6 +66,22 @@ if (ok) {
#include <QThread> #include <QThread>
bool setApplicationStyleSheet( QAnyStringView path )
{
QFile styleFile( path.toString() );
if (styleFile.open(QIODevice::ReadOnly | QIODevice::Text))
{
QString style = styleFile.readAll();
qApp->setStyleSheet(style);
styleFile.close();
return true;
}
qWarning() << "Konnte Stylesheet nicht laden:" << styleFile.errorString();
return true;
}
// 2. Datei öffnen und lesen
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
auto x = BC::ID::Motor_Status_Main; auto x = BC::ID::Motor_Status_Main;
@@ -80,8 +97,7 @@ int main(int argc, char *argv[])
QApplication app(argc, argv); QApplication app(argc, argv);
BCMainWindow w; setApplicationStyleSheet( ":/BionxControl.qss"_L1 );
w.show();
QMetaEnum metaEnum = QMetaEnum::fromType<BC::ID>(); QMetaEnum metaEnum = QMetaEnum::fromType<BC::ID>();
@@ -103,6 +119,9 @@ int main(int argc, char *argv[])
//myMgr.loadXml(); //myMgr.loadXml();
BCMainWindow w;
w.show();
return app.exec(); return app.exec();
} }