不重复的连续流列表
Continuous stream to list with no repeats
我有一个数据流,我想将其转换为 list/map 键值对。我想将每个“故障”与相应的“严重性”配对并将这些对显示为列表。我的问题是我的列表不断增长,我无法检查要添加的值是否已经在列表中。
代码:
List<int> severityList = [0];
List faultItems = [0];
var lastFault;
Widget _buildFaultOutput(snapshot) {
//New growable lists with 0 set as the first value to prevent error
var msg = snapshot.data;
print(msg);
var faultList = msg["fault_list"];
print("faultList: $faultList");
var numberOfFaults = faultList.length;
print("Number of faults: $numberOfFaults");
if (faultList.length == 0) {
return Text("None");
} else {
int i = 0;
for (var i = 0; i < faultList.length; i++) {
// print(faults);
// print("i: $i");
var faults = faultList[i];
var motorCurrent = faults["fault"];
var severity = faults["severity"];
if (motorCurrent != lastFault) {
faultItems.insert(i, motorCurrent);
severityList.insert(i, severity);
print('added ${faultItems[i]}, severity: ${severityList[i]}');
lastFault = motorCurrent;
} else {}
//TODO: add list of faults with key/value pairs (fault:severity): Text of "motorCurrent" in color of severity
//TODO: Print each individual item from list with severity
// return Text(
// "Number of Faults: ${faultList.length}\n$faultItems\nSeverity: ${severityList[i]}");
}
}
return Text(
"Number of Faults: ${faultList.length}\n$faultItems\nSeverity: $severityList");
}
示例数据:
I/flutter (21022): {fault_list: [{fault: voltage fault, process_name: BetaFirmware::bmsVoltageFaultCallback(), severity: 0, time_stamp: {secs: 1603209904, nsecs: 581818990}}, {fault: motor temp: 2, process_name: BetaFirmwareBase::checkMotorSafety(), severity: 2, time_stamp: {secs: 1603209905, nsecs: 575800930}}, {fault: motor temp: 5, process_name: BetaFirmwareBase::checkMotorSafety(), severity: 2, time_stamp: {secs: 1603209905, nsecs: 575800930}}, {fault: motor temp: 6, process_name: BetaFirmwareBase::checkMotorSafety(), severity: 2, time_stamp: {secs: 1603209905, nsecs: 620800930}}, {fault: motor temp: 3, process_name: BetaFirmwareBase::checkMotorSafety(), severity: 2, time_stamp: {secs: 1603209905, nsecs: 620800930}}, {fault: motor temp: 9, process_name: BetaFirmwareBase::checkMotorSafety(), severity: 2, time_stamp: {secs: 1603209905, nsecs: 620800930}}, {fault: motor temp: 4, process_name: BetaFirmwareBase::checkMotorSafety(), severity: 2, time_stamp: {secs: 1603209905, nsecs: 620800930}}, {fault: motor temp: 7, process_na
I/flutter (21022): faultList: [{fault: voltage fault, process_name: BetaFirmware::bmsVoltageFaultCallback(), severity: 0, time_stamp: {secs: 1603209904, nsecs: 581818990}}, {fault: motor temp: 2, process_name: BetaFirmwareBase::checkMotorSafety(), severity: 2, time_stamp: {secs: 1603209905, nsecs: 575800930}}, {fault: motor temp: 5, process_name: BetaFirmwareBase::checkMotorSafety(), severity: 2, time_stamp: {secs: 1603209905, nsecs: 575800930}}, {fault: motor temp: 6,
在方法 _buildFaultOutput(snapshot)
的开头添加 severityList.clear() 和 faultList.clear() 行
我有一个数据流,我想将其转换为 list/map 键值对。我想将每个“故障”与相应的“严重性”配对并将这些对显示为列表。我的问题是我的列表不断增长,我无法检查要添加的值是否已经在列表中。
代码:
List<int> severityList = [0];
List faultItems = [0];
var lastFault;
Widget _buildFaultOutput(snapshot) {
//New growable lists with 0 set as the first value to prevent error
var msg = snapshot.data;
print(msg);
var faultList = msg["fault_list"];
print("faultList: $faultList");
var numberOfFaults = faultList.length;
print("Number of faults: $numberOfFaults");
if (faultList.length == 0) {
return Text("None");
} else {
int i = 0;
for (var i = 0; i < faultList.length; i++) {
// print(faults);
// print("i: $i");
var faults = faultList[i];
var motorCurrent = faults["fault"];
var severity = faults["severity"];
if (motorCurrent != lastFault) {
faultItems.insert(i, motorCurrent);
severityList.insert(i, severity);
print('added ${faultItems[i]}, severity: ${severityList[i]}');
lastFault = motorCurrent;
} else {}
//TODO: add list of faults with key/value pairs (fault:severity): Text of "motorCurrent" in color of severity
//TODO: Print each individual item from list with severity
// return Text(
// "Number of Faults: ${faultList.length}\n$faultItems\nSeverity: ${severityList[i]}");
}
}
return Text(
"Number of Faults: ${faultList.length}\n$faultItems\nSeverity: $severityList");
}
示例数据:
I/flutter (21022): {fault_list: [{fault: voltage fault, process_name: BetaFirmware::bmsVoltageFaultCallback(), severity: 0, time_stamp: {secs: 1603209904, nsecs: 581818990}}, {fault: motor temp: 2, process_name: BetaFirmwareBase::checkMotorSafety(), severity: 2, time_stamp: {secs: 1603209905, nsecs: 575800930}}, {fault: motor temp: 5, process_name: BetaFirmwareBase::checkMotorSafety(), severity: 2, time_stamp: {secs: 1603209905, nsecs: 575800930}}, {fault: motor temp: 6, process_name: BetaFirmwareBase::checkMotorSafety(), severity: 2, time_stamp: {secs: 1603209905, nsecs: 620800930}}, {fault: motor temp: 3, process_name: BetaFirmwareBase::checkMotorSafety(), severity: 2, time_stamp: {secs: 1603209905, nsecs: 620800930}}, {fault: motor temp: 9, process_name: BetaFirmwareBase::checkMotorSafety(), severity: 2, time_stamp: {secs: 1603209905, nsecs: 620800930}}, {fault: motor temp: 4, process_name: BetaFirmwareBase::checkMotorSafety(), severity: 2, time_stamp: {secs: 1603209905, nsecs: 620800930}}, {fault: motor temp: 7, process_na
I/flutter (21022): faultList: [{fault: voltage fault, process_name: BetaFirmware::bmsVoltageFaultCallback(), severity: 0, time_stamp: {secs: 1603209904, nsecs: 581818990}}, {fault: motor temp: 2, process_name: BetaFirmwareBase::checkMotorSafety(), severity: 2, time_stamp: {secs: 1603209905, nsecs: 575800930}}, {fault: motor temp: 5, process_name: BetaFirmwareBase::checkMotorSafety(), severity: 2, time_stamp: {secs: 1603209905, nsecs: 575800930}}, {fault: motor temp: 6,
在方法 _buildFaultOutput(snapshot)
的开头添加 severityList.clear() 和 faultList.clear() 行