Psi Swarm robot library version 0.9
Fork of PsiSwarmV9 by
Diff: sensors.cpp
- Revision:
- 11:312663037b8c
- Parent:
- 10:e58323951c08
- Child:
- 12:878c6e9d9e60
diff -r e58323951c08 -r 312663037b8c sensors.cpp --- a/sensors.cpp Sun Oct 16 16:00:20 2016 +0000 +++ b/sensors.cpp Sun Oct 16 21:06:15 2016 +0000 @@ -76,7 +76,7 @@ float Sensors::get_temperature() { - if(has_temperature_sensor)return IF_read_from_temperature_sensor(); + if(has_temperature_sensor)return i2c_setup.IF_read_from_temperature_sensor(); return 0; } @@ -118,7 +118,7 @@ if(index>7) return 0.0; //1. Read the ADC value without IR emitter on; store in the background_ir_values[] array - background_ir_values [index] = IF_read_IR_adc_value(1, index ); + background_ir_values [index] = i2c_setup.IF_read_IR_adc_value(1, index ); //2. Enable the relevant IR emitter by turning on its pulse output switch(index) { @@ -126,19 +126,19 @@ case 1: case 6: case 7: - IF_set_IR_emitter_output(0, 1); + i2c_setup.IF_set_IR_emitter_output(0, 1); break; case 2: case 3: case 4: case 5: - IF_set_IR_emitter_output(1, 1); + i2c_setup.IF_set_IR_emitter_output(1, 1); break; } wait_us(ir_pulse_delay); //3. Read the ADC value now IR emitter is on; store in the illuminated_ir_values[] array - illuminated_ir_values [index] = IF_read_IR_adc_value (1, index ); + illuminated_ir_values [index] = i2c_setup.IF_read_IR_adc_value (1, index ); //4. Turn off IR emitter switch(index) { @@ -146,13 +146,13 @@ case 1: case 6: case 7: - IF_set_IR_emitter_output(0, 0); + i2c_setup.IF_set_IR_emitter_output(0, 0); break; case 2: case 3: case 4: case 5: - IF_set_IR_emitter_output(1, 0); + i2c_setup.IF_set_IR_emitter_output(1, 0); break; } @@ -208,7 +208,7 @@ { ir_values_stored = 1; for(int i=0; i<8; i++) { - background_ir_values [i] = IF_read_IR_adc_value(1,i); + background_ir_values [i] = i2c_setup.IF_read_IR_adc_value(1,i); } } @@ -216,22 +216,22 @@ void Sensors::store_illuminated_raw_ir_values ( void ) { //1. Enable the front IR emitters and store the values - IF_set_IR_emitter_output(0, 1); + i2c_setup.IF_set_IR_emitter_output(0, 1); wait_us(ir_pulse_delay); - illuminated_ir_values [0] = IF_read_IR_adc_value(1,0); - illuminated_ir_values [1] = IF_read_IR_adc_value(1,1); - illuminated_ir_values [6] = IF_read_IR_adc_value(1,6); - illuminated_ir_values [7] = IF_read_IR_adc_value(1,7); - IF_set_IR_emitter_output(0, 0); + illuminated_ir_values [0] = i2c_setup.IF_read_IR_adc_value(1,0); + illuminated_ir_values [1] = i2c_setup.IF_read_IR_adc_value(1,1); + illuminated_ir_values [6] = i2c_setup.IF_read_IR_adc_value(1,6); + illuminated_ir_values [7] = i2c_setup.IF_read_IR_adc_value(1,7); + i2c_setup.IF_set_IR_emitter_output(0, 0); //2. Enable the rear+side IR emitters and store the values - IF_set_IR_emitter_output(1, 1); + i2c_setup.IF_set_IR_emitter_output(1, 1); wait_us(ir_pulse_delay); - illuminated_ir_values [2] = IF_read_IR_adc_value(1,2); - illuminated_ir_values [3] = IF_read_IR_adc_value(1,3); - illuminated_ir_values [4] = IF_read_IR_adc_value(1,4); - illuminated_ir_values [5] = IF_read_IR_adc_value(1,5); - IF_set_IR_emitter_output(1, 0); + illuminated_ir_values [2] = i2c_setup.IF_read_IR_adc_value(1,2); + illuminated_ir_values [3] = i2c_setup.IF_read_IR_adc_value(1,3); + illuminated_ir_values [4] = i2c_setup.IF_read_IR_adc_value(1,4); + illuminated_ir_values [5] = i2c_setup.IF_read_IR_adc_value(1,5); + i2c_setup.IF_set_IR_emitter_output(1, 0); } // Converts a background and illuminated value into a distance @@ -262,31 +262,31 @@ case 1: case 6: case 7: - IF_set_IR_emitter_output(0, 1); + i2c_setup.IF_set_IR_emitter_output(0, 1); break; case 2: case 3: case 4: case 5: - IF_set_IR_emitter_output(1, 1); + i2c_setup.IF_set_IR_emitter_output(1, 1); break; } wait_us(ir_pulse_delay); //2. Read the ADC value now IR emitter is on - unsigned short strong_value = IF_read_IR_adc_value( 1,index ); + unsigned short strong_value = i2c_setup.IF_read_IR_adc_value( 1,index ); //3. Turn off IR emitter switch(index) { case 0: case 1: case 6: case 7: - IF_set_IR_emitter_output(0, 0); + i2c_setup.IF_set_IR_emitter_output(0, 0); break; case 2: case 3: case 4: case 5: - IF_set_IR_emitter_output(1, 0); + i2c_setup.IF_set_IR_emitter_output(1, 0); break; } return strong_value; @@ -326,7 +326,7 @@ { base_ir_values_stored = 1; for(int i=0; i<5; i++) { - background_base_ir_values [i] = IF_read_IR_adc_value(2,i); + background_base_ir_values [i] = i2c_setup.IF_read_IR_adc_value(2,i); } } @@ -334,13 +334,13 @@ void Sensors::store_illuminated_base_ir_values ( void ) { //1. Enable the base IR emitters and store the values - IF_set_IR_emitter_output(2, 1); + i2c_setup.IF_set_IR_emitter_output(2, 1); wait_us(base_ir_pulse_delay); for(int i=0; i<5; i++) { - illuminated_base_ir_values [i] = IF_read_IR_adc_value(2,i); + illuminated_base_ir_values [i] = i2c_setup.IF_read_IR_adc_value(2,i); } - IF_set_IR_emitter_output(2, 0); + i2c_setup.IF_set_IR_emitter_output(2, 0); } // Routine to store detected line position in a similar format to the used on 3Pi\m3Pi\PiSwarm