Python OBD2 読み取りプログラムから正しい速度を得るのに少し問題があります。動かなくても13時のまま。コードは git ハブの pi2go に基づいています。ただし、16 進数から浮動小数点数に変換されると、speed_float 値は常に 13 になります。
def speed(self, oldValues):
""" Gets the speed of the vehicle """
if self.serialIO is None:
return "Serial IO not setup."
self.serialWrite("0D")
speed_list = self.serialRead()
if speed_list == -1 or speed_list == 0:
print("There is an issue with reading the speed of the vehicle.")
return 0
else:
speed_hex = speed_list[0]
speed_float = float(int("0x" + speed_hex, 0))
print("Speed float = " + str(speed_float))
if speedFormat == "mph":
# display speed in miles per hour
#speed_float = speed_float * 0.621371
speed_float = speed_float * 1.609 - 20.917 #made it go to zero by subtracting 20.917
print("mph = " + str(speed_float))
elif speedFormat == "kph":
# display speed in kilometers per hour
print("kph = " + str(speed_float))
return speed_float
else:
# error
print("Configuration is wrong. Please check config.py for speedFormat")
return speed_float
mph値をゼロにした後、ゼロのままです。それは決して変わらない。上記の式は、8.0 のようなものになります。私の問題は、実際の速度をどのように取得するかです。