First Draft, serial print change based on distance

Revision:
11:5a895d966a3e
Child:
12:b562893a1445
diff -r be53044119d1 -r 5a895d966a3e Ultrasonic/ultrasonic.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Ultrasonic/ultrasonic.h	Thu Feb 03 17:43:32 2022 +0000
@@ -0,0 +1,47 @@
+#ifndef ULTRASONIC_H
+#define ULTRASONIC_H
+
+#include "mbed.h"
+
+class ultrasonic
+{
+    public:
+        /**iniates the class with the specified trigger pin, echo pin, update speed and timeout**/
+        ultrasonic(PinName trigPin, PinName echoPin, float updateSpeed, float timeout);
+        /**iniates the class with the specified trigger pin, echo pin, update speed, timeout and method to call when the distance changes**/
+        ultrasonic(PinName trigPin, PinName echoPin, float updateSpeed, float timeout, void onUpdate(int));
+        /** returns the last measured distance**/
+        int getCurrentDistance(void);
+        /**pauses measuring the distance**/
+        void pauseUpdates(void);
+        /**starts mesuring the distance**/
+        void startUpdates(void);
+        /**attachs the method to be called when the distances changes**/
+        void attachOnUpdate(void method(int));
+        /**changes the speed at which updates are made**/
+        void changeUpdateSpeed(float updateSpeed);
+        /**gets whether the distance has been changed since the last call of isUpdated() or checkDistance()**/
+        int isUpdated(void);
+        /**gets the speed at which updates are made**/
+        float getUpdateSpeed(void);
+        /**call this as often as possible in your code, eg. at the end of a while(1) loop,
+        and it will check whether the method you have attached needs to be called**/
+        void checkDistance(void);
+    private:
+        DigitalOut _trig;
+        InterruptIn _echo;
+        Timer _t;
+        Timeout _tout;
+        int _distance;
+        float _updateSpeed;
+        int start;
+        int end;
+        volatile int done;
+        void (*_onUpdateMethod)(int);
+        void _startT(void);
+        void _updateDist(void);
+        void _startTrig(void);
+        float _timeout;
+        int d;
+};
+#endif
\ No newline at end of file