Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Handy - Wahl des Sensors (https://www.delphipraxis.net/193421-handy-wahl-des-sensors.html)

derseitzer 27. Jul 2017 20:40

Handy - Wahl des Sensors
 
Hallo Leute,

Ich habe schon mehrmals hier die Frage gestellt aber leider noch keine Antwort bekommen:
Ich habe ein Sasmsung S7 Edge und ich habe mehrere Apps installiert um zu schauen welche Sensoren sich in meinem handy befinden.
Unter diesen Sensoren befinden sich ein Motionsensor (Gyrometer3D) und ein Orientationsensor (Inclinometer3D).

Mein Ziel: Vom Inclinometer3D Werte bekommen die nicht 0 sind (denn ich bekomme bis jetzt nur 0-Werte zurück).
Wofür?: Ich mmöchte eine 3D Objekt mit den Sensoren drehen und dies ist mit einem Motionsensor nicht so bequem, wie mit einem Orientationsensor.

Das Gyrometer3D funktioniert sehr gut hier der Code:
Code:
var
Sensormanager: TSensorManager;
Sensors: TSensorArray;
Sensor: TCustomSensor;
begin
//Sphere1.MaterialSource:= Menu.TextureMaterialSource1;
Sensormanager := TSensormanager.Current;
Sensormanager.Activate;
Sensors:= Sensormanager.GetSensorsByCategory(TSensorCategory.Motion);
for Sensor in Sensors do
  if TCustomMotionSensor(Sensor).SensorType = TMotionSensortype.Gyrometer3D then begin
  FSensor:=TCustomMotionsensor(Sensor);
  end;
FSensor.Start;
mit der globalen Variable: FSensor: TCustomMotionSensor;

Nun möchte ich das gleiche mit dem Inclinometer3D machen also hab ich den Code kurzer Hand umgeschrieben in:
Code:
var
Sensormanager: TSensorManager;
Sensors: TSensorArray;
Sensor: TCustomSensor;
begin
//Sphere1.MaterialSource:= Menu.TextureMaterialSource1;
Sensormanager := TSensormanager.Current;
Sensormanager.Activate;
Sensors:= Sensormanager.GetSensorsByCategory(TSensorCategory.Orientation);
for Sensor in Sensors do
  if TCustomOrientationSensor(Sensor).SensorType = TOrientationSensortype.Inclinometer3D then begin
  F2Sensor:=TCustomOrientationsensor(Sensor);
  end;
F2Sensor.Start;
mit globaler Variable F2Sensor: TCustomOrientationSensor;

Leider gibt mir das Inclinometer3D bei der Abfrage
Label1.Text := FloatToStr(F2Sensor.TiltX);

nur 0 zurück, egal wie ich das handy hebe und neige.. aht jemand eine Idee :/?

arnof 27. Jul 2017 22:25

AW: Handy - Wahl des Sensors
 
es gibt bei den Demos die Sensordemo, schau damit mal nach ob der Sensor bei deinem Handy verfügbar ist und ob dort werte zurückkommen.

Ydobon 28. Jul 2017 10:06

AW: Handy - Wahl des Sensors
 
Ich habe kein S7, aber bei meinem Handy funktioniert der Code ohne Änderungen. Entweder hat Samsung gespart oder da ist etwas nicht so, wie es sein soll.
Was sagt das S7 denn dazu?
Delphi-Quellcode:
var sensenmann: TSensorManager;
    Sensor: TCustomSensor;
    max, i: Integer;
begin
  sensenmann:=TSensorManager.Current;
  sensenmann.Activate;
  max:=sensenmann.Count;
  for i:=0 to max-1 do
  begin
    Sensor:=Sensenmann.Sensors[i];
    Memo1.Lines.Add(GetEnumName(TypeInfo(TSensorCategory), Ord(Sensor.Category)));
    if Sensor.Category = TSensorCategory.Orientation then
       Memo1.Lines.Add('- '+GetEnumName(TypeInfo(TOrientationSensorType),
                       Ord(TCustomOrientationSensor(Sensor).SensorType)));
  end;
  sensenmann.Deactivate;
end;

Der schöne Günther 28. Jul 2017 10:14

AW: Handy - Wahl des Sensors
 
Bei diesem verwirrenden Raussuchen von Sensoren aus einem Pool muss man aufpassen, du nimmst gleich den ersten dessen
Delphi-Quellcode:
SensorType
dir gefällt. Oft gibt es mehrere Sensoren des gleichen Typs :warn:.

derseitzer 28. Jul 2017 13:16

AW: Handy - Wahl des Sensors
 
Ich habe gerade das gleiche Problem nochmal hier auf dem Forum gefunden - siehe: http://www.delphipraxis.net/177204-x...ml#post1377703

Hier wurde es auch nicht gelöst :/
ich bekomme einfach nur Nullen zurück. Sensoren sind da aber leider nur Nullen als Werte.. sehr schade

Ydobon 28. Jul 2017 13:27

AW: Handy - Wahl des Sensors
 
Ist in der Unit System.TypInfo (F1 z.B.).

derseitzer 28. Jul 2017 13:57

AW: Handy - Wahl des Sensors
 
okay ja da steht bei mir unter anderem: orientation: - inclinometer3D :)

derseitzer 28. Jul 2017 17:43

AW: Handy - Wahl des Sensors
 
Kann nicht wahr sein, dass das nicht funktioniert :(

Rollo62 28. Jul 2017 18:30

AW: Handy - Wahl des Sensors
 
Hängt vielleicht an der Andridversion. Bei mir hat es mal funktioniert mal nicht.
Könntest als alternative inclinometer aus acceleration selber berechnen

derseitzer 28. Jul 2017 19:44

AW: Handy - Wahl des Sensors
 
Mein handy sollte so ziemlich auf dem neuesten Stand der Dinge sein, deswegen glaube ich nicht daran, dass es an der Version liegen könnte.
Den Wert aus dem Acceleration zu berechnen funktioniert auch nicht, da er mir ja nur Bewegungswerte gibt... Somit kann ich zum Beispiel ganz am Anfang garnicht sagen, wie das Handy jetzt steht. Beim Inclinometer habe ich Anfangswerte und beim bewegungsmelder eben nicht, der gibt mir ja nur Bewegungen :(

Rollo62 29. Jul 2017 09:24

AW: Handy - Wahl des Sensors
 
https://cache.freescale.com/files/se...ote/AN3461.pdf

So sollte es gehen.

Rollo

derseitzer 29. Jul 2017 13:29

AW: Handy - Wahl des Sensors
 
Ja, aber leider bringt mir die Theorie nicht wirklich viel, wenn ich nur Nullen von diesen Tilt-Werten bekomme >.<
Verstehe das nicht. Gibt es überhaupt jemanden, der mal dieses Inclinometer3D in Delphi programmiert hat und bei dem das funktioniert?:/ hab so langsam das Gefühl, dass da was mit Delphi nicht stimmt :(

derseitzer 30. Jul 2017 18:51

AW: Handy - Wahl des Sensors
 
immernoch keiner eine Antowort? >.<

Rollo62 30. Jul 2017 20:40

AW: Handy - Wahl des Sensors
 
Die Berechnung arbeitet mit dem Accelerometer, nicht dem Inclinometer.
Intern wird das Phone etwas änhliches machen, und die Erdbeschleunigung der drei Achsen verrechnen.

Wenn das Inclinometer 0 rausgibt, das Acclerometer aber X,Y,Z Werte, könnte man sich das fehlende Inclinometer auch selbst berechnen.

Rollo


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:31 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz