Psi Swarm robot library version 0.9
Fork of PsiSwarmV9 by
psiswarm.h@18:9204f74069b4, 2017-06-04 (annotated)
- Committer:
- jah128
- Date:
- Sun Jun 04 20:22:41 2017 +0000
- Revision:
- 18:9204f74069b4
- Parent:
- 17:bf614e28668f
Updated self-test
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jah128 | 12:878c6e9d9e60 | 1 | /* University of York Robotics Laboratory PsiSwarm Library: PsiSwarm C++ Core Header File |
jah128 | 12:878c6e9d9e60 | 2 | * |
jah128 | 15:66be5ec52c3b | 3 | * Copyright 2017 University of York |
jah128 | 6:b340a527add9 | 4 | * |
jah128 | 12:878c6e9d9e60 | 5 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. |
jah128 | 6:b340a527add9 | 6 | * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 |
jah128 | 6:b340a527add9 | 7 | * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS |
jah128 | 12:878c6e9d9e60 | 8 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
jah128 | 6:b340a527add9 | 9 | * See the License for the specific language governing permissions and limitations under the License. |
jah128 | 6:b340a527add9 | 10 | * |
jah128 | 0:d6269d17c8cf | 11 | * File: psiswarm.h |
jah128 | 0:d6269d17c8cf | 12 | * |
jah128 | 0:d6269d17c8cf | 13 | * (C) Dept. Electronics & Computer Science, University of York |
jah128 | 0:d6269d17c8cf | 14 | * James Hilder, Alan Millard, Alexander Horsfield, Homero Elizondo, Jon Timmis |
jah128 | 0:d6269d17c8cf | 15 | * |
jah128 | 15:66be5ec52c3b | 16 | * PsiSwarm Library Version: 0.9 |
jah128 | 0:d6269d17c8cf | 17 | * |
jah128 | 16:50686c07ad07 | 18 | * June 2017 |
jah128 | 0:d6269d17c8cf | 19 | * |
jah128 | 0:d6269d17c8cf | 20 | * |
jah128 | 12:878c6e9d9e60 | 21 | */ |
jah128 | 0:d6269d17c8cf | 22 | |
jah128 | 0:d6269d17c8cf | 23 | #ifndef PSISWARM_H |
jah128 | 0:d6269d17c8cf | 24 | #define PSISWARM_H |
jah128 | 12:878c6e9d9e60 | 25 | |
jah128 | 15:66be5ec52c3b | 26 | #define SOFTWARE_VERSION_CODE 0.90 |
jah128 | 17:bf614e28668f | 27 | #define TARGET_FIRMWARE_VERSION 1.2 |
jah128 | 0:d6269d17c8cf | 28 | |
jah128 | 0:d6269d17c8cf | 29 | #define PIC_ADDRESS 0x30 |
jah128 | 12:878c6e9d9e60 | 30 | #define LCD_ADDRESS 0x7C |
jah128 | 0:d6269d17c8cf | 31 | #define LED_IC_ADDRESS 0x42 |
jah128 | 0:d6269d17c8cf | 32 | #define GPIO_IC_ADDRESS 0x40 |
jah128 | 0:d6269d17c8cf | 33 | #define AUX_IC_ADDRESS 0x4E |
jah128 | 0:d6269d17c8cf | 34 | #define ADC1_ADDRESS 0x46 |
jah128 | 0:d6269d17c8cf | 35 | #define ADC2_ADDRESS 0x48 |
jah128 | 0:d6269d17c8cf | 36 | #define EEPROM_ADDRESS 0XA0 |
jah128 | 0:d6269d17c8cf | 37 | #define TEMPERATURE_ADDRESS 0X30 |
jah128 | 0:d6269d17c8cf | 38 | #define BASE_COLOUR_ADDRESS 0X52 |
jah128 | 0:d6269d17c8cf | 39 | #define TOP_COLOUR_ADDRESS 0X72 |
jah128 | 0:d6269d17c8cf | 40 | #define ULTRASONIC_ADDRESS 0XE0 |
jah128 | 0:d6269d17c8cf | 41 | #define COMMAND_MESSAGE_BYTE 0X1D |
jah128 | 0:d6269d17c8cf | 42 | #define ACKNOWLEDGE_MESSAGE_BYTE 0X1E |
jah128 | 0:d6269d17c8cf | 43 | #define RESPONSE_MESSAGE_BYTE 0X1F |
jah128 | 0:d6269d17c8cf | 44 | #define PSI_BYTE 0X1D |
jah128 | 0:d6269d17c8cf | 45 | |
jah128 | 0:d6269d17c8cf | 46 | //Set temperature sensor warnings: 60C critical, 50C high, 0C low |
jah128 | 0:d6269d17c8cf | 47 | #define TEMPERATURE_CRITICAL_HI 0X03 |
jah128 | 0:d6269d17c8cf | 48 | #define TEMPEARTURE_CRITICAL_LO 0XC0 |
jah128 | 0:d6269d17c8cf | 49 | #define TEMPERATURE_HIGH_HI 0X03 |
jah128 | 0:d6269d17c8cf | 50 | #define TEMPEARTURE_HIGH_LO 0X20 |
jah128 | 0:d6269d17c8cf | 51 | #define TEMPERATURE_LOW_HI 0X00 |
jah128 | 0:d6269d17c8cf | 52 | #define TEMPEARTURE_LOW_LO 0X00 |
jah128 | 0:d6269d17c8cf | 53 | |
jah128 | 17:bf614e28668f | 54 | /* CALIBRATION DEFAULTS |
jah128 | 17:bf614e28668f | 55 | * __________________________ |
jah128 | 17:bf614e28668f | 56 | * |
jah128 | 17:bf614e28668f | 57 | * These values are used as defaults if robot specific calibration values have not been stored in EEPROM |
jah128 | 17:bf614e28668f | 58 | * |
jah128 | 17:bf614e28668f | 59 | */ |
jah128 | 18:9204f74069b4 | 60 | #define LEFT_STALL 20 |
jah128 | 18:9204f74069b4 | 61 | #define RIGHT_STALL 20 |
jah128 | 17:bf614e28668f | 62 | #define BIR1W 1750 |
jah128 | 17:bf614e28668f | 63 | #define BIR2W 3780 |
jah128 | 17:bf614e28668f | 64 | #define BIR3W 3820 |
jah128 | 17:bf614e28668f | 65 | #define BIR4W 3810 |
jah128 | 17:bf614e28668f | 66 | #define BIR5W 2880 |
jah128 | 17:bf614e28668f | 67 | #define BIR1B 30 |
jah128 | 17:bf614e28668f | 68 | #define BIR2B 350 |
jah128 | 17:bf614e28668f | 69 | #define BIR3B 670 |
jah128 | 17:bf614e28668f | 70 | #define BIR4B 550 |
jah128 | 17:bf614e28668f | 71 | #define BIR5B 250 |
jah128 | 17:bf614e28668f | 72 | #define CS_C_BLACK 63 |
jah128 | 17:bf614e28668f | 73 | #define CS_C_WHITE 802 |
jah128 | 17:bf614e28668f | 74 | #define CS_R_BLACK 22 |
jah128 | 17:bf614e28668f | 75 | #define CS_R_WHITE 244 |
jah128 | 17:bf614e28668f | 76 | #define CS_G_BLACK 24 |
jah128 | 17:bf614e28668f | 77 | #define CS_G_WHITE 297 |
jah128 | 17:bf614e28668f | 78 | #define CS_B_BLACK 16 |
jah128 | 17:bf614e28668f | 79 | #define CS_B_WHITE 232 |
jah128 | 17:bf614e28668f | 80 | |
jah128 | 17:bf614e28668f | 81 | |
jah128 | 0:d6269d17c8cf | 82 | #define DEFAULT_IR_PULSE_DELAY 400 |
jah128 | 0:d6269d17c8cf | 83 | #define DEFAULT_BASE_IR_PULSE_DELAY 50 |
jah128 | 0:d6269d17c8cf | 84 | |
jah128 | 0:d6269d17c8cf | 85 | #include <stdio.h> |
jah128 | 0:d6269d17c8cf | 86 | #include <stdarg.h> |
jah128 | 0:d6269d17c8cf | 87 | #include <string> |
jah128 | 0:d6269d17c8cf | 88 | #include <vector> |
jah128 | 0:d6269d17c8cf | 89 | |
jah128 | 0:d6269d17c8cf | 90 | #include "settings.h" |
jah128 | 0:d6269d17c8cf | 91 | #include "serial.h" |
jah128 | 0:d6269d17c8cf | 92 | #include "mbed.h" |
jah128 | 0:d6269d17c8cf | 93 | #include "display.h" |
jah128 | 0:d6269d17c8cf | 94 | #include "led.h" |
jah128 | 11:312663037b8c | 95 | #include "i2c_setup.h" |
jah128 | 0:d6269d17c8cf | 96 | #include "motors.h" |
jah128 | 0:d6269d17c8cf | 97 | #include "sensors.h" |
jah128 | 0:d6269d17c8cf | 98 | #include "eprom.h" |
jah128 | 0:d6269d17c8cf | 99 | #include "colour.h" |
jah128 | 11:312663037b8c | 100 | #include "sound.h" |
jah128 | 0:d6269d17c8cf | 101 | #include "demo.h" |
jah128 | 12:878c6e9d9e60 | 102 | #include "animations.h" |
jah128 | 0:d6269d17c8cf | 103 | #include "basic.h" |
jah128 | 0:d6269d17c8cf | 104 | |
jah128 | 0:d6269d17c8cf | 105 | //NB The user needs to have a main.cpp with a main() function and a handle_switch_event(char) function |
jah128 | 0:d6269d17c8cf | 106 | #include "main.h" |
jah128 | 0:d6269d17c8cf | 107 | |
jah128 | 12:878c6e9d9e60 | 108 | /** Psiswarm Class |
jah128 | 12:878c6e9d9e60 | 109 | * The main class to define a robot |
jah128 | 12:878c6e9d9e60 | 110 | * |
jah128 | 12:878c6e9d9e60 | 111 | * Example code for main.cpp: |
jah128 | 12:878c6e9d9e60 | 112 | * @code |
jah128 | 12:878c6e9d9e60 | 113 | * #include "psiswarm.h" |
jah128 | 12:878c6e9d9e60 | 114 | * Psiswarm psi; |
jah128 | 12:878c6e9d9e60 | 115 | * char * program_name = "Example"; |
jah128 | 12:878c6e9d9e60 | 116 | * char * author_name = "Name"; |
jah128 | 15:66be5ec52c3b | 117 | * char * version_name = "0.9"; |
jah128 | 12:878c6e9d9e60 | 118 | * void handle_switch_event(char switch_state){} |
jah128 | 12:878c6e9d9e60 | 119 | * void handle_user_serial_message(char * message, char length, char interface) {} |
jah128 | 12:878c6e9d9e60 | 120 | * int main(){ |
jah128 | 12:878c6e9d9e60 | 121 | * psi.init(); |
jah128 | 12:878c6e9d9e60 | 122 | * while(1) { //Do something! |
jah128 | 12:878c6e9d9e60 | 123 | * } |
jah128 | 12:878c6e9d9e60 | 124 | * } |
jah128 | 12:878c6e9d9e60 | 125 | * @endcode |
jah128 | 12:878c6e9d9e60 | 126 | */ |
jah128 | 12:878c6e9d9e60 | 127 | class Psiswarm |
jah128 | 12:878c6e9d9e60 | 128 | { |
jah128 | 12:878c6e9d9e60 | 129 | public: |
jah128 | 12:878c6e9d9e60 | 130 | /** |
jah128 | 12:878c6e9d9e60 | 131 | * Main initialisation routine for the PsiSwarm robot |
jah128 | 12:878c6e9d9e60 | 132 | * |
jah128 | 12:878c6e9d9e60 | 133 | * Set up the GPIO expansion ICs, launch demo mode if button is held |
jah128 | 12:878c6e9d9e60 | 134 | */ |
jah128 | 12:878c6e9d9e60 | 135 | void init(void); |
jah128 | 12:878c6e9d9e60 | 136 | |
jah128 | 12:878c6e9d9e60 | 137 | /** |
jah128 | 12:878c6e9d9e60 | 138 | * Get the uptime for the robot |
jah128 | 12:878c6e9d9e60 | 139 | * |
jah128 | 12:878c6e9d9e60 | 140 | * @return The amount of time in seconds that the MBED has been active since last reset |
jah128 | 12:878c6e9d9e60 | 141 | */ |
jah128 | 12:878c6e9d9e60 | 142 | float get_uptime(void); |
jah128 | 12:878c6e9d9e60 | 143 | |
jah128 | 12:878c6e9d9e60 | 144 | /** |
jah128 | 12:878c6e9d9e60 | 145 | * Pause the user code for a defined amount of time |
jah128 | 12:878c6e9d9e60 | 146 | * |
jah128 | 12:878c6e9d9e60 | 147 | * @param The amount of time in seconds to pause user code |
jah128 | 12:878c6e9d9e60 | 148 | */ |
jah128 | 12:878c6e9d9e60 | 149 | void pause_user_code(float period); |
jah128 | 12:878c6e9d9e60 | 150 | |
jah128 | 12:878c6e9d9e60 | 151 | /** |
jah128 | 12:878c6e9d9e60 | 152 | * Reset the wheel encoder counters |
jah128 | 12:878c6e9d9e60 | 153 | */ |
jah128 | 12:878c6e9d9e60 | 154 | void reset_encoders(void); |
jah128 | 12:878c6e9d9e60 | 155 | |
jah128 | 12:878c6e9d9e60 | 156 | /** |
jah128 | 12:878c6e9d9e60 | 157 | * Send a string (in printf format) to the preferred debug stream, specified in settings.h [of overridden programmatically] |
jah128 | 12:878c6e9d9e60 | 158 | * |
jah128 | 12:878c6e9d9e60 | 159 | * @param The string to send to output stream |
jah128 | 12:878c6e9d9e60 | 160 | */ |
jah128 | 12:878c6e9d9e60 | 161 | void debug(const char* format, ...) ; |
jah128 | 12:878c6e9d9e60 | 162 | private: |
jah128 | 12:878c6e9d9e60 | 163 | void IF_end_pause_user_code(void); |
jah128 | 12:878c6e9d9e60 | 164 | void IF_handle_events(void); |
jah128 | 12:878c6e9d9e60 | 165 | void IF_update_encoders(void); |
jah128 | 12:878c6e9d9e60 | 166 | void IF_update_user_id(void); |
jah128 | 12:878c6e9d9e60 | 167 | void IF_update_switch(void); |
jah128 | 12:878c6e9d9e60 | 168 | void IF_update_minutes(void); |
jah128 | 12:878c6e9d9e60 | 169 | void IF_get_hardware_description(void); |
jah128 | 12:878c6e9d9e60 | 170 | }; |
jah128 | 0:d6269d17c8cf | 171 | |
jah128 | 17:bf614e28668f | 172 | extern "C" void mbed_reset(); // Allows use of (undocumented) mbed_reset() function |
jah128 | 17:bf614e28668f | 173 | |
jah128 | 12:878c6e9d9e60 | 174 | extern Psiswarm psi; |
jah128 | 8:6c92789d5f87 | 175 | extern Serial pc; |
jah128 | 8:6c92789d5f87 | 176 | extern Serial bt; |
jah128 | 8:6c92789d5f87 | 177 | extern Display display; |
jah128 | 8:6c92789d5f87 | 178 | extern Motors motors; |
jah128 | 8:6c92789d5f87 | 179 | extern Eprom eprom; |
jah128 | 9:dde9e21030eb | 180 | extern Led led; |
jah128 | 10:e58323951c08 | 181 | extern Sensors sensors; |
jah128 | 11:312663037b8c | 182 | extern SerialControl serial; |
jah128 | 11:312663037b8c | 183 | extern Sound sound; |
jah128 | 11:312663037b8c | 184 | extern Setup i2c_setup; |
jah128 | 11:312663037b8c | 185 | extern Demo demo; |
jah128 | 12:878c6e9d9e60 | 186 | extern Animations animations; |
jah128 | 12:878c6e9d9e60 | 187 | extern Basic basic; |
jah128 | 15:66be5ec52c3b | 188 | extern Colour colour; |
jah128 | 0:d6269d17c8cf | 189 | extern char * program_name; |
jah128 | 0:d6269d17c8cf | 190 | extern char * author_name; |
jah128 | 0:d6269d17c8cf | 191 | extern char * version_name; |
jah128 | 0:d6269d17c8cf | 192 | |
jah128 | 0:d6269d17c8cf | 193 | extern I2C primary_i2c; |
jah128 | 0:d6269d17c8cf | 194 | extern InterruptIn gpio_interrupt; |
jah128 | 0:d6269d17c8cf | 195 | |
jah128 | 0:d6269d17c8cf | 196 | extern AnalogIn vin_current; |
jah128 | 0:d6269d17c8cf | 197 | extern AnalogIn vin_battery; |
jah128 | 0:d6269d17c8cf | 198 | extern AnalogIn vin_dc; |
jah128 | 0:d6269d17c8cf | 199 | |
jah128 | 0:d6269d17c8cf | 200 | extern DigitalOut mbed_led1; |
jah128 | 0:d6269d17c8cf | 201 | extern DigitalOut mbed_led2; |
jah128 | 0:d6269d17c8cf | 202 | extern DigitalOut mbed_led3; |
jah128 | 0:d6269d17c8cf | 203 | extern DigitalOut mbed_led4; |
jah128 | 0:d6269d17c8cf | 204 | extern PwmOut center_led_red; |
jah128 | 0:d6269d17c8cf | 205 | extern PwmOut center_led_green; |
jah128 | 0:d6269d17c8cf | 206 | extern PwmOut motor_left_f; |
jah128 | 0:d6269d17c8cf | 207 | extern PwmOut motor_left_r; |
jah128 | 0:d6269d17c8cf | 208 | extern PwmOut motor_right_f; |
jah128 | 0:d6269d17c8cf | 209 | extern PwmOut motor_right_r; |
jah128 | 0:d6269d17c8cf | 210 | |
jah128 | 0:d6269d17c8cf | 211 | extern char time_based_motor_action; |
jah128 | 0:d6269d17c8cf | 212 | |
jah128 | 0:d6269d17c8cf | 213 | extern int base_colour_sensor_raw_values []; |
jah128 | 0:d6269d17c8cf | 214 | extern int top_colour_sensor_raw_values []; |
jah128 | 0:d6269d17c8cf | 215 | |
jah128 | 0:d6269d17c8cf | 216 | extern char waiting_for_ultrasonic; |
jah128 | 0:d6269d17c8cf | 217 | extern int ultrasonic_distance; |
jah128 | 0:d6269d17c8cf | 218 | extern char ultrasonic_distance_updated; |
jah128 | 0:d6269d17c8cf | 219 | extern Timeout ultrasonic_timeout; |
jah128 | 0:d6269d17c8cf | 220 | extern Ticker ultrasonic_ticker; |
jah128 | 0:d6269d17c8cf | 221 | |
jah128 | 0:d6269d17c8cf | 222 | extern unsigned short background_ir_values []; |
jah128 | 0:d6269d17c8cf | 223 | extern unsigned short illuminated_ir_values []; |
jah128 | 0:d6269d17c8cf | 224 | extern float reflected_ir_distances []; |
jah128 | 0:d6269d17c8cf | 225 | extern char ir_values_stored; |
jah128 | 0:d6269d17c8cf | 226 | |
jah128 | 0:d6269d17c8cf | 227 | extern char firmware_bytes[]; |
jah128 | 0:d6269d17c8cf | 228 | |
jah128 | 0:d6269d17c8cf | 229 | extern char testing_voltage_regulators_flag; |
jah128 | 0:d6269d17c8cf | 230 | extern char power_good_motor_left; |
jah128 | 0:d6269d17c8cf | 231 | extern char power_good_motor_right; |
jah128 | 0:d6269d17c8cf | 232 | extern char power_good_infrared; |
jah128 | 0:d6269d17c8cf | 233 | extern char status_dc_in; |
jah128 | 0:d6269d17c8cf | 234 | extern char status_charging; |
jah128 | 0:d6269d17c8cf | 235 | |
jah128 | 0:d6269d17c8cf | 236 | extern unsigned short background_base_ir_values []; |
jah128 | 0:d6269d17c8cf | 237 | extern unsigned short illuminated_base_ir_values []; |
jah128 | 0:d6269d17c8cf | 238 | extern char base_ir_values_stored; |
jah128 | 0:d6269d17c8cf | 239 | extern float line_position; |
jah128 | 0:d6269d17c8cf | 240 | extern char line_found; |
jah128 | 0:d6269d17c8cf | 241 | |
jah128 | 0:d6269d17c8cf | 242 | extern float motor_left_speed; |
jah128 | 0:d6269d17c8cf | 243 | extern float motor_right_speed; |
jah128 | 0:d6269d17c8cf | 244 | extern char motor_left_brake; |
jah128 | 0:d6269d17c8cf | 245 | extern char motor_right_brake; |
jah128 | 0:d6269d17c8cf | 246 | |
jah128 | 0:d6269d17c8cf | 247 | extern float center_led_brightness; |
jah128 | 0:d6269d17c8cf | 248 | extern float backlight_brightness; |
jah128 | 0:d6269d17c8cf | 249 | |
jah128 | 4:1c621cb8cf0d | 250 | extern char use_motor_calibration; |
jah128 | 4:1c621cb8cf0d | 251 | extern char motor_calibration_set; |
jah128 | 4:1c621cb8cf0d | 252 | extern float left_motor_calibration_value; |
jah128 | 4:1c621cb8cf0d | 253 | extern float right_motor_calibration_value; |
jah128 | 18:9204f74069b4 | 254 | extern float left_motor_stall_offset; |
jah128 | 18:9204f74069b4 | 255 | extern float right_motor_stall_offset; |
jah128 | 4:1c621cb8cf0d | 256 | |
jah128 | 17:bf614e28668f | 257 | extern char base_ir_calibration_set; |
jah128 | 17:bf614e28668f | 258 | extern char base_colour_calibration_set; |
jah128 | 17:bf614e28668f | 259 | |
jah128 | 0:d6269d17c8cf | 260 | extern float firmware_version; |
jah128 | 1:060690a934a9 | 261 | extern float pcb_version; |
jah128 | 1:060690a934a9 | 262 | extern float serial_number; |
jah128 | 1:060690a934a9 | 263 | |
jah128 | 1:060690a934a9 | 264 | extern char has_compass; |
jah128 | 1:060690a934a9 | 265 | extern char has_side_ir; |
jah128 | 1:060690a934a9 | 266 | extern char has_base_ir; |
jah128 | 1:060690a934a9 | 267 | extern char has_base_colour_sensor; |
jah128 | 1:060690a934a9 | 268 | extern char has_top_colour_sensor; |
jah128 | 1:060690a934a9 | 269 | extern char has_wheel_encoders; |
jah128 | 1:060690a934a9 | 270 | extern char has_audio_pic; |
jah128 | 1:060690a934a9 | 271 | extern char has_ultrasonic_sensor; |
jah128 | 1:060690a934a9 | 272 | extern char has_temperature_sensor; |
jah128 | 1:060690a934a9 | 273 | extern char has_recharging_circuit; |
jah128 | 1:060690a934a9 | 274 | extern char has_433_radio; |
jah128 | 0:d6269d17c8cf | 275 | |
jah128 | 0:d6269d17c8cf | 276 | extern int ir_pulse_delay; |
jah128 | 0:d6269d17c8cf | 277 | extern int base_ir_pulse_delay; |
jah128 | 0:d6269d17c8cf | 278 | |
jah128 | 0:d6269d17c8cf | 279 | extern char robot_id; |
jah128 | 0:d6269d17c8cf | 280 | extern char previous_robot_id; |
jah128 | 0:d6269d17c8cf | 281 | |
jah128 | 0:d6269d17c8cf | 282 | extern char wheel_encoder_byte; |
jah128 | 0:d6269d17c8cf | 283 | extern char previous_wheel_encoder_byte; |
jah128 | 0:d6269d17c8cf | 284 | extern signed int left_encoder; |
jah128 | 0:d6269d17c8cf | 285 | extern signed int right_encoder; |
jah128 | 0:d6269d17c8cf | 286 | |
jah128 | 0:d6269d17c8cf | 287 | extern char switch_byte; |
jah128 | 0:d6269d17c8cf | 288 | extern char previous_switch_byte; |
jah128 | 0:d6269d17c8cf | 289 | |
jah128 | 0:d6269d17c8cf | 290 | extern char user_code_running; |
jah128 | 0:d6269d17c8cf | 291 | extern char user_code_restore_mode; |
jah128 | 0:d6269d17c8cf | 292 | extern char demo_on; |
jah128 | 0:d6269d17c8cf | 293 | extern char event; |
jah128 | 0:d6269d17c8cf | 294 | extern char change_id_event; |
jah128 | 0:d6269d17c8cf | 295 | extern char encoder_event; |
jah128 | 0:d6269d17c8cf | 296 | extern char switch_event; |
jah128 | 0:d6269d17c8cf | 297 | extern char system_warnings; |
jah128 | 18:9204f74069b4 | 298 | extern short boot_count; |
jah128 | 0:d6269d17c8cf | 299 | |
jah128 | 0:d6269d17c8cf | 300 | extern char debug_mode; |
jah128 | 0:d6269d17c8cf | 301 | extern char debug_output; |
jah128 | 0:d6269d17c8cf | 302 | |
jah128 | 12:878c6e9d9e60 | 303 | extern vector<string> basic_filenames; |
jah128 | 0:d6269d17c8cf | 304 | extern char psi_basic_file_count; |
jah128 | 0:d6269d17c8cf | 305 | extern char use_flash_basic; |
jah128 | 0:d6269d17c8cf | 306 | extern char file_transfer_mode; |
jah128 | 12:878c6e9d9e60 | 307 | |
jah128 | 0:d6269d17c8cf | 308 | #endif |