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