#ifndef HOKUYO_H
#define HOKUYO_H
-#include <orte.h>
+#include <math.h>
+#include <robottype.h>
-#define HOKUYO_BEAMS_IN_CLUSTER 40
-#define HOKUYO_CLUSTER_CNT 17
+#define HOKUYO_ARRAY_SIZE (sizeof(((struct hokuyo_scan_type*)0)->data) / sizeof(((struct hokuyo_scan_type*)0)->data[0]))
-#define HOKUYO_CLUSTER_TO_DEG(x) (-113.0+(x*HOKUYO_BEAMS_IN_CLUSTER*(360.0/1024.0)))
-#define HOKUYO_CLUSTER_TO_RAD(x) (M_PI/180 * (113.0)-(x*HOKUYO_BEAMS_IN_CLUSTER*((2*M_PI)/1024.0)))
+#define HOKUYO_SPLIT_DIVISION 1024
+#define HOKUYO_INITIAL_MEASUREMENT 44
+#define HOKUYO_FINAL_MEASUREMENT 725
+#define HOKUYO_START_ANGLE (239.77/2)
-#define HOKUYO_DEVICE "/dev/ttyPSC2" // /dev/ttyACM0
+#define HOKUYO_INDEX_TO_DEG(x) ((HOKUYO_START_ANGLE-(x)*360.0/HOKUYO_SPLIT_DIVISION) * HOKUYO_ORIENTATION)
+#define HOKUYO_INDEX_TO_RAD(x) (HOKUYO_INDEX_TO_DEG(x)/180.0*M_PI)
-int hokuyo_get_scan();
-void scan_publisher_callback(const ORTESendInfo *info, void *vinstance, void *arg);
+#define HOKUYO_DEG_TO_INDEX(d) ((HOKUYO_START_ANGLE-(d)/HOKUYO_ORIENTATION)/(360.0/HOKUYO_SPLIT_DIVISION))
#endif //HOKUYO_H