1.9.0-BatteryManager电池充电状态信息引入完成

This commit is contained in:
2026-10-11 17:19:54 +08:00
parent 4829cd1da2
commit 8be4ff7e40
6 changed files with 259 additions and 45 deletions
+56 -17
View File
@@ -10,6 +10,9 @@ class ChargeDetailPage extends StatelessWidget {
final double volt;
final double curr;
final int? wiredLevel;
final double bmPower;
final double bmVolt;
final double bmCurr;
const ChargeDetailPage({
super.key,
@@ -19,6 +22,9 @@ class ChargeDetailPage extends StatelessWidget {
required this.volt,
required this.curr,
this.wiredLevel,
this.bmPower = 0,
this.bmVolt = 0,
this.bmCurr = 0,
});
String _getProtocolDisplay() {
@@ -62,18 +68,31 @@ class ChargeDetailPage extends StatelessWidget {
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
// ========== BMS 来源 ==========
_buildSectionTitle(context, 'BMS 日志'),
_buildTextRow(context, '协议', _getProtocolDisplay()),
const Divider(),
if (!isWireless) ...[
_buildTextRow(context, '标定档位', _getRequestedDisplay()),
_buildTextRow(
context,
'标定档位',
_getRequestedDisplay(),
valueFont: 'Flyme',
),
const Divider(),
_buildTextRow(context, '实际功率', _getActualDisplay()),
_buildTextRow(
context,
'实际功率',
_getActualDisplay(),
valueFont: 'Flyme',
),
const Divider(),
] else ...[
_buildTextRow(
context,
'功率',
ChargeUtils.getDisplayPowerWireless(power),
valueFont: 'Flyme',
),
const Divider(),
],
@@ -81,20 +100,19 @@ class ChargeDetailPage extends StatelessWidget {
const Divider(),
_buildDetailRow(context, '电流', curr, 'A'),
const Divider(),
if (isWireless) _buildTextRow(context, '类型', '无线'),
if (!isWireless && wiredLevel == null)
_buildTextRow(context, '档位', '自动'),
const SizedBox(height: 24),
// ========== BM 来源 ==========
_buildSectionTitle(context, 'BatteryManager(电池端)'),
_buildDetailRow(context, '电压', bmVolt, 'V'),
const Divider(),
_buildDetailRow(context, '电流', bmCurr, 'A'),
const Divider(),
bmPower > 0
? _buildDetailRow(context, '功率', bmPower, 'W')
: _buildTextRow(context, '功率', '读取中...'),
const Spacer(),
Center(
child: Text(
'数据来自 BMS 实时日志',
style: TextStyle(
fontFamily: 'HarmonyOS_Sans_SC',
fontSize: 12,
color: c.textTertiary,
),
),
),
],
),
),
@@ -102,7 +120,28 @@ class ChargeDetailPage extends StatelessWidget {
);
}
Widget _buildTextRow(BuildContext context, String label, String value) {
Widget _buildSectionTitle(BuildContext context, String title) {
final c = context.colors;
return Padding(
padding: const EdgeInsets.only(bottom: 8),
child: Text(
title,
style: TextStyle(
fontFamily: 'HarmonyOS_Sans_SC',
fontSize: 13,
fontWeight: FontWeight.w600,
color: c.textTertiary,
),
),
);
}
Widget _buildTextRow(
BuildContext context,
String label,
String value, {
String valueFont = 'HarmonyOS_Sans_SC',
}) {
final c = context.colors;
return Padding(
padding: const EdgeInsets.symmetric(vertical: 6.0),
@@ -121,7 +160,7 @@ class ChargeDetailPage extends StatelessWidget {
Text(
value,
style: TextStyle(
fontFamily: 'HarmonyOS_Sans_SC',
fontFamily: valueFont,
fontSize: 16,
fontWeight: FontWeight.w500,
color: c.textPrimary,