Seite 1 von 1
Problem mit dem Kombisensor Rundungsproblem Robo Pro Coding
Verfasst: 19 Mai 2024, 08:03
von fishfriend
Hallo...
Ich hab einen Kombisensor 6-pol mir gekauft und wolte ihn testen.
Dazu hab ich das ft-Programm vom TXT 4.0 / test_combi_sensor genommen.
Programm startet, scheinbar wird auch der Sensor erkannt,
aber es kommt überraschenderweise die Fehlermeldung:
TypeError: type NoneType doesn't define __round__ method
Fehlt da ein Import oder ist der/das verloren gegangen?
Klingt erstmal blöd aber läuft in einem anderen Programm eine Rundung nicht mehr, die vorher lief?
Kann das jemand mal von euch testen?
Besten Dank
Mit freundlichen Grüßen
Holger
Re: Problem mit dem Kombisensor Rundungsproblem Robo Pro Coding
Verfasst: 19 Mai 2024, 15:53
von vleeuwen
It means that the the program tries to take the round() from a variable that has not yet been assigned to a value.
====================================================================================
type NoneType doesn't define __round__ method [duplicate]
https://stackoverflow.com/questions/658 ... und-method
See also:
https://www.geeksforgeeks.org/round-function-python/
https://docs.python.org/3.5/library/fun ... html#round
https://docs.python.org/3.5/library/typing.html
In the Python code you will find something like:
Code: Alles auswählen
varA: float | NoneType= None # not initializd
res: int | float = round(varA, 1) # this gives: type NoneType doesn't define __round__ method
In Python type checking is optional.
This code is not protected with a fine Exception handeling.
Re: Problem mit dem Kombisensor Rundungsproblem Robo Pro Coding
Verfasst: 20 Mai 2024, 21:26
von rbudding
Hi Holger,
Dazu hab ich auch das ft-Programm vom TXT 4.0 / test_combi_sensor genommen.
--> FTexamples --> Txt 4.0 --> test_combi_sensor_6pin
Code: Alles auswählen
Program starts ...
TypeError: init_accelerometer() takes from 1 to 3 positional arguments but 4 were given
Program finished.
Ich denke, das ist das Gleiche... Grüß Richard
Re: Problem mit dem Kombisensor Rundungsproblem Robo Pro Coding
Verfasst: 20 Mai 2024, 21:41
von rbudding
Nur ein
leerer Init des Sensors gibt keinen Fehler... es liegt also nicht am Init in der Bibliothek.
aber
Code: Alles auswählen
bla = TXT_M_I2C_1_combined_sensor_6pin.get_rotation_x()
print(bla)
print(round(bla, 4))
while True:
pass
Code: Alles auswählen
Program starts ...
None
TypeError: type NoneType doesn't define __round__ method
Program finished.
Re: Problem mit dem Kombisensor Rundungsproblem Robo Pro Coding
Verfasst: 20 Mai 2024, 21:55
von rbudding
bin schon etwas weiter gekommen...
Code: Alles auswählen
from lib.controller import *
TXT_M_I2C_1_combined_sensor_6pin.init_gyrometer(125, 12, False)
Dieser Code gibt schon einen Fehler.
Code: Alles auswählen
Program starts ...
TypeError: init_gyrometer() takes from 1 to 3 positional arguments but 4 were given
Program finished.
Ich glaube, da ist ein bug.
Re: Problem mit dem Kombisensor Rundungsproblem Robo Pro Coding
Verfasst: 20 Mai 2024, 22:00
von rbudding
It works!
Code: Alles auswählen
TXT_M_I2C_1_combined_sensor_6pin.init_magnetometer(2)
while not (TXT_M_I2C_1_combined_sensor_6pin.get_magnetic_field_x() == 0):
print(round(TXT_M_I2C_1_combined_sensor_6pin.get_magnetic_field_x(), 2))
time.sleep(1)
Program starts ...
18.56
19.16
19.05
19.41