bool listen(datum::time_point Time_, bool Err_, const std::string& Str_)override{
					if(Str_.size() == 0) return true;

					// Batt read ON
					if(static_cast<unsigned char>(Str_[0]) == 0x10){
						if(Str_.size() != 1) return true;
						DataMode.set_pic(true);
						return false;
						// Batt read OFF
					} else if(static_cast<unsigned char>(Str_[0]) == 0x11){
						if(Str_.size() != 1) return true;
						DataMode.set_pic(false);
						return false;
						// Batt data coming
					} else if(static_cast<unsigned char>(Str_[0]) == 0x00){
						if(Str_.size() != BatteryNum_ * 2 + 1) return true;

						this_data_t Data;
						Data.time() = Time_;
						unsigned char i = 0;
						for(auto Itr = Data.begin(); Itr != Data.end(); ++Itr){
							(*Itr) = toVoltage(static_cast<unsigned char>(Str_[2 * i + 1]), static_cast<unsigned char>(Str_[2 * i + 2]));
						}

						//新データ シグナル発信
						signal_newData(Data);

						return false;
					}
					return true;
				}
Exemplo n.º 2
0
//获取电量0-100%
u8 getBatteryValue() {
	u32 v = toVoltage(ADC.getADCValue(1));
	v = RV(v);
	if (v < Lbattery)return 0;
	if (v > Hbattery)v = Hbattery;
	return (v - Lbattery) * 100 / (Hbattery - Lbattery);
}