+++ /dev/null
-
-#define SCANNER_ENC ((void *)1)
-
-/* relative motor position from mirror axis */
-#define X 4.5
-#define Y -1.25
-
-/* length of motor arm*/
-#define l1 0.9
-
-/* length of bielle */
-#define l2 2.113
-
-/* length of mirror (rotating axe to bielle) */
-//#define l3 4.714
-#define l3 4.1613
-
-/* distance from telemetre to mirror axis */
-#define l_mirror 24.0
-
-/* higth between mirror axis and horizontal laser beam*/
-#define h_mirror -1.0
-
-
-/* transform telemeter unit to cm
- using linear approximation
- d_telemetre = a * cm + b
-*/
-//#define TELEMETRE_A (16.76)
-//#define TELEMETRE_B (-476.)
-
-
-#define TELEMETRE_A_INIT 0.067325
-#define TELEMETRE_B_INIT 23.225
-
-
-extern double TELEMETRE_A;
-extern double TELEMETRE_B;
-
-
-
-
-#define SCAN_L_MIN 15.
-#define SCAN_L_MAX 40.
-
-#define SCAN_H_MAX 40.
-#define SCAN_H_COEF (255./(SCAN_H_MAX+10.))
-
-#define SCAN_MAX_DIST 70.
-
-#define MAX_SAMPLE (1500L)
-
-
-// TRUE encoder value: 3531.75
-#define SCANNER_STEP_TOUR (14127L)
-
-//#define PIX_PER_SCAN 30L
-#define PIX_PER_SCAN (25L)
-
-void scanner_init(void);
-void scanner_set_mode(uint8_t mode);
-
-void scanner_end_process(void);
-
-void scanner_calibre_laser(void);
-void scanner_calibre_mirror(void);
-
-
-void scanner_scan_autonomous(void);
-
-int32_t encoders_spi_update_scanner(void * number);
-int32_t encoders_spi_get_value_scanner(void *number);
-
-void do_scan(void * dummy);
-
-
-
-struct scan_params{
- uint16_t sample_i;
- float offset_a;
- float offset_b;
- int speed;
- uint8_t filter;
- int32_t pos_start_scan;
-
- int32_t last_col_n;
- int32_t last_row_n;
- uint8_t last_sample;
-
- uint8_t debug;
- uint8_t sample_tab[MAX_SAMPLE+10];
- volatile uint8_t working;
- uint8_t must_stop;
-
-
- uint8_t algo;
-
-
- union {
- struct {
- uint8_t working_zone;
- int16_t center_x;
- int16_t center_y;
- } drop_zone;
-
- struct {
- uint8_t level;
- int16_t temple_x;
- int16_t temple_y;
- } check_temple;
- };
-
-
-
- /*
- for column drop zone answer
- */
- int8_t dropzone_h;
- int16_t dropzone_x;
- int16_t dropzone_y;
-
- uint8_t max_column_detected;
-};
-
-
-
-#define STEP_PER_ROUND 14127
-
-#define TELEMETRE_MIN 66
-#define TELEMETRE_MAX 466
-
-
-#define TELEMETRE_MIN_CM (25)
-#define TELEMETRE_MAX_CM (55)
-
-
-#define DIM_ANGLE (400/4)
-#define DIM_DIST ((TELEMETRE_MAX_CM - TELEMETRE_MIN_CM)*3)
-
-
-
-#define ANGLE_STEP (STEP_PER_ROUND/DIM_ANGLE +1)
-#define DIST_STEP ((TELEMETRE_MAX - TELEMETRE_MIN) /DIM_DIST +1)
-
-
-typedef struct _lookup_h_l{
- uint16_t h:4;
- uint16_t l:12;
-}lookup_h_l;
-
-#define telemetre_to_cm(t) ((double)(TELEMETRE_A * ((double)(t)) + TELEMETRE_B))
-
-#define SCAN_DEFAULT_SPEED 600
-
-
-extern struct scan_params scan_params;
-
-