Einzelnen Beitrag anzeigen

Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
760 Beiträge
 
Delphi 11 Alexandria
 
#25

AW: TSphere mithilfe MotionSensor drehen?

  Alt 2. Mai 2017, 12:04
Hallo derseitzer

mit dem fehlenden OnChange bist du nicht allein. Es gibt sicher Cracks hier, welche dir einen Einzeiler für dieses Problem z.V. stellen können.


Wenn du in die System.Android.Sensors.pas schaust, dann siehst du, dass die SensorEvents in FNativeEventQueue gespeichert und hier abgefragt werden:

Delphi-Quellcode:
function TNativeSensor.LastValue: ASensorEvent;
var
  SensorEvent: ASensorEvent;
begin
  while ASensorEventQueue_getEvents(FNativeEventQueue, @SensorEvent,1) > 0 do
    FLastSensorEvent := SensorEvent;
  Result := FLastSensorEvent;
end;
[Du musst also eigentlich nur danach suchen, wo die Events in die Queue gelegt werden, falls du je nach Sensor sehr viele Events in deiner eigenen Eventschlange haben möchtest.]

Du könntest "quick and very dirty" [und natürlich nicht zu empfehlen, ausser emba übernimmt deine Anpassungen für weitere Delphis ] die unit System.Android.Sensors.pas in dein Projektverzeichnis kopieren und diese dann für deine Zwecke anpassen. Wie bereits erwähnt: Wenn du Anpassungen an der unit vornimmst, dann lies Heading, Tilt und Co jeweils aus dem gleichen Sensorevent. Dann machen die ermittelten Werte mehr Sinn.


Und wenn du fertig bist mit , dann poste deine System.Android.Sensors.pas hier .



Es gibt doch sicher User hier, welche mit Android Apps Drohnen und Co steuern? Wie lest ihr die Sensordaten aus?
Michael Gasser
  Mit Zitat antworten Zitat