
Radar1
Dependencies: FT800_2 mbed Encoder
main.cpp@0:fda1a80ff1ac, 2019-04-25 (annotated)
- Committer:
- Vitan
- Date:
- Thu Apr 25 11:19:28 2019 +0000
- Revision:
- 0:fda1a80ff1ac
Radar1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Vitan | 0:fda1a80ff1ac | 1 | #include "mbed.h" |
Vitan | 0:fda1a80ff1ac | 2 | #include "encoder.h" |
Vitan | 0:fda1a80ff1ac | 3 | #include "FT_Platform.h" |
Vitan | 0:fda1a80ff1ac | 4 | #include "arm_const_structs.h" |
Vitan | 0:fda1a80ff1ac | 5 | #include "math.h" |
Vitan | 0:fda1a80ff1ac | 6 | |
Vitan | 0:fda1a80ff1ac | 7 | #define screen_width 480 |
Vitan | 0:fda1a80ff1ac | 8 | #define screen_heigth 272 |
Vitan | 0:fda1a80ff1ac | 9 | #define DIR_ICON_ADDR 210000 |
Vitan | 0:fda1a80ff1ac | 10 | #define FILE_ICON_ADDR 212000 |
Vitan | 0:fda1a80ff1ac | 11 | #define CLOSE_ICON_ADDR 214000 |
Vitan | 0:fda1a80ff1ac | 12 | #define PALETTE_ADDR 216000 |
Vitan | 0:fda1a80ff1ac | 13 | |
Vitan | 0:fda1a80ff1ac | 14 | #define FILE_SAVE 1 |
Vitan | 0:fda1a80ff1ac | 15 | #define FILE_DELETE 2 |
Vitan | 0:fda1a80ff1ac | 16 | |
Vitan | 0:fda1a80ff1ac | 17 | #define MENU_SCAN 1 |
Vitan | 0:fda1a80ff1ac | 18 | #define MENU_FILES 2 |
Vitan | 0:fda1a80ff1ac | 19 | |
Vitan | 0:fda1a80ff1ac | 20 | #define ROOT_DIR 254 |
Vitan | 0:fda1a80ff1ac | 21 | #define TEST_LENGTH_SAMPLES 1024 |
Vitan | 0:fda1a80ff1ac | 22 | |
Vitan | 0:fda1a80ff1ac | 23 | #define KEY_SCAN 1 |
Vitan | 0:fda1a80ff1ac | 24 | #define KEY_ASCAN 2 |
Vitan | 0:fda1a80ff1ac | 25 | #define KEY_BSCAN 3 |
Vitan | 0:fda1a80ff1ac | 26 | #define KEY_START 4 |
Vitan | 0:fda1a80ff1ac | 27 | #define KEY_STOP 5 |
Vitan | 0:fda1a80ff1ac | 28 | #define KEY_FILES 6 |
Vitan | 0:fda1a80ff1ac | 29 | #define KEY_EPS 7 |
Vitan | 0:fda1a80ff1ac | 30 | #define KEY_OPTIONS 8 |
Vitan | 0:fda1a80ff1ac | 31 | #define KEY_LEFT 10 |
Vitan | 0:fda1a80ff1ac | 32 | #define KEY_RIGHT 11 |
Vitan | 0:fda1a80ff1ac | 33 | #define KEY_UP 12 |
Vitan | 0:fda1a80ff1ac | 34 | #define KEY_DOWN 13 |
Vitan | 0:fda1a80ff1ac | 35 | #define KEY_CLOSE 14 |
Vitan | 0:fda1a80ff1ac | 36 | #define KEY_TIME 15 |
Vitan | 0:fda1a80ff1ac | 37 | #define KEY_OK 16 |
Vitan | 0:fda1a80ff1ac | 38 | |
Vitan | 0:fda1a80ff1ac | 39 | #define STATUS_MAIN 20 |
Vitan | 0:fda1a80ff1ac | 40 | #define STATUS_ASCAN 21 |
Vitan | 0:fda1a80ff1ac | 41 | #define STATUS_BSCAN 22 |
Vitan | 0:fda1a80ff1ac | 42 | #define STATUS_START 23 |
Vitan | 0:fda1a80ff1ac | 43 | #define STATUS_STOP 24 |
Vitan | 0:fda1a80ff1ac | 44 | #define STATUS_FILES 25 |
Vitan | 0:fda1a80ff1ac | 45 | #define STATUS_BIN 26 |
Vitan | 0:fda1a80ff1ac | 46 | #define STATUS_TIME 27 |
Vitan | 0:fda1a80ff1ac | 47 | #define STATUS_EPS 28 |
Vitan | 0:fda1a80ff1ac | 48 | #define STATUS_OTHER 29 |
Vitan | 0:fda1a80ff1ac | 49 | |
Vitan | 0:fda1a80ff1ac | 50 | #define TRACK_SLIDER 34 |
Vitan | 0:fda1a80ff1ac | 51 | #define TRACK_DEPTH 35 |
Vitan | 0:fda1a80ff1ac | 52 | #define TRACK_DISTANCE 36 |
Vitan | 0:fda1a80ff1ac | 53 | |
Vitan | 0:fda1a80ff1ac | 54 | #define MATERIAL_AIR 10 |
Vitan | 0:fda1a80ff1ac | 55 | #define MATERIAL_GYPSUM 27 |
Vitan | 0:fda1a80ff1ac | 56 | #define MATERIAL_CONCRETE 40 |
Vitan | 0:fda1a80ff1ac | 57 | #define MATERIAL_BRICK 37 |
Vitan | 0:fda1a80ff1ac | 58 | #define MATERIAL_OTHER 99 |
Vitan | 0:fda1a80ff1ac | 59 | |
Vitan | 0:fda1a80ff1ac | 60 | #define CLICK 0x50 |
Vitan | 0:fda1a80ff1ac | 61 | |
Vitan | 0:fda1a80ff1ac | 62 | //Serial pc(SERIAL_TX, SERIAL_RX, 2250000); |
Vitan | 0:fda1a80ff1ac | 63 | AnalogIn in0(A0); |
Vitan | 0:fda1a80ff1ac | 64 | AnalogIn in1(A1); |
Vitan | 0:fda1a80ff1ac | 65 | AnalogOut out(PA_4); |
Vitan | 0:fda1a80ff1ac | 66 | Encoder enc(D5, D6, false); |
Vitan | 0:fda1a80ff1ac | 67 | FT800 TFT(D11, D12, D13, D10, D9, D8); |
Vitan | 0:fda1a80ff1ac | 68 | |
Vitan | 0:fda1a80ff1ac | 69 | //----------------------------------------------------------------------------- |
Vitan | 0:fda1a80ff1ac | 70 | // Encoder |
Vitan | 0:fda1a80ff1ac | 71 | //----------------------------------------------------------------------------- |
Vitan | 0:fda1a80ff1ac | 72 | uint8_t step_done = 0; |
Vitan | 0:fda1a80ff1ac | 73 | uint16_t steps = 0; |
Vitan | 0:fda1a80ff1ac | 74 | |
Vitan | 0:fda1a80ff1ac | 75 | //----------------------------------------------------------------------------- |
Vitan | 0:fda1a80ff1ac | 76 | // FT800 |
Vitan | 0:fda1a80ff1ac | 77 | //----------------------------------------------------------------------------- |
Vitan | 0:fda1a80ff1ac | 78 | uint8_t eps = 10, eps_temp, eps_position, ReadWord = 0, status = 0, offset = 52, temp_value[401] = {0}, meanValue[201] = {0}, sig[201], time_position, xscale = 8, yscale = 4, filename[20] = {0}; |
Vitan | 0:fda1a80ff1ac | 79 | uint8_t data[24] = {0xAD, 0x81, 0x00, 0x00, 0x2B, 0x04, 0x00, 0x00, 0x92, 0x8F, 0xE5, 0xFF, 0x4A, 0xFE, 0xFF, 0xFF, 0x3C, 0xB1, 0xFF, 0xFF, 0xA3, 0x2D, 0x27, 0x01}; |
Vitan | 0:fda1a80ff1ac | 80 | uint8_t palette[1024] = {143, 0, 0, 255, 147, 0, 0, 255, 151, 0, 0, 255, 155, 0, 0, 255, 159, 0, 0, 255, 163, 0, 0, 255, 167, 0, 0, 255, 171, 0, 0, 255, 174, 0, 0, 255, 178, 0, 0, 255, 182, 0, 0, 255, 186, 0, 0, 255, 190, 0, 0, 255, 194, 0, 0, 255, 198, 0, 0, 255, 202, 0, 0, 255, 206, 0, 0, 255, 210, 0, 0, 255, 214, 0, 0, 255, 218, 0, 0, 255, 222, 0, 0, 255, 226, 0, 0, 255, 230, 0, 0, 255, 234, 0, 0, 255, 237, 0, 0, 255, 241, 0, 0, 255, 245, 0, 0, 255, 249, 0, 0, 255, 253, 0, 0, 255, 255, 2, 0, 255, 255, 6, 0, 255, 255, 10, 0, 255, 255, 14, 0, 255, 255, 18, 0, 255, 255, 22, 0, 255, 255, 26, 0, 255, 255, 30, 0, 255, 255, 34, 0, 255, 255, 38, 0, 255, 255, 41, 0, 255, 255, 45, 0, 255, 255, 49, 0, 255, 255, 53, 0, 255, 255, 57, 0, 255, 255, 61, 0, 255, 255, 65, 0, 255, 255, 69, 0, 255, 255, 73, 0, 255, 255, 77, 0, 255, 255, 81, 0, 255, 255, 85, 0, 255, 255, 89, 0, 255, 255, 93, 0, 255, 255, 97, 0, 255, 255, 101, 0, 255, 255, 105, 0, 255, 255, 108, 0, 255, 255, 112, 0, 255, 255, 116, 0, 255, 255, 120, 0, 255, 255, 124, 0, 255, 255, 128, 0, 255, 255, 132, 0, 255, 255, 136, 0, 255, 255, 140, 0, 255, 255, 144, 0, 255, 255, 148, 0, 255, 255, 152, 0, 255, 255, 156, 0, 255, 255, 160, 0, 255, 255, 164, 0, 255, 255, 168, 0, 255, 255, 171, 0, 255, 255, 175, 0, 255, 255, 179, 0, 255, 255, 183, 0, 255, 255, 187, 0, 255, 255, 191, 0, 255, 255, 195, 0, 255, 255, 199, 0, 255, 255, 203, 0, 255, 255, 207, 0, 255, 255, 211, 0, 255, 255, 215, 0, 255, 255, 219, 0, 255, 255, 223, 0, 255, 255, 227, 0, 255, 255, 230, 0, 255, 255, 234, 0, 255, 255, 238, 0, 255, 255, 242, 0, 255, 255, 246, 0, 255, 255, 250, 0, 255, 255, 254, 0, 255, 251, 255, 3, 255, 247, 255, 7, 255, 243, 255, 11, 255, 239, 255, 15, 255, 235, 255, 19, 255, 231, 255, 23, 255, 227, 255, 27, 255, 223, 255, 31, 255, 219, 255, 35, 255, 216, 255, 38, 255, 212, 255, 42, 255, 208, 255, 46, 255, 204, 255, 50, 255, 200, 255, 54, 255, 196, 255, 58, 255, 192, 255, 62, 255, 188, 255, 66, 255, 184, 255, 70, 255, 180, 255, 74, 255, 176, 255, 78, 255, 172, 255, 82, 255, 168, 255, 86, 255, 164, 255, 90, 255, 160, 255, 94, 255, 156, 255, 98, 255, 153, 255, 101, 255, 149, 255, 105, 255, 145, 255, 109, 255, 141, 255, 113, 255, 137, 255, 117, 255, 133, 255, 121, 255, 129, 255, 125, 255, 125, 255, 129, 255, 121, 255, 133, 255, 117, 255, 137, 255, 113, 255, 141, 255, 109, 255, 145, 255, 105, 255, 149, 255, 101, 255, 153, 255, 97, 255, 157, 255, 93, 255, 161, 255, 90, 255, 164, 255, 86, 255, 168, 255, 82, 255, 172, 255, 78, 255, 176, 255, 74, 255, 180, 255, 70, 255, 184, 255, 66, 255, 188, 255, 62, 255, 192, 255, 58, 255, 196, 255, 54, 255, 200, 255, 50, 255, 204, 255, 46, 255, 208, 255, 42, 255, 212, 255, 38, 255, 216, 255, 34, 255, 220, 255, 30, 255, 224, 255, 27, 255, 227, 255, 23, 255, 231, 255, 19, 255, 235, 255, 15, 255, 239, 255, 11, 255, 243, 255, 7, 255, 247, 255, 3, 255, 251, 255, 0, 254, 255, 255, 0, 250, 255, 255, 0, 246, 255, 255, 0, 242, 255, 255, 0, 238, 255, 255, 0, 234, 255, 255, 0, 230, 255, 255, 0, 226, 255, 255, 0, 222, 255, 255, 0, 219, 255, 255, 0, 215, 255, 255, 0, 211, 255, 255, 0, 207, 255, 255, 0, 203, 255, 255, 0, 199, 255, 255, 0, 195, 255, 255, 0, 191, 255, 255, 0, 187, 255, 255, 0, 183, 255, 255, 0, 179, 255, 255, 0, 175, 255, 255, 0, 171, 255, 255, 0, 167, 255, 255, 0, 163, 255, 255, 0, 159, 255, 255, 0, 156, 255, 255, 0, 152, 255, 255, 0, 148, 255, 255, 0, 144, 255, 255, 0, 140, 255, 255, 0, 136, 255, 255, 0, 132, 255, 255, 0, 128, 255, 255, 0, 124, 255, 255, 0, 120, 255, 255, 0, 116, 255, 255, 0, 112, 255, 255, 0, 108, 255, 255, 0, 104, 255, 255, 0, 100, 255, 255, 0, 96, 255, 255, 0, 93, 255, 255, 0, 89, 255, 255, 0, 85, 255, 255, 0, 81, 255, 255, 0, 77, 255, 255, 0, 73, 255, 255, 0, 69, 255, 255, 0, 65, 255, 255, 0, 61, 255, 255, 0, 57, 255, 255, 0, 53, 255, 255, 0, 49, 255, 255, 0, 45, 255, 255, 0, 41, 255, 255, 0, 37, 255, 255, 0, 33, 255, 255, 0, 30, 255, 255, 0, 26, 255, 255, 0, 22, 255, 255, 0, 18, 255, 255, 0, 14, 255, 255, 0, 10, 255, 255, 0, 6, 255, 255, 0, 2, 255, 255, 0, 0, 253, 255, 0, 0, 249, 255, 0, 0, 245, 255, 0, 0, 241, 255, 0, 0, 237, 255, 0, 0, 233, 255, 0, 0, 229, 255, 0, 0, 225, 255, 0, 0, 222, 255, 0, 0, 218, 255, 0, 0, 214, 255, 0, 0, 210, 255, 0, 0, 206, 255, 0, 0, 202, 255, 0, 0, 198, 255, 0, 0, 194, 255, 0, 0, 190, 255, 0, 0, 186, 255, 0, 0, 182, 255, 0, 0, 178, 255, 0, 0, 174, 255, 0, 0, 170, 255, 0, 0, 166, 255, 0, 0, 162, 255, 0, 0, 159, 255, 0, 0, 155, 255, 0, 0, 151, 255, 0, 0, 147, 255, 0, 0, 143, 255, 0, 0, 139, 255, 0, 0, 135, 255, 0, 0, 131, 255, 0, 0, 127, 255}; |
Vitan | 0:fda1a80ff1ac | 81 | uint8_t dir_icon[256] = {255, 144, 148, 176, 176, 145, 112, 176, 144, 144, 144, 176, 255, 255, 255, 255, 255, 144, 252, 253, 176, 144, 148, 253, 253, 253, 252, 253, 144, 255, 255, 255, 255, 140, 252, 252, 252, 253, 148, 252, 252, 252, 252, 253, 145, 255, 255, 255, 255, 144, 252, 252, 252, 253, 148, 252, 252, 252, 252, 253, 140, 255, 255, 255, 255, 144, 252, 252, 252, 252, 144, 252, 252, 252, 252, 253, 144, 255, 255, 255, 255, 145, 253, 252, 252, 252, 180, 253, 252, 252, 252, 253, 112, 255, 255, 255, 255, 144, 253, 252, 252, 253, 144, 253, 252, 252, 252, 252, 252, 112, 255, 255, 255, 145, 252, 252, 252, 252, 144, 252, 252, 252, 252, 253, 252, 144, 255, 255, 255, 144, 252, 252, 252, 253, 144, 252, 252, 252, 253, 254, 254, 144, 255, 255, 255, 140, 253, 252, 252, 253, 176, 252, 253, 252, 254, 255, 255, 110, 255, 255, 255, 145, 252, 252, 252, 252, 148, 253, 252, 252, 253, 255, 255, 142, 255, 255, 255, 145, 253, 252, 252, 253, 148, 253, 252, 252, 253, 68, 36, 110, 255, 255, 255, 112, 252, 252, 252, 252, 148, 253, 252, 252, 253, 36, 36, 112, 255, 255, 255, 145, 253, 252, 252, 253, 144, 252, 252, 253, 254, 254, 254, 145, 255, 255, 255, 141, 140, 144, 252, 253, 144, 144, 144, 176, 108, 145, 145, 255, 255, 255, 255, 255, 255, 255, 176, 144, 144, 255, 255, 255, 255, 255, 255, 255, 255, 255}; |
Vitan | 0:fda1a80ff1ac | 82 | uint8_t file_icon[256] = {255, 255, 219, 219, 251, 219, 219, 219, 219, 219, 219, 219, 255, 255, 255, 255, 255, 255, 219, 255, 255, 255, 255, 255, 255, 255, 255, 219, 219, 255, 255, 255, 255, 255, 219, 255, 255, 255, 255, 255, 255, 255, 255, 219, 255, 223, 255, 255, 255, 255, 219, 255, 255, 255, 255, 255, 255, 255, 255, 219, 255, 255, 187, 255, 255, 255, 219, 255, 255, 255, 255, 255, 255, 255, 255, 219, 219, 219, 219, 255, 255, 255, 219, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 219, 255, 255, 255, 219, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 219, 255, 255, 255, 219, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 219, 255, 255, 255, 219, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 219, 255, 255, 255, 219, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 219, 255, 255, 255, 219, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 182, 255, 255, 255, 219, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 219, 255, 255, 255, 182, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 146, 255, 255, 255, 142, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 146, 255, 255, 255, 146, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 146, 255, 255, 255, 146, 182, 146, 145, 150, 146, 114, 182, 146, 146, 146, 146, 146, 255}; |
Vitan | 0:fda1a80ff1ac | 83 | uint8_t close_icon[256] = {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 251, 105, 69, 100, 69, 68, 69, 36, 69, 68, 65, 68, 73, 251, 255, 255, 69, 210, 251, 251, 251, 255, 250, 251, 255, 251, 251, 251, 214, 68, 255, 255, 68, 251, 247, 251, 247, 247, 246, 250, 247, 247, 246, 246, 255, 37, 255, 255, 69, 250, 246, 146, 109, 105, 142, 178, 105, 106, 178, 246, 246, 69, 255, 255, 101, 250, 250, 105, 255, 255, 110, 109, 255, 255, 110, 250, 251, 65, 255, 255, 68, 250, 246, 173, 106, 255, 255, 255, 255, 142, 141, 246, 247, 100, 255, 255, 68, 250, 246, 242, 178, 106, 255, 255, 105, 173, 246, 242, 247, 68, 255, 255, 64, 246, 205, 173, 142, 105, 255, 223, 105, 141, 173, 201, 246, 68, 255, 255, 64, 242, 205, 173, 106, 251, 255, 223, 223, 106, 173, 205, 246, 68, 255, 255, 68, 245, 174, 105, 255, 255, 110, 109, 255, 255, 105, 205, 242, 64, 255, 255, 68, 246, 209, 137, 110, 109, 142, 141, 105, 110, 173, 209, 242, 64, 255, 255, 68, 250, 242, 210, 209, 210, 242, 242, 242, 242, 241, 238, 246, 68, 255, 255, 101, 210, 246, 246, 247, 246, 246, 246, 246, 247, 246, 246, 210, 69, 255, 255, 251, 68, 68, 68, 65, 65, 64, 68, 96, 64, 68, 69, 105, 251, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255}; |
Vitan | 0:fda1a80ff1ac | 84 | uint16_t bitmap_height = 320, border_x = 30, depth = 201, buffer[201] = {0}, shift = 0, scroll_distance_val = 0, scroll_distance_size = 1000, slider_val = 0; |
Vitan | 0:fda1a80ff1ac | 85 | uint16_t dac_value[201] = {489, 498, 507, 516, 525, 534, 544, 553, 562, 571, 580, 589, 598, 607, 616, 625, 633, 642, 651, 660, 669, 678, 686, 695, 704, 713, 722, 731, 740, 748, 757, 766, 775, 784, 793, 802, 810, 819, 828, 837, 846, 855, 864, 872, 881, 890, 899, 908, 917, 925, 934, 943, 952, 961, 969, 978, 987, 996, 1005, 1013, 1022, 1031, 1040, 1048, 1057, 1066, 1075, 1084, 1092, 1101, 1110, 1119, 1128, 1136, 1145, 1154, 1163, 1172, 1180, 1189, 1198, 1207, 1216, 1224, 1233, 1242, 1251, 1259, 1268, 1277, 1286, 1295, 1303, 1312, 1321, 1330, 1338, 1347, 1356, 1365, 1374, 1382, 1391, 1400, 1409, 1417, 1426, 1435, 1444, 1453, 1461, 1470, 1479, 1488, 1496, 1505, 1514, 1523, 1531, 1540, 1549, 1558, 1566, 1575, 1584, 1593, 1601, 1610, 1619, 1628, 1636, 1645, 1654, 1663, 1671, 1680, 1689, 1698, 1706, 1715, 1724, 1733, 1741, 1750, 1759, 1768, 1776, 1785, 1794, 1803, 1811, 1820, 1828, 1837, 1845, 1854, 1862, 1871, 1879, 1888, 1896, 1905, 1913, 1922, 1930, 1939, 1947, 1956, 1964, 1973, 1981, 1990, 1998, 2007, 2015, 2024, 2032, 2041, 2049, 2058, 2066, 2075, 2083, 2092, 2101, 2109, 2118, 2127, 2136, 2145, 2154, 2163, 2172, 2181, 2190, 2199, 2208, 2217, 2226, 2235, 2243}; |
Vitan | 0:fda1a80ff1ac | 86 | uint16_t matched_load[201] = {2218, 2233, 2280, 2297, 2305, 2300, 2284, 2264, 2251, 2255, 2264, 2255, 2263, 2260, 2252, 2216, 2231, 2229, 2219, 2213, 2205, 2197, 2188, 2180, 2181, 2173, 2175, 2216, 2169, 2137, 2147, 2159, 2161, 2163, 2187, 2200, 2195, 2185, 2205, 2208, 2197, 2212, 2236, 2255, 2256, 2271, 2269, 2257, 2255, 2260, 2257, 2251, 2257, 2265, 2243, 2235, 2260, 2261, 2257, 2284, 2297, 2297, 2305, 2335, 2333, 2335, 2351, 2351, 2349, 2330, 2340, 2337, 2333, 2341, 2353, 2357, 2352, 2351, 2347, 2333, 2344, 2327, 2325, 2312, 2323, 2310, 2300, 2309, 2295, 2291, 2271, 2270, 2265, 2255, 2268, 2248, 2244, 2229, 2232, 2227, 2227, 2212, 2229, 2231, 2229, 2229, 2240, 2244, 2222, 2239, 2239, 2244, 2244, 2251, 2236, 2245, 2238, 2247, 2239, 2233, 2236, 2235, 2233, 2223, 2224, 2238, 2220, 2210, 2232, 2224, 2212, 2225, 2216, 2209, 2202, 2209, 2201, 2189, 2199, 2191, 2190, 2172, 2196, 2189, 2174, 2187, 2183, 2185, 2179, 2209, 2183, 2177, 2169, 2181, 2172, 2159, 2168, 2166, 2172, 2152, 2159, 2153, 2144, 2145, 2157, 2139, 2134, 2139, 2152, 2146, 2132, 2149, 2133, 2143, 2131, 2164, 2156, 2159, 2147, 2164, 2168, 2164, 2159, 2167, 2180, 2167, 2173, 2196, 2190, 2193, 2200, 2197, 2189, 2188, 2197, 2189, 2189, 2195, 2199, 2206, 2197}; |
Vitan | 0:fda1a80ff1ac | 87 | uint32_t testIndex = 0, addr = 0, dloffset1 = 0, dloffset2 = 0, fftSize = 512, ifftFlag = 1, doBitReverse = 1, inx = 60; |
Vitan | 0:fda1a80ff1ac | 88 | char keyPressed = 0, batt[6], eps_str[10], curr_time[20]; |
Vitan | 0:fda1a80ff1ac | 89 | float blackman_win[201] = {0, 0.00008886, 0.0003558, 0.000802, 0.001429, 0.00224, 0.003238, 0.004428, 0.005813, 0.007399, 0.009193, 0.0112, 0.01343, 0.01589, 0.01858, 0.02152, 0.02471, 0.02817, 0.0319, 0.03591, 0.04021, 0.04482, 0.04973, 0.05497, 0.06054, 0.06645, 0.0727, 0.07932, 0.0863, 0.09365, 0.1014, 0.1095, 0.118, 0.1269, 0.1363, 0.146, 0.1561, 0.1667, 0.1776, 0.189, 0.2008, 0.213, 0.2256, 0.2385, 0.2519, 0.2657, 0.2798, 0.2944, 0.3092, 0.3245, 0.34, 0.3559, 0.372, 0.3885, 0.4052, 0.4221, 0.4393, 0.4567, 0.4742, 0.4919, 0.5098, 0.5277, 0.5457, 0.5638, 0.5819, 0.6, 0.618, 0.636, 0.6539, 0.6716, 0.6892, 0.7066, 0.7237, 0.7406, 0.7573, 0.7736, 0.7895, 0.8051, 0.8202, 0.835, 0.8492, 0.863, 0.8762, 0.8889, 0.901, 0.9125, 0.9234, 0.9336, 0.9432, 0.9521, 0.9602, 0.9677, 0.9744, 0.9803, 0.9855, 0.9899, 0.9935, 0.9964, 0.9984, 0.9996, 1, 0.9996, 0.9984, 0.9964, 0.9935, 0.9899, 0.9855, 0.9803, 0.9744, 0.9677, 0.9602, 0.9521, 0.9432, 0.9336, 0.9234, 0.9125, 0.901, 0.8889, 0.8762, 0.863, 0.8492, 0.835, 0.8202, 0.8051, 0.7895, 0.7736, 0.7573, 0.7406, 0.7237, 0.7066, 0.6892, 0.6716, 0.6539, 0.636, 0.618, 0.6, 0.5819, 0.5638, 0.5457, 0.5277, 0.5098, 0.4919, 0.4742, 0.4567, 0.4393, 0.4221, 0.4052, 0.3885, 0.372, 0.3559, 0.34, 0.3245, 0.3092, 0.2944, 0.2798, 0.2657, 0.2519, 0.2385, 0.2256, 0.213, 0.2008, 0.189, 0.1776, 0.1667, 0.1561, 0.146, 0.1363, 0.1269, 0.118, 0.1095, 0.1014, 0.09365, 0.0863, 0.07932, 0.0727, 0.06645, 0.06054, 0.05497, 0.04973, 0.04482, 0.04021, 0.03591, 0.0319, 0.02817, 0.02471, 0.02152, 0.01858, 0.01589, 0.01343, 0.0112, 0.009193, 0.007399, 0.005813, 0.004428, 0.003238, 0.00224, 0.001429, 0.000802, 0.0003558, 0.00008886, 0}; |
Vitan | 0:fda1a80ff1ac | 90 | float detector[201] = {24.2753, 24.0337, 23.9496, 24.1734, 24.4779, 24.386, 24.1269, 23.8651, 23.7331, 23.9027, 24.1362, 24.4595, 24.896, 25.2451, 25.5632, 25.9206, 26.2048, 26.435, 26.6127, 26.7808, 26.7892, 26.5028, 26.2219, 26.3159, 26.35, 26.2305, 25.9379, 25.5456, 25.1114, 24.905, 24.6969, 24.6696, 24.7514, 24.8057, 24.887, 24.986, 25.1382, 25.3339, 25.6421, 25.9379, 26.1533, 26.452, 26.5874, 26.6296, 26.5705, 26.4265, 26.1619, 25.8946, 25.5192, 25.1472, 24.6605, 24.1827, 24.0057, 23.9402, 23.987, 24.1734, 24.3399, 24.432, 24.5053, 24.5145, 24.4595, 24.4136, 24.3584, 24.3584, 24.4412, 24.5876, 24.7786, 24.986, 25.0846, 25.0936, 24.9411, 24.6787, 24.3584, 24.0804, 23.9214, 23.7992, 23.7236, 23.6573, 23.5718, 23.4189, 23.2361, 23.0714, 22.9054, 22.817, 22.7777, 22.8072, 22.8564, 22.9739, 23.1005, 23.1975, 23.3325, 23.4381, 23.5622, 23.6478, 23.7236, 23.7803, 23.8086, 23.8651, 23.8651, 23.8745, 23.8463, 23.7803, 23.7141, 23.5718, 23.3902, 23.2458, 23.1393, 23.0227, 22.8858, 22.7283, 22.5897, 22.4402, 22.2695, 22.0569, 21.8627, 21.6253, 21.4377, 21.2167, 21.0681, 20.8647, 20.7352, 20.6485, 20.5723, 20.5395, 20.5067, 20.4629, 20.419, 20.3419, 20.2756, 20.209, 20.1423, 20.0306, 19.907, 19.8392, 19.7485, 19.6916, 19.646, 19.6345, 19.6116, 19.6116, 19.6002, 19.6231, 19.6345, 19.6802, 19.7144, 19.7599, 19.8505, 19.8957, 19.9969, 20.0753, 20.1757, 20.2977, 20.4848, 20.6593, 20.8324, 21.0041, 21.1319, 21.2801, 21.4377, 21.6978, 21.6045, 21.5421, 21.5213, 21.5421, 21.5629, 21.6564, 21.7598, 21.8627, 21.9447, 21.9753, 21.9447, 21.8627, 21.7392, 21.5941, 21.4272, 21.2484, 21.1107, 20.897, 20.7352, 20.5395, 20.408, 20.2423, 20.0977, 19.8844, 19.6916, 19.5658, 19.393, 19.3234, 19.2653, 19.3467, 19.3814, 19.4854, 19.6116, 19.7485, 19.8618, 19.9632, 20.0194, 20.0642, 20.0977, 20.12, 20.0753}; |
Vitan | 0:fda1a80ff1ac | 91 | float gauss[11] = {0.00876415, 0.02699548, 0.06475879, 0.12098536, 0.17603266, 0.19947114, 0.17603266, 0.12098536, 0.06475879, 0.02699548, 0.00876415}; |
Vitan | 0:fda1a80ff1ac | 92 | float sig_interp[401] = {0}, maxValue_concrete = 52, maxValue = 0, testInput[TEST_LENGTH_SAMPLES] = {0}, testOutput[TEST_LENGTH_SAMPLES/2]; |
Vitan | 0:fda1a80ff1ac | 93 | float xs = 30/2/(3.5-1)/(fftSize-1)*(201-1); |
Vitan | 0:fda1a80ff1ac | 94 | struct tm date, *tminfo; |
Vitan | 0:fda1a80ff1ac | 95 | time_t seconds, temp_seconds; |
Vitan | 0:fda1a80ff1ac | 96 | |
Vitan | 0:fda1a80ff1ac | 97 | void buttons(void) |
Vitan | 0:fda1a80ff1ac | 98 | { |
Vitan | 0:fda1a80ff1ac | 99 | TFT.FgColor(0xA0A0A0); |
Vitan | 0:fda1a80ff1ac | 100 | TFT.DL(TAG(KEY_START)); |
Vitan | 0:fda1a80ff1ac | 101 | TFT.Button(0.77*screen_width, 0.22*screen_heigth, 0.15*screen_width, 0.12*screen_heigth, 28, OPT_FLAT, "Start"); |
Vitan | 0:fda1a80ff1ac | 102 | TFT.DL(TAG(KEY_STOP)); |
Vitan | 0:fda1a80ff1ac | 103 | TFT.Button(0.77*screen_width, 0.38*screen_heigth, 0.15*screen_width, 0.12*screen_heigth, 28, OPT_FLAT, "Stop"); |
Vitan | 0:fda1a80ff1ac | 104 | TFT.DL(TAG(KEY_UP)); |
Vitan | 0:fda1a80ff1ac | 105 | TFT.Button(0.81*screen_width, 0.55*screen_heigth, 0.07*screen_width, 0.12*screen_heigth, 28, OPT_FLAT, "^"); |
Vitan | 0:fda1a80ff1ac | 106 | TFT.DL(TAG(KEY_DOWN)); |
Vitan | 0:fda1a80ff1ac | 107 | TFT.Button(0.81*screen_width, 0.85*screen_heigth, 0.07*screen_width, 0.12*screen_heigth, 28, OPT_FLAT, "v"); |
Vitan | 0:fda1a80ff1ac | 108 | TFT.DL(TAG(KEY_LEFT)); |
Vitan | 0:fda1a80ff1ac | 109 | TFT.Button(0.72*screen_width, 0.7*screen_heigth, 0.07*screen_width, 0.12*screen_heigth, 28, OPT_FLAT, "<"); |
Vitan | 0:fda1a80ff1ac | 110 | TFT.DL(TAG(KEY_RIGHT)); |
Vitan | 0:fda1a80ff1ac | 111 | TFT.Button(0.9*screen_width, 0.7*screen_heigth, 0.07*screen_width, 0.12*screen_heigth, 28, OPT_FLAT, ">"); |
Vitan | 0:fda1a80ff1ac | 112 | TFT.DL(TAG(KEY_CLOSE)); |
Vitan | 0:fda1a80ff1ac | 113 | //TFT.Button(0.9*screen_width, 0.05*screen_heigth, 0.07*screen_width, 0.12*screen_heigth, 28, OPT_FLAT, "X"); |
Vitan | 0:fda1a80ff1ac | 114 | TFT.DL(BITMAP_SOURCE(CLOSE_ICON_ADDR)); |
Vitan | 0:fda1a80ff1ac | 115 | TFT.DL(BITMAP_LAYOUT(PALETTED, 16, 16)); |
Vitan | 0:fda1a80ff1ac | 116 | TFT.DL(BITMAP_SIZE(BILINEAR, BORDER, BORDER, 32, 32)); |
Vitan | 0:fda1a80ff1ac | 117 | TFT.DL(BEGIN(BITMAPS)); |
Vitan | 0:fda1a80ff1ac | 118 | TFT.DL(SAVE_CONTEXT()); |
Vitan | 0:fda1a80ff1ac | 119 | TFT.LoadIdentity(); |
Vitan | 0:fda1a80ff1ac | 120 | TFT.Scale((int)(2*65536), (int)(2*65536)); |
Vitan | 0:fda1a80ff1ac | 121 | TFT.SetMatrix(); |
Vitan | 0:fda1a80ff1ac | 122 | TFT.DL(VERTEX2F((int)(0.95*screen_width*16), (int)(0.02*screen_heigth*16))); |
Vitan | 0:fda1a80ff1ac | 123 | //TFT.Track(0.71*screen_width, 0.2*screen_heigth, 10, 200, 34); |
Vitan | 0:fda1a80ff1ac | 124 | //TFT.DL(TAG(34)); |
Vitan | 0:fda1a80ff1ac | 125 | //TFT.Slider(0.71*screen_width, 0.2*screen_heigth, 10, 200, 0, slider_val, 201); |
Vitan | 0:fda1a80ff1ac | 126 | TFT.DL(END()); |
Vitan | 0:fda1a80ff1ac | 127 | TFT.DL(RESTORE_CONTEXT()); |
Vitan | 0:fda1a80ff1ac | 128 | } |
Vitan | 0:fda1a80ff1ac | 129 | |
Vitan | 0:fda1a80ff1ac | 130 | void get_charge(void) |
Vitan | 0:fda1a80ff1ac | 131 | { |
Vitan | 0:fda1a80ff1ac | 132 | uint16_t batt_value = floor(3.3*in1.read_u16()/4095); |
Vitan | 0:fda1a80ff1ac | 133 | sprintf(batt, "%d.%d V", batt_value/10, batt_value%10); |
Vitan | 0:fda1a80ff1ac | 134 | } |
Vitan | 0:fda1a80ff1ac | 135 | |
Vitan | 0:fda1a80ff1ac | 136 | char Read_Keys() |
Vitan | 0:fda1a80ff1ac | 137 | { |
Vitan | 0:fda1a80ff1ac | 138 | keyPressed = TFT.Rd8(REG_TOUCH_TAG); |
Vitan | 0:fda1a80ff1ac | 139 | if(keyPressed) |
Vitan | 0:fda1a80ff1ac | 140 | while(TFT.Rd8(REG_TOUCH_TAG)); |
Vitan | 0:fda1a80ff1ac | 141 | return keyPressed; |
Vitan | 0:fda1a80ff1ac | 142 | } |
Vitan | 0:fda1a80ff1ac | 143 | |
Vitan | 0:fda1a80ff1ac | 144 | void start_screen() |
Vitan | 0:fda1a80ff1ac | 145 | { |
Vitan | 0:fda1a80ff1ac | 146 | TFT.DL(CMD_DLSTART); |
Vitan | 0:fda1a80ff1ac | 147 | TFT.DL(CLEAR_COLOR_RGB(255, 255, 255)); |
Vitan | 0:fda1a80ff1ac | 148 | TFT.DL(CLEAR(1, 1, 1)); |
Vitan | 0:fda1a80ff1ac | 149 | TFT.FgColor(0xFFFFFF); |
Vitan | 0:fda1a80ff1ac | 150 | TFT.DL(COLOR_RGB(0, 0, 0)); |
Vitan | 0:fda1a80ff1ac | 151 | TFT.Text(0.8*screen_width, 0.02*screen_heigth, 28, 0, batt); |
Vitan | 0:fda1a80ff1ac | 152 | seconds = time(NULL); |
Vitan | 0:fda1a80ff1ac | 153 | temp_seconds = seconds; |
Vitan | 0:fda1a80ff1ac | 154 | //strftime(curr_time, 19, "%Y%m%d%H%M%S\n", localtime(&seconds)); |
Vitan | 0:fda1a80ff1ac | 155 | strftime(curr_time, 19, "%I:%M:%S %d.%m.%Y\n", localtime(&seconds)); |
Vitan | 0:fda1a80ff1ac | 156 | TFT.Text(0.5*screen_width, 0.3*screen_heigth, 30, OPT_CENTERX, curr_time); |
Vitan | 0:fda1a80ff1ac | 157 | TFT.FgColor(0xA0A0A0); |
Vitan | 0:fda1a80ff1ac | 158 | TFT.DL(COLOR_RGB(255, 255, 255)); |
Vitan | 0:fda1a80ff1ac | 159 | TFT.DL(TAG(KEY_SCAN)); |
Vitan | 0:fda1a80ff1ac | 160 | TFT.Button(0.2*screen_width, 0.7*screen_heigth, 0.12*screen_width, 0.12*screen_heigth, 28, OPT_FLAT, "Scan"); |
Vitan | 0:fda1a80ff1ac | 161 | TFT.DL(TAG(KEY_FILES)); |
Vitan | 0:fda1a80ff1ac | 162 | TFT.Button(0.45*screen_width, 0.7*screen_heigth, 0.12*screen_width, 0.12*screen_heigth, 28, OPT_FLAT, "Files"); |
Vitan | 0:fda1a80ff1ac | 163 | TFT.DL(TAG(KEY_TIME)); |
Vitan | 0:fda1a80ff1ac | 164 | TFT.Button(0.7*screen_width, 0.7*screen_heigth, 0.12*screen_width, 0.12*screen_heigth, 28, OPT_FLAT, "Time"); |
Vitan | 0:fda1a80ff1ac | 165 | TFT.DL(DISPLAY()); |
Vitan | 0:fda1a80ff1ac | 166 | TFT.Swap(); |
Vitan | 0:fda1a80ff1ac | 167 | TFT.Flush_Co_Buffer(); |
Vitan | 0:fda1a80ff1ac | 168 | TFT.WaitCmdfifo_empty(); |
Vitan | 0:fda1a80ff1ac | 169 | } |
Vitan | 0:fda1a80ff1ac | 170 | |
Vitan | 0:fda1a80ff1ac | 171 | void time_screen() |
Vitan | 0:fda1a80ff1ac | 172 | { |
Vitan | 0:fda1a80ff1ac | 173 | int16_t cursor_pos, cursor_width; |
Vitan | 0:fda1a80ff1ac | 174 | |
Vitan | 0:fda1a80ff1ac | 175 | TFT.DL(CMD_DLSTART); |
Vitan | 0:fda1a80ff1ac | 176 | TFT.DL(CLEAR_COLOR_RGB(255, 255, 255)); |
Vitan | 0:fda1a80ff1ac | 177 | TFT.DL(CLEAR(1, 1, 1)); |
Vitan | 0:fda1a80ff1ac | 178 | //TFT.DL(COLOR_RGB(0,0,0)); |
Vitan | 0:fda1a80ff1ac | 179 | cursor_width = 0.07*screen_width; |
Vitan | 0:fda1a80ff1ac | 180 | switch(time_position) |
Vitan | 0:fda1a80ff1ac | 181 | { |
Vitan | 0:fda1a80ff1ac | 182 | case 0: |
Vitan | 0:fda1a80ff1ac | 183 | { |
Vitan | 0:fda1a80ff1ac | 184 | cursor_pos = 0.215*screen_width; |
Vitan | 0:fda1a80ff1ac | 185 | break; |
Vitan | 0:fda1a80ff1ac | 186 | } |
Vitan | 0:fda1a80ff1ac | 187 | case 1: |
Vitan | 0:fda1a80ff1ac | 188 | { |
Vitan | 0:fda1a80ff1ac | 189 | cursor_pos = 0.3*screen_width; |
Vitan | 0:fda1a80ff1ac | 190 | break; |
Vitan | 0:fda1a80ff1ac | 191 | } |
Vitan | 0:fda1a80ff1ac | 192 | case 2: |
Vitan | 0:fda1a80ff1ac | 193 | { |
Vitan | 0:fda1a80ff1ac | 194 | cursor_pos = 0.39*screen_width; |
Vitan | 0:fda1a80ff1ac | 195 | break; |
Vitan | 0:fda1a80ff1ac | 196 | } |
Vitan | 0:fda1a80ff1ac | 197 | case 3: |
Vitan | 0:fda1a80ff1ac | 198 | { |
Vitan | 0:fda1a80ff1ac | 199 | cursor_pos = 0.475*screen_width; |
Vitan | 0:fda1a80ff1ac | 200 | break; |
Vitan | 0:fda1a80ff1ac | 201 | } |
Vitan | 0:fda1a80ff1ac | 202 | case 4: |
Vitan | 0:fda1a80ff1ac | 203 | { |
Vitan | 0:fda1a80ff1ac | 204 | cursor_pos = 0.56*screen_width; |
Vitan | 0:fda1a80ff1ac | 205 | break; |
Vitan | 0:fda1a80ff1ac | 206 | } |
Vitan | 0:fda1a80ff1ac | 207 | case 5: |
Vitan | 0:fda1a80ff1ac | 208 | { |
Vitan | 0:fda1a80ff1ac | 209 | cursor_pos = 0.65*screen_width; |
Vitan | 0:fda1a80ff1ac | 210 | cursor_width = 0.145*screen_width; |
Vitan | 0:fda1a80ff1ac | 211 | break; |
Vitan | 0:fda1a80ff1ac | 212 | } |
Vitan | 0:fda1a80ff1ac | 213 | } |
Vitan | 0:fda1a80ff1ac | 214 | TFT.FgColor(0xE0E0E0); |
Vitan | 0:fda1a80ff1ac | 215 | TFT.Button(cursor_pos, 0.32*screen_heigth, cursor_width, 0.09*screen_heigth, 28, OPT_FLAT, ""); |
Vitan | 0:fda1a80ff1ac | 216 | TFT.DL(COLOR_RGB(255,255,255)); |
Vitan | 0:fda1a80ff1ac | 217 | TFT.FgColor(0xA0A0A0); |
Vitan | 0:fda1a80ff1ac | 218 | TFT.DL(TAG(KEY_UP)); |
Vitan | 0:fda1a80ff1ac | 219 | TFT.Button(0.81*screen_width, 0.55*screen_heigth, 0.07*screen_width, 0.12*screen_heigth, 28, OPT_FLAT, "^"); |
Vitan | 0:fda1a80ff1ac | 220 | TFT.DL(TAG(KEY_DOWN)); |
Vitan | 0:fda1a80ff1ac | 221 | TFT.Button(0.81*screen_width, 0.85*screen_heigth, 0.07*screen_width, 0.12*screen_heigth, 28, OPT_FLAT, "v"); |
Vitan | 0:fda1a80ff1ac | 222 | TFT.DL(TAG(KEY_LEFT)); |
Vitan | 0:fda1a80ff1ac | 223 | TFT.Button(0.72*screen_width, 0.7*screen_heigth, 0.07*screen_width, 0.12*screen_heigth, 28, OPT_FLAT, "<"); |
Vitan | 0:fda1a80ff1ac | 224 | TFT.DL(TAG(KEY_RIGHT)); |
Vitan | 0:fda1a80ff1ac | 225 | TFT.Button(0.9*screen_width, 0.7*screen_heigth, 0.07*screen_width, 0.12*screen_heigth, 28, OPT_FLAT, ">"); |
Vitan | 0:fda1a80ff1ac | 226 | TFT.DL(TAG(KEY_OK)); |
Vitan | 0:fda1a80ff1ac | 227 | TFT.Button(0.81*screen_width, 0.7*screen_heigth, 0.07*screen_width, 0.12*screen_heigth, 28, OPT_FLAT, "OK"); |
Vitan | 0:fda1a80ff1ac | 228 | // TFT.DL(TAG(KEY_CLOSE)); |
Vitan | 0:fda1a80ff1ac | 229 | // TFT.Button(0.9*screen_width, 0.05*screen_heigth, 0.07*screen_width, 0.12*screen_heigth, 28, OPT_FLAT, "X"); |
Vitan | 0:fda1a80ff1ac | 230 | // TFT.DL(TAG(0)); |
Vitan | 0:fda1a80ff1ac | 231 | TFT.Text(0.8*screen_width, 0.02*screen_heigth, 28, 0, batt); |
Vitan | 0:fda1a80ff1ac | 232 | strftime(curr_time, 19, "%I:%M:%S %d.%m.%Y\n", localtime(&seconds)); |
Vitan | 0:fda1a80ff1ac | 233 | TFT.DL(COLOR_RGB(0,0,0)); |
Vitan | 0:fda1a80ff1ac | 234 | TFT.Text(0.5*screen_width, 0.3*screen_heigth, 30, OPT_CENTERX, curr_time); |
Vitan | 0:fda1a80ff1ac | 235 | |
Vitan | 0:fda1a80ff1ac | 236 | TFT.DL(TAG(KEY_CLOSE)); |
Vitan | 0:fda1a80ff1ac | 237 | TFT.DL(BITMAP_SOURCE(CLOSE_ICON_ADDR)); |
Vitan | 0:fda1a80ff1ac | 238 | TFT.DL(BITMAP_LAYOUT(PALETTED, 16, 16)); |
Vitan | 0:fda1a80ff1ac | 239 | TFT.DL(BITMAP_SIZE(BILINEAR, BORDER, BORDER, 32, 32)); |
Vitan | 0:fda1a80ff1ac | 240 | TFT.DL(BEGIN(BITMAPS)); |
Vitan | 0:fda1a80ff1ac | 241 | TFT.LoadIdentity(); |
Vitan | 0:fda1a80ff1ac | 242 | TFT.Scale((int)(2*65536), (int)(2*65536)); |
Vitan | 0:fda1a80ff1ac | 243 | TFT.SetMatrix(); |
Vitan | 0:fda1a80ff1ac | 244 | TFT.DL(VERTEX2F((int)(0.95*screen_width*16), (int)(0.02*screen_heigth*16))); |
Vitan | 0:fda1a80ff1ac | 245 | TFT.DL(END()); |
Vitan | 0:fda1a80ff1ac | 246 | TFT.DL(TAG(0)); |
Vitan | 0:fda1a80ff1ac | 247 | TFT.DL(DISPLAY()); |
Vitan | 0:fda1a80ff1ac | 248 | TFT.Swap(); |
Vitan | 0:fda1a80ff1ac | 249 | TFT.Flush_Co_Buffer(); |
Vitan | 0:fda1a80ff1ac | 250 | TFT.WaitCmdfifo_empty(); |
Vitan | 0:fda1a80ff1ac | 251 | } |
Vitan | 0:fda1a80ff1ac | 252 | |
Vitan | 0:fda1a80ff1ac | 253 | void eps_dlg() |
Vitan | 0:fda1a80ff1ac | 254 | { |
Vitan | 0:fda1a80ff1ac | 255 | TFT.DL(CMD_DLSTART); |
Vitan | 0:fda1a80ff1ac | 256 | TFT.DL(CLEAR_COLOR_RGB(255,255,255)); |
Vitan | 0:fda1a80ff1ac | 257 | TFT.DL(CLEAR(1,1,1)); |
Vitan | 0:fda1a80ff1ac | 258 | TFT.FgColor(0xA0A0A0); |
Vitan | 0:fda1a80ff1ac | 259 | TFT.Text(0.8*screen_width, 0.02*screen_heigth, 28, 0, batt); |
Vitan | 0:fda1a80ff1ac | 260 | TFT.DL(TAG(MATERIAL_AIR)); |
Vitan | 0:fda1a80ff1ac | 261 | TFT.Button(0.3*screen_width, 0.05*screen_heigth, 0.2*screen_width, 0.1*screen_heigth, 28, OPT_FLAT, "Air"); |
Vitan | 0:fda1a80ff1ac | 262 | TFT.DL(TAG(MATERIAL_BRICK)); |
Vitan | 0:fda1a80ff1ac | 263 | TFT.Button(0.3*screen_width, 0.25*screen_heigth, 0.2*screen_width, 0.1*screen_heigth, 28, OPT_FLAT, "Brick"); |
Vitan | 0:fda1a80ff1ac | 264 | TFT.DL(TAG(MATERIAL_CONCRETE)); |
Vitan | 0:fda1a80ff1ac | 265 | TFT.Button(0.3*screen_width, 0.45*screen_heigth, 0.2*screen_width, 0.1*screen_heigth, 28, OPT_FLAT, "Concrete"); |
Vitan | 0:fda1a80ff1ac | 266 | TFT.DL(TAG(MATERIAL_GYPSUM)); |
Vitan | 0:fda1a80ff1ac | 267 | TFT.Button(0.3*screen_width, 0.65*screen_heigth, 0.2*screen_width, 0.1*screen_heigth, 28, OPT_FLAT, "Gypsum"); |
Vitan | 0:fda1a80ff1ac | 268 | TFT.DL(TAG(MATERIAL_OTHER)); |
Vitan | 0:fda1a80ff1ac | 269 | TFT.Button(0.3*screen_width, 0.85*screen_heigth, 0.2*screen_width, 0.1*screen_heigth, 28, OPT_FLAT, "Other..."); |
Vitan | 0:fda1a80ff1ac | 270 | TFT.DL(TAG(KEY_CLOSE)); |
Vitan | 0:fda1a80ff1ac | 271 | TFT.Button(0.9*screen_width, 0.05*screen_heigth, 0.07*screen_width, 0.12*screen_heigth, 28, OPT_FLAT, "X"); |
Vitan | 0:fda1a80ff1ac | 272 | TFT.DL(TAG(0)); |
Vitan | 0:fda1a80ff1ac | 273 | TFT.DL(DISPLAY()); |
Vitan | 0:fda1a80ff1ac | 274 | TFT.Swap(); |
Vitan | 0:fda1a80ff1ac | 275 | TFT.Flush_Co_Buffer(); |
Vitan | 0:fda1a80ff1ac | 276 | TFT.WaitCmdfifo_empty(); |
Vitan | 0:fda1a80ff1ac | 277 | } |
Vitan | 0:fda1a80ff1ac | 278 | |
Vitan | 0:fda1a80ff1ac | 279 | void other_dlg() |
Vitan | 0:fda1a80ff1ac | 280 | { |
Vitan | 0:fda1a80ff1ac | 281 | TFT.DL(CMD_DLSTART); |
Vitan | 0:fda1a80ff1ac | 282 | TFT.DL(CLEAR_COLOR_RGB(255,255,255)); |
Vitan | 0:fda1a80ff1ac | 283 | TFT.DL(CLEAR(1,1,1)); |
Vitan | 0:fda1a80ff1ac | 284 | TFT.DL(COLOR_RGB(0,0,0)); |
Vitan | 0:fda1a80ff1ac | 285 | //TFT.Romfont(2, 33); |
Vitan | 0:fda1a80ff1ac | 286 | TFT.Text(0.8*screen_width, 0.02*screen_heigth, 28, 0, batt); |
Vitan | 0:fda1a80ff1ac | 287 | TFT.DL(COLOR_RGB(200,200,200)); |
Vitan | 0:fda1a80ff1ac | 288 | |
Vitan | 0:fda1a80ff1ac | 289 | sprintf(eps_str, "%d", eps/10); |
Vitan | 0:fda1a80ff1ac | 290 | TFT.Text(border_x-20, 0.4*screen_heigth, 2, 0, "Epsilon = "); |
Vitan | 0:fda1a80ff1ac | 291 | if(eps_position==0) |
Vitan | 0:fda1a80ff1ac | 292 | TFT.DL(COLOR_RGB(0,0,0)); |
Vitan | 0:fda1a80ff1ac | 293 | TFT.Text(0.5*screen_width, 0.4*screen_heigth, 2, 0, eps_str); |
Vitan | 0:fda1a80ff1ac | 294 | TFT.DL(COLOR_RGB(200,200,200)); |
Vitan | 0:fda1a80ff1ac | 295 | TFT.Text(0.55*screen_width, 0.4*screen_heigth, 2, 0, "."); |
Vitan | 0:fda1a80ff1ac | 296 | sprintf(eps_str, "%d", eps%10); |
Vitan | 0:fda1a80ff1ac | 297 | if(eps_position==1) |
Vitan | 0:fda1a80ff1ac | 298 | TFT.DL(COLOR_RGB(0,0,0)); |
Vitan | 0:fda1a80ff1ac | 299 | TFT.Text(0.58*screen_width, 0.4*screen_heigth, 2, 0, eps_str); |
Vitan | 0:fda1a80ff1ac | 300 | free(eps_str); |
Vitan | 0:fda1a80ff1ac | 301 | |
Vitan | 0:fda1a80ff1ac | 302 | TFT.DL(COLOR_RGB(255,255,255)); |
Vitan | 0:fda1a80ff1ac | 303 | TFT.FgColor(0xA0A0A0); |
Vitan | 0:fda1a80ff1ac | 304 | TFT.DL(TAG(KEY_UP)); |
Vitan | 0:fda1a80ff1ac | 305 | TFT.Button(0.81*screen_width, 0.55*screen_heigth, 0.07*screen_width, 0.12*screen_heigth, 30, 0, "^"); |
Vitan | 0:fda1a80ff1ac | 306 | TFT.DL(TAG(KEY_DOWN)); |
Vitan | 0:fda1a80ff1ac | 307 | TFT.Button(0.81*screen_width, 0.85*screen_heigth, 0.07*screen_width, 0.12*screen_heigth, 30, 0, "v"); |
Vitan | 0:fda1a80ff1ac | 308 | TFT.DL(TAG(KEY_LEFT)); |
Vitan | 0:fda1a80ff1ac | 309 | TFT.Button(0.72*screen_width, 0.7*screen_heigth, 0.07*screen_width, 0.12*screen_heigth, 30, 0, "<"); |
Vitan | 0:fda1a80ff1ac | 310 | TFT.DL(TAG(KEY_RIGHT)); |
Vitan | 0:fda1a80ff1ac | 311 | TFT.Button(0.9*screen_width, 0.7*screen_heigth, 0.07*screen_width, 0.12*screen_heigth, 30, 0, ">"); |
Vitan | 0:fda1a80ff1ac | 312 | TFT.DL(TAG(KEY_OK)); |
Vitan | 0:fda1a80ff1ac | 313 | TFT.Button(0.81*screen_width, 0.7*screen_heigth, 0.07*screen_width, 0.12*screen_heigth, 28, 0, "OK"); |
Vitan | 0:fda1a80ff1ac | 314 | TFT.DL(TAG(KEY_CLOSE)); |
Vitan | 0:fda1a80ff1ac | 315 | TFT.Button(0.9*screen_width, 0.05*screen_heigth, 0.07*screen_width, 0.12*screen_heigth, 30, OPT_FLAT, "X"); |
Vitan | 0:fda1a80ff1ac | 316 | TFT.DL(TAG(0)); |
Vitan | 0:fda1a80ff1ac | 317 | TFT.DL(DISPLAY()); |
Vitan | 0:fda1a80ff1ac | 318 | TFT.Swap(); |
Vitan | 0:fda1a80ff1ac | 319 | TFT.Flush_Co_Buffer(); |
Vitan | 0:fda1a80ff1ac | 320 | TFT.WaitCmdfifo_empty(); |
Vitan | 0:fda1a80ff1ac | 321 | } |
Vitan | 0:fda1a80ff1ac | 322 | |
Vitan | 0:fda1a80ff1ac | 323 | void save_dlg() |
Vitan | 0:fda1a80ff1ac | 324 | { |
Vitan | 0:fda1a80ff1ac | 325 | TFT.DL(CMD_DLSTART); |
Vitan | 0:fda1a80ff1ac | 326 | TFT.DL(CLEAR_COLOR_RGB(255,255,255)); |
Vitan | 0:fda1a80ff1ac | 327 | TFT.DL(CLEAR(1,1,1)); |
Vitan | 0:fda1a80ff1ac | 328 | TFT.FgColor(0xA0A0A0); |
Vitan | 0:fda1a80ff1ac | 329 | TFT.Text(0.8*screen_width, 0.02*screen_heigth, 28, 0, batt); |
Vitan | 0:fda1a80ff1ac | 330 | TFT.DL(TAG(FILE_SAVE)); |
Vitan | 0:fda1a80ff1ac | 331 | TFT.Button(0.2*screen_width, 0.6*screen_heigth, 0.2*screen_width, 0.12*screen_heigth, 28, 0, "Save"); |
Vitan | 0:fda1a80ff1ac | 332 | TFT.DL(TAG(FILE_DELETE)); |
Vitan | 0:fda1a80ff1ac | 333 | TFT.Button(0.6*screen_width, 0.6*screen_heigth, 0.2*screen_width, 0.12*screen_heigth, 28, 0, "Delete"); |
Vitan | 0:fda1a80ff1ac | 334 | TFT.DL(COLOR_RGB(0, 0, 0)); |
Vitan | 0:fda1a80ff1ac | 335 | //-->>TFT.Text(0.5*screen_width, 0.3*screen_heigth, 30, OPT_CENTERX, (char *)filename); |
Vitan | 0:fda1a80ff1ac | 336 | TFT.DL(DISPLAY()); |
Vitan | 0:fda1a80ff1ac | 337 | TFT.Swap(); |
Vitan | 0:fda1a80ff1ac | 338 | TFT.Flush_Co_Buffer(); |
Vitan | 0:fda1a80ff1ac | 339 | TFT.WaitCmdfifo_empty(); |
Vitan | 0:fda1a80ff1ac | 340 | } |
Vitan | 0:fda1a80ff1ac | 341 | |
Vitan | 0:fda1a80ff1ac | 342 | void scan_mode_dlg() |
Vitan | 0:fda1a80ff1ac | 343 | { |
Vitan | 0:fda1a80ff1ac | 344 | TFT.DL(CMD_DLSTART); |
Vitan | 0:fda1a80ff1ac | 345 | TFT.DL(CLEAR_COLOR_RGB(255,255,255)); |
Vitan | 0:fda1a80ff1ac | 346 | TFT.DL(CLEAR(1,1,1)); |
Vitan | 0:fda1a80ff1ac | 347 | TFT.FgColor(0xA0A0A0); |
Vitan | 0:fda1a80ff1ac | 348 | TFT.Text(0.8*screen_width, 0.02*screen_heigth, 28, 0, batt); |
Vitan | 0:fda1a80ff1ac | 349 | TFT.DL(TAG(KEY_ASCAN)); |
Vitan | 0:fda1a80ff1ac | 350 | TFT.Button(0.2*screen_width, 0.5*screen_heigth, 0.2*screen_width, 0.12*screen_heigth, 28, OPT_FLAT, "A-SCAN"); |
Vitan | 0:fda1a80ff1ac | 351 | TFT.DL(TAG(KEY_BSCAN)); |
Vitan | 0:fda1a80ff1ac | 352 | TFT.Button(0.6*screen_width, 0.5*screen_heigth, 0.2*screen_width, 0.12*screen_heigth, 28, OPT_FLAT, "B-SCAN"); |
Vitan | 0:fda1a80ff1ac | 353 | TFT.DL(TAG(KEY_CLOSE)); |
Vitan | 0:fda1a80ff1ac | 354 | TFT.Button(0.9*screen_width, 0.05*screen_heigth, 0.07*screen_width, 0.12*screen_heigth, 30, OPT_FLAT, "X"); |
Vitan | 0:fda1a80ff1ac | 355 | TFT.DL(TAG(0)); |
Vitan | 0:fda1a80ff1ac | 356 | TFT.DL(DISPLAY()); |
Vitan | 0:fda1a80ff1ac | 357 | TFT.Swap(); |
Vitan | 0:fda1a80ff1ac | 358 | TFT.Flush_Co_Buffer(); |
Vitan | 0:fda1a80ff1ac | 359 | TFT.WaitCmdfifo_empty(); |
Vitan | 0:fda1a80ff1ac | 360 | } |
Vitan | 0:fda1a80ff1ac | 361 | |
Vitan | 0:fda1a80ff1ac | 362 | /* |
Vitan | 0:fda1a80ff1ac | 363 | void disp_encoder(uint8_t count) |
Vitan | 0:fda1a80ff1ac | 364 | { |
Vitan | 0:fda1a80ff1ac | 365 | TFT.DLstart(); |
Vitan | 0:fda1a80ff1ac | 366 | TFT.DL(CLEAR_COLOR_RGB(0,0,0)); |
Vitan | 0:fda1a80ff1ac | 367 | TFT.DL(CLEAR(1,1,1)); |
Vitan | 0:fda1a80ff1ac | 368 | TFT.Text(200, 10, 31, OPT_RIGHTX, "Encoder:"); |
Vitan | 0:fda1a80ff1ac | 369 | TFT.Number(270, 10, 31, OPT_RIGHTX, enc.getPosition()); |
Vitan | 0:fda1a80ff1ac | 370 | TFT.DL(TAG(2)); |
Vitan | 0:fda1a80ff1ac | 371 | TFT.Button(360, 0, 120, 36, 27, 0, "Start"); |
Vitan | 0:fda1a80ff1ac | 372 | TFT.DL(TAG(3)); |
Vitan | 0:fda1a80ff1ac | 373 | TFT.Button(360, 38, 120, 36, 27, 0, "Exit"); |
Vitan | 0:fda1a80ff1ac | 374 | TFT.DL(END()); |
Vitan | 0:fda1a80ff1ac | 375 | TFT.DL(DISPLAY()); |
Vitan | 0:fda1a80ff1ac | 376 | TFT.Swap(); |
Vitan | 0:fda1a80ff1ac | 377 | |
Vitan | 0:fda1a80ff1ac | 378 | uint8_t ReadWord = TFT.Rd8(REG_TOUCH_TAG); |
Vitan | 0:fda1a80ff1ac | 379 | if (ReadWord == KEY_CLOSE) |
Vitan | 0:fda1a80ff1ac | 380 | { |
Vitan | 0:fda1a80ff1ac | 381 | status = STATUS_MAIN; |
Vitan | 0:fda1a80ff1ac | 382 | } |
Vitan | 0:fda1a80ff1ac | 383 | } |
Vitan | 0:fda1a80ff1ac | 384 | |
Vitan | 0:fda1a80ff1ac | 385 | void disp_adc(uint16_t data_adc) |
Vitan | 0:fda1a80ff1ac | 386 | { |
Vitan | 0:fda1a80ff1ac | 387 | TFT.DLstart(); |
Vitan | 0:fda1a80ff1ac | 388 | TFT.DL(CLEAR_COLOR_RGB(0,0,0)); |
Vitan | 0:fda1a80ff1ac | 389 | TFT.DL(CLEAR(1,1,1)); |
Vitan | 0:fda1a80ff1ac | 390 | TFT.Text(220, 200, 31, OPT_RIGHTX, "ADC Value:"); |
Vitan | 0:fda1a80ff1ac | 391 | TFT.Number(315, 200, 31, OPT_RIGHTX, (uint32_t)data_adc); |
Vitan | 0:fda1a80ff1ac | 392 | TFT.DL(TAG(2)); |
Vitan | 0:fda1a80ff1ac | 393 | TFT.Button(360, 0, 120, 36, 27, 0, "Start"); |
Vitan | 0:fda1a80ff1ac | 394 | TFT.DL(TAG(3)); |
Vitan | 0:fda1a80ff1ac | 395 | TFT.Button(360, 38, 120, 36, 27, 0, "Exit"); |
Vitan | 0:fda1a80ff1ac | 396 | TFT.DL(END()); |
Vitan | 0:fda1a80ff1ac | 397 | TFT.DL(DISPLAY()); |
Vitan | 0:fda1a80ff1ac | 398 | TFT.Swap(); |
Vitan | 0:fda1a80ff1ac | 399 | ReadWord = TFT.Rd8(REG_TOUCH_TAG); |
Vitan | 0:fda1a80ff1ac | 400 | if (ReadWord == KEY_CLOSE) |
Vitan | 0:fda1a80ff1ac | 401 | { |
Vitan | 0:fda1a80ff1ac | 402 | status = STATUS_MAIN; |
Vitan | 0:fda1a80ff1ac | 403 | } |
Vitan | 0:fda1a80ff1ac | 404 | } |
Vitan | 0:fda1a80ff1ac | 405 | |
Vitan | 0:fda1a80ff1ac | 406 | void disp_freq(uint64_t freq) |
Vitan | 0:fda1a80ff1ac | 407 | { |
Vitan | 0:fda1a80ff1ac | 408 | TFT.DLstart(); |
Vitan | 0:fda1a80ff1ac | 409 | TFT.DL(CLEAR_COLOR_RGB(0,0,0)); |
Vitan | 0:fda1a80ff1ac | 410 | TFT.DL(CLEAR(1,1,1)); |
Vitan | 0:fda1a80ff1ac | 411 | TFT.Text(220, 100, 31, OPT_RIGHTX, "Frequency:"); |
Vitan | 0:fda1a80ff1ac | 412 | TFT.Number(315, 100, 31, OPT_RIGHTX, (uint32_t)(freq/1000000)); |
Vitan | 0:fda1a80ff1ac | 413 | TFT.Text(325, 100, 31, OPT_RIGHTX, "."); |
Vitan | 0:fda1a80ff1ac | 414 | TFT.Number(350, 100, 31, OPT_RIGHTX, (uint32_t)(freq/100000)%10); |
Vitan | 0:fda1a80ff1ac | 415 | TFT.DL(TAG(2)); |
Vitan | 0:fda1a80ff1ac | 416 | TFT.Button(360, 0, 120, 36, 27, 0, "Start"); |
Vitan | 0:fda1a80ff1ac | 417 | TFT.DL(TAG(3)); |
Vitan | 0:fda1a80ff1ac | 418 | TFT.Button(360, 38, 120, 36, 27, 0, "Exit"); |
Vitan | 0:fda1a80ff1ac | 419 | TFT.DL(END()); |
Vitan | 0:fda1a80ff1ac | 420 | TFT.DL(DISPLAY()); |
Vitan | 0:fda1a80ff1ac | 421 | TFT.Swap(); |
Vitan | 0:fda1a80ff1ac | 422 | ReadWord = TFT.Rd8(REG_TOUCH_TAG); |
Vitan | 0:fda1a80ff1ac | 423 | if (ReadWord == KEY_CLOSE) |
Vitan | 0:fda1a80ff1ac | 424 | { |
Vitan | 0:fda1a80ff1ac | 425 | status = STATUS_MAIN; |
Vitan | 0:fda1a80ff1ac | 426 | } |
Vitan | 0:fda1a80ff1ac | 427 | } |
Vitan | 0:fda1a80ff1ac | 428 | */ |
Vitan | 0:fda1a80ff1ac | 429 | void disp_image(void) |
Vitan | 0:fda1a80ff1ac | 430 | { |
Vitan | 0:fda1a80ff1ac | 431 | uint8_t i = 0, tick = 0; |
Vitan | 0:fda1a80ff1ac | 432 | uint32_t j = 0; |
Vitan | 0:fda1a80ff1ac | 433 | |
Vitan | 0:fda1a80ff1ac | 434 | TFT.DL(CMD_DLSTART); |
Vitan | 0:fda1a80ff1ac | 435 | TFT.DL(CLEAR_COLOR_RGB(255,255,255)); |
Vitan | 0:fda1a80ff1ac | 436 | TFT.DL(CLEAR(1,1,1)); |
Vitan | 0:fda1a80ff1ac | 437 | buttons(); |
Vitan | 0:fda1a80ff1ac | 438 | TFT.DL(COLOR_RGB(0, 0, 0)); |
Vitan | 0:fda1a80ff1ac | 439 | TFT.Text(0.8*screen_width, 0.02*screen_heigth, 28, 0, batt); |
Vitan | 0:fda1a80ff1ac | 440 | TFT.DL(BITMAP_LAYOUT(PALETTED, 201, bitmap_height)); |
Vitan | 0:fda1a80ff1ac | 441 | TFT.DL(BITMAP_SIZE(BILINEAR, BORDER, BORDER, bitmap_height, 2*201)); |
Vitan | 0:fda1a80ff1ac | 442 | |
Vitan | 0:fda1a80ff1ac | 443 | float* dist = (float*)calloc(depth, sizeof(float)); |
Vitan | 0:fda1a80ff1ac | 444 | for(i=0; i<depth; i++) |
Vitan | 0:fda1a80ff1ac | 445 | { |
Vitan | 0:fda1a80ff1ac | 446 | dist[i] = i*xs/sqrt((float)(eps/10)); |
Vitan | 0:fda1a80ff1ac | 447 | } |
Vitan | 0:fda1a80ff1ac | 448 | |
Vitan | 0:fda1a80ff1ac | 449 | if(dist[depth-1]>0) |
Vitan | 0:fda1a80ff1ac | 450 | { |
Vitan | 0:fda1a80ff1ac | 451 | for(i=0; i<=dist[depth-1]/50; i++) |
Vitan | 0:fda1a80ff1ac | 452 | { |
Vitan | 0:fda1a80ff1ac | 453 | TFT.Number(0.05*screen_width, 2+200*i/(dist[depth-1]/50), 21, OPT_RIGHTX, (uint32_t)(50*i)); |
Vitan | 0:fda1a80ff1ac | 454 | } |
Vitan | 0:fda1a80ff1ac | 455 | } |
Vitan | 0:fda1a80ff1ac | 456 | if(dist[depth-1]>25&&dist[depth-1]<=50) |
Vitan | 0:fda1a80ff1ac | 457 | { |
Vitan | 0:fda1a80ff1ac | 458 | for(i=0; i<=dist[depth-1]/20; i++) |
Vitan | 0:fda1a80ff1ac | 459 | { |
Vitan | 0:fda1a80ff1ac | 460 | TFT.Number(0.05*screen_width, 2+200*i/(dist[depth-1]/20), 21, OPT_RIGHTX, (uint32_t)(20*i)); |
Vitan | 0:fda1a80ff1ac | 461 | } |
Vitan | 0:fda1a80ff1ac | 462 | } |
Vitan | 0:fda1a80ff1ac | 463 | if(dist[depth-1]>10&&dist[depth-1]<=25) |
Vitan | 0:fda1a80ff1ac | 464 | { |
Vitan | 0:fda1a80ff1ac | 465 | for(i=0; i<=dist[depth-1]/10; i++) |
Vitan | 0:fda1a80ff1ac | 466 | { |
Vitan | 0:fda1a80ff1ac | 467 | TFT.Number(0.05*screen_width, 2+200*i/(dist[depth-1]/10), 21, OPT_RIGHTX, (uint32_t)(10*i)); |
Vitan | 0:fda1a80ff1ac | 468 | } |
Vitan | 0:fda1a80ff1ac | 469 | } |
Vitan | 0:fda1a80ff1ac | 470 | if(dist[depth-1]>1&&dist[depth-1]<=10) |
Vitan | 0:fda1a80ff1ac | 471 | { |
Vitan | 0:fda1a80ff1ac | 472 | for(i=0; i<=dist[depth-1]/5; i++) |
Vitan | 0:fda1a80ff1ac | 473 | { |
Vitan | 0:fda1a80ff1ac | 474 | TFT.Number(0.05*screen_width, 2+200*i/(dist[depth-1]/5), 21, OPT_RIGHTX, (uint32_t)(5*i)); |
Vitan | 0:fda1a80ff1ac | 475 | } |
Vitan | 0:fda1a80ff1ac | 476 | } |
Vitan | 0:fda1a80ff1ac | 477 | free(dist); |
Vitan | 0:fda1a80ff1ac | 478 | |
Vitan | 0:fda1a80ff1ac | 479 | if(xscale*steps>bitmap_height) |
Vitan | 0:fda1a80ff1ac | 480 | { |
Vitan | 0:fda1a80ff1ac | 481 | TFT.DL(BITMAP_SOURCE(RAM_G+201*((xscale*steps-bitmap_height)/xscale))); |
Vitan | 0:fda1a80ff1ac | 482 | for(j=0; j<12+(steps%5==0); j++) |
Vitan | 0:fda1a80ff1ac | 483 | { |
Vitan | 0:fda1a80ff1ac | 484 | TFT.Number(border_x+xscale*(steps%5)+40*j, 0.88*screen_heigth, 22, OPT_RIGHTX, 5*(floor((float)(steps/5))-j)); |
Vitan | 0:fda1a80ff1ac | 485 | } |
Vitan | 0:fda1a80ff1ac | 486 | } |
Vitan | 0:fda1a80ff1ac | 487 | else |
Vitan | 0:fda1a80ff1ac | 488 | { |
Vitan | 0:fda1a80ff1ac | 489 | TFT.DL(BITMAP_SOURCE(RAM_G)); |
Vitan | 0:fda1a80ff1ac | 490 | for(j=0; j<=12; j++) |
Vitan | 0:fda1a80ff1ac | 491 | { |
Vitan | 0:fda1a80ff1ac | 492 | TFT.Number(border_x+bitmap_height-5*xscale*j, 0.88*screen_heigth, 22, OPT_RIGHTX, 5*j); |
Vitan | 0:fda1a80ff1ac | 493 | } |
Vitan | 0:fda1a80ff1ac | 494 | } |
Vitan | 0:fda1a80ff1ac | 495 | |
Vitan | 0:fda1a80ff1ac | 496 | char* eps_str = (char*)calloc(8, sizeof(char)); |
Vitan | 0:fda1a80ff1ac | 497 | sprintf(eps_str, "e = %d.%d", eps/10, eps%10); |
Vitan | 0:fda1a80ff1ac | 498 | TFT.DL(COLOR_RGB(255, 255, 255)); |
Vitan | 0:fda1a80ff1ac | 499 | TFT.DL(TAG(KEY_EPS)); |
Vitan | 0:fda1a80ff1ac | 500 | TFT.Button(0.67*screen_width, 0.02*screen_heigth, 0.12*screen_width, 0.07*screen_heigth, 22, OPT_FLAT, eps_str); |
Vitan | 0:fda1a80ff1ac | 501 | free(eps_str); |
Vitan | 0:fda1a80ff1ac | 502 | |
Vitan | 0:fda1a80ff1ac | 503 | TFT.DL(BEGIN(BITMAPS)); |
Vitan | 0:fda1a80ff1ac | 504 | TFT.DL(BLEND_FUNC(ONE, ZERO)); |
Vitan | 0:fda1a80ff1ac | 505 | TFT.LoadIdentity(); |
Vitan | 0:fda1a80ff1ac | 506 | TFT.Rotate(90*65536/360); |
Vitan | 0:fda1a80ff1ac | 507 | TFT.Translate(65536*0, 65536*(-bitmap_height)); |
Vitan | 0:fda1a80ff1ac | 508 | TFT.Scale(yscale*201*65536/depth, xscale*65536); |
Vitan | 0:fda1a80ff1ac | 509 | TFT.SetMatrix(); |
Vitan | 0:fda1a80ff1ac | 510 | |
Vitan | 0:fda1a80ff1ac | 511 | //Draw Alpha channel |
Vitan | 0:fda1a80ff1ac | 512 | //TFT.DL(COLOR_MASK(0, 0, 0, 1)); |
Vitan | 0:fda1a80ff1ac | 513 | //TFT.DL(PALETTE_SOURCE(PALETTE_ADDR+3)); |
Vitan | 0:fda1a80ff1ac | 514 | //TFT.DL(VERTEX2II(border_x, border_y, 0, 0)); |
Vitan | 0:fda1a80ff1ac | 515 | |
Vitan | 0:fda1a80ff1ac | 516 | //Draw Red channel |
Vitan | 0:fda1a80ff1ac | 517 | //TFT.DL(BLEND_FUNC(DST_ALPHA, ONE_MINUS_DST_ALPHA)); |
Vitan | 0:fda1a80ff1ac | 518 | //TFT.DL(COLOR_MASK(1, 0, 0, 0)); |
Vitan | 0:fda1a80ff1ac | 519 | //TFT.DL(PALETTE_SOURCE(PALETTE_ADDR+2)); |
Vitan | 0:fda1a80ff1ac | 520 | //TFT.DL(VERTEX2II(border_x, 10, 0, 0)); |
Vitan | 0:fda1a80ff1ac | 521 | |
Vitan | 0:fda1a80ff1ac | 522 | //Draw Green channel |
Vitan | 0:fda1a80ff1ac | 523 | //TFT.DL(COLOR_MASK(0, 1, 0, 0)); |
Vitan | 0:fda1a80ff1ac | 524 | //TFT.DL(PALETTE_SOURCE(PALETTE_ADDR+1)); |
Vitan | 0:fda1a80ff1ac | 525 | //TFT.DL(VERTEX2II(border_x, 10, 0, 0)); |
Vitan | 0:fda1a80ff1ac | 526 | |
Vitan | 0:fda1a80ff1ac | 527 | //Draw Blue channel |
Vitan | 0:fda1a80ff1ac | 528 | //TFT.DL(COLOR_MASK(0, 0, 1, 0)); |
Vitan | 0:fda1a80ff1ac | 529 | //TFT.DL(PALETTE_SOURCE(PALETTE_ADDR)); |
Vitan | 0:fda1a80ff1ac | 530 | //TFT.DL(VERTEX2II(border_x, 10, 0, 0)); |
Vitan | 0:fda1a80ff1ac | 531 | TFT.DL(END()); |
Vitan | 0:fda1a80ff1ac | 532 | |
Vitan | 0:fda1a80ff1ac | 533 | TFT.DL(DISPLAY()); |
Vitan | 0:fda1a80ff1ac | 534 | TFT.DL(CMD_SWAP); |
Vitan | 0:fda1a80ff1ac | 535 | //finish(); |
Vitan | 0:fda1a80ff1ac | 536 | } |
Vitan | 0:fda1a80ff1ac | 537 | |
Vitan | 0:fda1a80ff1ac | 538 | void line(uint8_t *data_in, int points)//, uint32_t color) |
Vitan | 0:fda1a80ff1ac | 539 | { |
Vitan | 0:fda1a80ff1ac | 540 | uint16_t i; |
Vitan | 0:fda1a80ff1ac | 541 | TFT.DL(BEGIN(LINE_STRIP)); |
Vitan | 0:fda1a80ff1ac | 542 | for(i=0; i<points; i++) |
Vitan | 0:fda1a80ff1ac | 543 | { |
Vitan | 0:fda1a80ff1ac | 544 | TFT.DL(VERTEX2II(i+30, 255-(uint32_t)(data_in[i]), 0, 0)); |
Vitan | 0:fda1a80ff1ac | 545 | } |
Vitan | 0:fda1a80ff1ac | 546 | TFT.DL(END()); |
Vitan | 0:fda1a80ff1ac | 547 | } |
Vitan | 0:fda1a80ff1ac | 548 | |
Vitan | 0:fda1a80ff1ac | 549 | void plot() |
Vitan | 0:fda1a80ff1ac | 550 | { |
Vitan | 0:fda1a80ff1ac | 551 | TFT.DLstart(); |
Vitan | 0:fda1a80ff1ac | 552 | TFT.DL(POINT_SIZE(16*2)); |
Vitan | 0:fda1a80ff1ac | 553 | TFT.DL(CLEAR_COLOR_RGB(0,0,0)); |
Vitan | 0:fda1a80ff1ac | 554 | TFT.DL(CLEAR(1,1,1)); |
Vitan | 0:fda1a80ff1ac | 555 | TFT.FgColor(0x404040); |
Vitan | 0:fda1a80ff1ac | 556 | TFT.DL(TAG(3)); |
Vitan | 0:fda1a80ff1ac | 557 | TFT.DL(COLOR_RGB(0xFF, 0x00, 0x00)); |
Vitan | 0:fda1a80ff1ac | 558 | line(sig, 201); |
Vitan | 0:fda1a80ff1ac | 559 | TFT.DL(COLOR_RGB(0x00, 0x00, 0xFF)); |
Vitan | 0:fda1a80ff1ac | 560 | line(temp_value, 401); |
Vitan | 0:fda1a80ff1ac | 561 | TFT.DL(DISPLAY()); |
Vitan | 0:fda1a80ff1ac | 562 | TFT.Swap(); |
Vitan | 0:fda1a80ff1ac | 563 | ReadWord = TFT.Rd8(REG_TOUCH_TAG); |
Vitan | 0:fda1a80ff1ac | 564 | if(ReadWord == KEY_CLOSE) |
Vitan | 0:fda1a80ff1ac | 565 | { |
Vitan | 0:fda1a80ff1ac | 566 | status = STATUS_MAIN; |
Vitan | 0:fda1a80ff1ac | 567 | } |
Vitan | 0:fda1a80ff1ac | 568 | } |
Vitan | 0:fda1a80ff1ac | 569 | |
Vitan | 0:fda1a80ff1ac | 570 | void sweep() |
Vitan | 0:fda1a80ff1ac | 571 | { |
Vitan | 0:fda1a80ff1ac | 572 | for (uint8_t j=0; j<201; j++) |
Vitan | 0:fda1a80ff1ac | 573 | { |
Vitan | 0:fda1a80ff1ac | 574 | out.write_u16(dac_value[j]); |
Vitan | 0:fda1a80ff1ac | 575 | wait_us(100); |
Vitan | 0:fda1a80ff1ac | 576 | buffer[j] = in0.read_u16(); |
Vitan | 0:fda1a80ff1ac | 577 | } |
Vitan | 0:fda1a80ff1ac | 578 | out.write_u16(dac_value[0]); |
Vitan | 0:fda1a80ff1ac | 579 | wait_ms(10); |
Vitan | 0:fda1a80ff1ac | 580 | } |
Vitan | 0:fda1a80ff1ac | 581 | |
Vitan | 0:fda1a80ff1ac | 582 | void find_peaks(float *testOutput, uint8_t offset) |
Vitan | 0:fda1a80ff1ac | 583 | { |
Vitan | 0:fda1a80ff1ac | 584 | for(uint16_t i=offset+5; i<offset+201-5; i++) |
Vitan | 0:fda1a80ff1ac | 585 | { |
Vitan | 0:fda1a80ff1ac | 586 | if((testOutput[i]>testOutput[i-1])&(testOutput[i]>testOutput[i+1])) |
Vitan | 0:fda1a80ff1ac | 587 | { |
Vitan | 0:fda1a80ff1ac | 588 | for(uint16_t j=0;j<11;j++) |
Vitan | 0:fda1a80ff1ac | 589 | temp_value[i+j-offset-5] = (testOutput[i+j-5]*gauss[j])/gauss[5]; |
Vitan | 0:fda1a80ff1ac | 590 | // sig[i+j-offset-5] = (testOutput[i+j-5]*gauss[j])/gauss[5]; |
Vitan | 0:fda1a80ff1ac | 591 | } |
Vitan | 0:fda1a80ff1ac | 592 | } |
Vitan | 0:fda1a80ff1ac | 593 | sig[0] = 0; |
Vitan | 0:fda1a80ff1ac | 594 | } |
Vitan | 0:fda1a80ff1ac | 595 | |
Vitan | 0:fda1a80ff1ac | 596 | float interp1(float x, uint8_t a[], int n) |
Vitan | 0:fda1a80ff1ac | 597 | { |
Vitan | 0:fda1a80ff1ac | 598 | int j; |
Vitan | 0:fda1a80ff1ac | 599 | if(x<=0) return a[0]; |
Vitan | 0:fda1a80ff1ac | 600 | if(x>=n-1) return a[n-1]; |
Vitan | 0:fda1a80ff1ac | 601 | j = (int)(x); |
Vitan | 0:fda1a80ff1ac | 602 | return a[j]+(x-j)*(a[j+1]-a[j]); |
Vitan | 0:fda1a80ff1ac | 603 | } |
Vitan | 0:fda1a80ff1ac | 604 | |
Vitan | 0:fda1a80ff1ac | 605 | // linear interpolate array a[] -> array b[] |
Vitan | 0:fda1a80ff1ac | 606 | void interp1array(uint8_t a[], int n, float b[], int m) |
Vitan | 0:fda1a80ff1ac | 607 | { |
Vitan | 0:fda1a80ff1ac | 608 | float step; |
Vitan | 0:fda1a80ff1ac | 609 | step = (float)((n-1)/(m-1)); |
Vitan | 0:fda1a80ff1ac | 610 | for(int j=0; j<m; j++) |
Vitan | 0:fda1a80ff1ac | 611 | { |
Vitan | 0:fda1a80ff1ac | 612 | b[j] = interp1(j*step, a, n); |
Vitan | 0:fda1a80ff1ac | 613 | } |
Vitan | 0:fda1a80ff1ac | 614 | } |
Vitan | 0:fda1a80ff1ac | 615 | |
Vitan | 0:fda1a80ff1ac | 616 | void get_data(void) |
Vitan | 0:fda1a80ff1ac | 617 | { |
Vitan | 0:fda1a80ff1ac | 618 | uint8_t i; |
Vitan | 0:fda1a80ff1ac | 619 | sweep(); |
Vitan | 0:fda1a80ff1ac | 620 | |
Vitan | 0:fda1a80ff1ac | 621 | for(i=0; i<201; i++) |
Vitan | 0:fda1a80ff1ac | 622 | { |
Vitan | 0:fda1a80ff1ac | 623 | testInput[2*i] = ((float)(buffer[i]-matched_load[i]))*blackman_win[i]/detector[i]; |
Vitan | 0:fda1a80ff1ac | 624 | } |
Vitan | 0:fda1a80ff1ac | 625 | |
Vitan | 0:fda1a80ff1ac | 626 | arm_cfft_f32(&arm_cfft_sR_f32_len1024, testInput, ifftFlag, doBitReverse); |
Vitan | 0:fda1a80ff1ac | 627 | arm_cmplx_mag_f32(testInput, testOutput, fftSize); |
Vitan | 0:fda1a80ff1ac | 628 | arm_max_f32(testOutput, fftSize, &maxValue, &testIndex); |
Vitan | 0:fda1a80ff1ac | 629 | |
Vitan | 0:fda1a80ff1ac | 630 | find_peaks(testOutput, offset); |
Vitan | 0:fda1a80ff1ac | 631 | |
Vitan | 0:fda1a80ff1ac | 632 | for(i=0; i<201; i++) |
Vitan | 0:fda1a80ff1ac | 633 | { |
Vitan | 0:fda1a80ff1ac | 634 | if(temp_value[i]>maxValue_concrete) |
Vitan | 0:fda1a80ff1ac | 635 | sig[i] = 255; |
Vitan | 0:fda1a80ff1ac | 636 | else |
Vitan | 0:fda1a80ff1ac | 637 | sig[i] = floor(255*temp_value[i]/maxValue); |
Vitan | 0:fda1a80ff1ac | 638 | } |
Vitan | 0:fda1a80ff1ac | 639 | |
Vitan | 0:fda1a80ff1ac | 640 | interp1array(sig, 201, sig_interp, 401); |
Vitan | 0:fda1a80ff1ac | 641 | //TFT.Wr_STR(addr, sig, 201); |
Vitan | 0:fda1a80ff1ac | 642 | } |
Vitan | 0:fda1a80ff1ac | 643 | |
Vitan | 0:fda1a80ff1ac | 644 | void scroll_image(uint16_t shift, uint16_t depth) |
Vitan | 0:fda1a80ff1ac | 645 | { |
Vitan | 0:fda1a80ff1ac | 646 | uint8_t i = 0, j = 0, tick = 0; |
Vitan | 0:fda1a80ff1ac | 647 | |
Vitan | 0:fda1a80ff1ac | 648 | TFT.DLstart(); |
Vitan | 0:fda1a80ff1ac | 649 | //TFT.Clear(1, 1, 1); |
Vitan | 0:fda1a80ff1ac | 650 | //TFT.DL(COLOR_RGB(255, 255, 255)); |
Vitan | 0:fda1a80ff1ac | 651 | |
Vitan | 0:fda1a80ff1ac | 652 | TFT.Append(220000, dloffset1); |
Vitan | 0:fda1a80ff1ac | 653 | |
Vitan | 0:fda1a80ff1ac | 654 | while(depth/(tick+1)>8) |
Vitan | 0:fda1a80ff1ac | 655 | { |
Vitan | 0:fda1a80ff1ac | 656 | tick++; |
Vitan | 0:fda1a80ff1ac | 657 | } |
Vitan | 0:fda1a80ff1ac | 658 | |
Vitan | 0:fda1a80ff1ac | 659 | for(i=0; i<=depth/tick; i++) |
Vitan | 0:fda1a80ff1ac | 660 | { |
Vitan | 0:fda1a80ff1ac | 661 | TFT.Number(22, 2+200*tick*i/depth, 16, OPT_RIGHTX, tick*i); |
Vitan | 0:fda1a80ff1ac | 662 | } |
Vitan | 0:fda1a80ff1ac | 663 | |
Vitan | 0:fda1a80ff1ac | 664 | TFT.DL(BITMAP_SOURCE(RAM_G+201*(shift-320))); |
Vitan | 0:fda1a80ff1ac | 665 | |
Vitan | 0:fda1a80ff1ac | 666 | if(shift<=320) |
Vitan | 0:fda1a80ff1ac | 667 | { |
Vitan | 0:fda1a80ff1ac | 668 | for(j = 0; j < 7; j++) |
Vitan | 0:fda1a80ff1ac | 669 | { |
Vitan | 0:fda1a80ff1ac | 670 | TFT.Number(border_x+320-50*j, 215, 16, OPT_RIGHTX, 50*j); |
Vitan | 0:fda1a80ff1ac | 671 | } |
Vitan | 0:fda1a80ff1ac | 672 | } |
Vitan | 0:fda1a80ff1ac | 673 | else |
Vitan | 0:fda1a80ff1ac | 674 | { |
Vitan | 0:fda1a80ff1ac | 675 | for(j = 1; j < 7+((shift-20)%50==0); j++) |
Vitan | 0:fda1a80ff1ac | 676 | { |
Vitan | 0:fda1a80ff1ac | 677 | TFT.Number(border_x+320-50*j+(shift-320)%50, 215, 16, OPT_RIGHTX, 50*(j+(shift-320)/50)); |
Vitan | 0:fda1a80ff1ac | 678 | } |
Vitan | 0:fda1a80ff1ac | 679 | } |
Vitan | 0:fda1a80ff1ac | 680 | |
Vitan | 0:fda1a80ff1ac | 681 | TFT.Number(425, 130, 16, 0, steps); |
Vitan | 0:fda1a80ff1ac | 682 | TFT.Number(425, 145, 16, 0, depth); |
Vitan | 0:fda1a80ff1ac | 683 | TFT.DL(BITMAP_LAYOUT(PALETTED, 201, bitmap_height)); |
Vitan | 0:fda1a80ff1ac | 684 | TFT.DL(BITMAP_SIZE(BILINEAR, BORDER, BORDER, bitmap_height, 201)); |
Vitan | 0:fda1a80ff1ac | 685 | TFT.DL(BEGIN(BITMAPS)); |
Vitan | 0:fda1a80ff1ac | 686 | TFT.LoadIdentity(); |
Vitan | 0:fda1a80ff1ac | 687 | TFT.Rotate(90*65536/360); |
Vitan | 0:fda1a80ff1ac | 688 | TFT.Translate(65536*0, 65536*-bitmap_height); |
Vitan | 0:fda1a80ff1ac | 689 | TFT.Scale(201*65536/depth, 65536); |
Vitan | 0:fda1a80ff1ac | 690 | TFT.SetMatrix(); |
Vitan | 0:fda1a80ff1ac | 691 | TFT.DL(VERTEX2II(border_x, 10, 0, 0)); |
Vitan | 0:fda1a80ff1ac | 692 | TFT.DL(END()); |
Vitan | 0:fda1a80ff1ac | 693 | TFT.DL(DISPLAY()); |
Vitan | 0:fda1a80ff1ac | 694 | TFT.Swap(); |
Vitan | 0:fda1a80ff1ac | 695 | TFT.Flush_Co_Buffer(); |
Vitan | 0:fda1a80ff1ac | 696 | TFT.WaitCmdfifo_empty(); |
Vitan | 0:fda1a80ff1ac | 697 | } |
Vitan | 0:fda1a80ff1ac | 698 | |
Vitan | 0:fda1a80ff1ac | 699 | void sound(uint8_t effect) |
Vitan | 0:fda1a80ff1ac | 700 | { |
Vitan | 0:fda1a80ff1ac | 701 | TFT.Wr8(REG_VOL_SOUND, 0xFF); |
Vitan | 0:fda1a80ff1ac | 702 | TFT.Wr16(REG_SOUND, effect); |
Vitan | 0:fda1a80ff1ac | 703 | TFT.Wr8(REG_PLAY, 1); |
Vitan | 0:fda1a80ff1ac | 704 | while(TFT.Rd8(REG_PLAY)); |
Vitan | 0:fda1a80ff1ac | 705 | TFT.Wr16(REG_SOUND, 0); |
Vitan | 0:fda1a80ff1ac | 706 | TFT.Wr8(REG_PLAY, 1); |
Vitan | 0:fda1a80ff1ac | 707 | } |
Vitan | 0:fda1a80ff1ac | 708 | |
Vitan | 0:fda1a80ff1ac | 709 | void update_gui(void) |
Vitan | 0:fda1a80ff1ac | 710 | { |
Vitan | 0:fda1a80ff1ac | 711 | //uint8_t i = 0, tagval; |
Vitan | 0:fda1a80ff1ac | 712 | //uint16_t n = 0; |
Vitan | 0:fda1a80ff1ac | 713 | //uint32_t tracker = TFT.Rd32(REG_TRACKER); |
Vitan | 0:fda1a80ff1ac | 714 | /* |
Vitan | 0:fda1a80ff1ac | 715 | switch(tracker & 0xff) |
Vitan | 0:fda1a80ff1ac | 716 | { |
Vitan | 0:fda1a80ff1ac | 717 | case TRACK_DEPTH: |
Vitan | 0:fda1a80ff1ac | 718 | { |
Vitan | 0:fda1a80ff1ac | 719 | depth = 201-(tracker>>25); |
Vitan | 0:fda1a80ff1ac | 720 | break; |
Vitan | 0:fda1a80ff1ac | 721 | } |
Vitan | 0:fda1a80ff1ac | 722 | case TRACK_DISTANCE: |
Vitan | 0:fda1a80ff1ac | 723 | { |
Vitan | 0:fda1a80ff1ac | 724 | scroll_distance_val = tracker>>23; |
Vitan | 0:fda1a80ff1ac | 725 | break; |
Vitan | 0:fda1a80ff1ac | 726 | } |
Vitan | 0:fda1a80ff1ac | 727 | case TRACK_SLIDER: |
Vitan | 0:fda1a80ff1ac | 728 | { |
Vitan | 0:fda1a80ff1ac | 729 | slider_val = tracker>>16; |
Vitan | 0:fda1a80ff1ac | 730 | break; |
Vitan | 0:fda1a80ff1ac | 731 | } |
Vitan | 0:fda1a80ff1ac | 732 | default: |
Vitan | 0:fda1a80ff1ac | 733 | break; |
Vitan | 0:fda1a80ff1ac | 734 | } |
Vitan | 0:fda1a80ff1ac | 735 | */ |
Vitan | 0:fda1a80ff1ac | 736 | get_charge(); |
Vitan | 0:fda1a80ff1ac | 737 | switch (status) |
Vitan | 0:fda1a80ff1ac | 738 | { |
Vitan | 0:fda1a80ff1ac | 739 | case STATUS_MAIN: |
Vitan | 0:fda1a80ff1ac | 740 | { |
Vitan | 0:fda1a80ff1ac | 741 | start_screen(); |
Vitan | 0:fda1a80ff1ac | 742 | switch(Read_Keys()) |
Vitan | 0:fda1a80ff1ac | 743 | { |
Vitan | 0:fda1a80ff1ac | 744 | case KEY_SCAN: |
Vitan | 0:fda1a80ff1ac | 745 | { |
Vitan | 0:fda1a80ff1ac | 746 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 747 | status = STATUS_BSCAN; |
Vitan | 0:fda1a80ff1ac | 748 | break; |
Vitan | 0:fda1a80ff1ac | 749 | /*scan_mode_dlg(); |
Vitan | 0:fda1a80ff1ac | 750 | keyPressed = 0; |
Vitan | 0:fda1a80ff1ac | 751 | while(!keyPressed) |
Vitan | 0:fda1a80ff1ac | 752 | { |
Vitan | 0:fda1a80ff1ac | 753 | keyPressed = TFT.Rd8(REG_TOUCH_TAG); |
Vitan | 0:fda1a80ff1ac | 754 | } |
Vitan | 0:fda1a80ff1ac | 755 | if(keyPressed == KEY_BSCAN) |
Vitan | 0:fda1a80ff1ac | 756 | { |
Vitan | 0:fda1a80ff1ac | 757 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 758 | TFT.MemZero(RAM_G, 201000); |
Vitan | 0:fda1a80ff1ac | 759 | disp_image(); |
Vitan | 0:fda1a80ff1ac | 760 | status = STATUS_BSCAN; |
Vitan | 0:fda1a80ff1ac | 761 | break; |
Vitan | 0:fda1a80ff1ac | 762 | } |
Vitan | 0:fda1a80ff1ac | 763 | else |
Vitan | 0:fda1a80ff1ac | 764 | { |
Vitan | 0:fda1a80ff1ac | 765 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 766 | addr = 0; |
Vitan | 0:fda1a80ff1ac | 767 | status = STATUS_ASCAN; |
Vitan | 0:fda1a80ff1ac | 768 | break; |
Vitan | 0:fda1a80ff1ac | 769 | }*/ |
Vitan | 0:fda1a80ff1ac | 770 | } |
Vitan | 0:fda1a80ff1ac | 771 | //case KEY_FILES: |
Vitan | 0:fda1a80ff1ac | 772 | { |
Vitan | 0:fda1a80ff1ac | 773 | /*sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 774 | fm_curPath = "/"; |
Vitan | 0:fda1a80ff1ac | 775 | res = f_chdir(fm_curPath); |
Vitan | 0:fda1a80ff1ac | 776 | res = scan_folders(fm_curPath); |
Vitan | 0:fda1a80ff1ac | 777 | status = STATUS_FILES; |
Vitan | 0:fda1a80ff1ac | 778 | break;*/ |
Vitan | 0:fda1a80ff1ac | 779 | } |
Vitan | 0:fda1a80ff1ac | 780 | case KEY_TIME: |
Vitan | 0:fda1a80ff1ac | 781 | { |
Vitan | 0:fda1a80ff1ac | 782 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 783 | time_position = 0; |
Vitan | 0:fda1a80ff1ac | 784 | status = STATUS_TIME; |
Vitan | 0:fda1a80ff1ac | 785 | break; |
Vitan | 0:fda1a80ff1ac | 786 | } |
Vitan | 0:fda1a80ff1ac | 787 | } |
Vitan | 0:fda1a80ff1ac | 788 | break; |
Vitan | 0:fda1a80ff1ac | 789 | } |
Vitan | 0:fda1a80ff1ac | 790 | case STATUS_ASCAN: |
Vitan | 0:fda1a80ff1ac | 791 | { |
Vitan | 0:fda1a80ff1ac | 792 | switch(Read_Keys()) |
Vitan | 0:fda1a80ff1ac | 793 | { |
Vitan | 0:fda1a80ff1ac | 794 | case KEY_START: |
Vitan | 0:fda1a80ff1ac | 795 | { |
Vitan | 0:fda1a80ff1ac | 796 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 797 | /*addr+=201; |
Vitan | 0:fda1a80ff1ac | 798 | get_data(); |
Vitan | 0:fda1a80ff1ac | 799 | n = 0; |
Vitan | 0:fda1a80ff1ac | 800 | |
Vitan | 0:fda1a80ff1ac | 801 | uint8_t* buff = (uint8_t*) malloc(1004); |
Vitan | 0:fda1a80ff1ac | 802 | for(i=0; i<201; i++) |
Vitan | 0:fda1a80ff1ac | 803 | { |
Vitan | 0:fda1a80ff1ac | 804 | n += sprintf(&buff[n], "%4u ", buffer[i]); |
Vitan | 0:fda1a80ff1ac | 805 | } |
Vitan | 0:fda1a80ff1ac | 806 | |
Vitan | 0:fda1a80ff1ac | 807 | res = f_write(&fil_obj, buff, n-1, &len); |
Vitan | 0:fda1a80ff1ac | 808 | res = f_write(&fil_obj, "\n", 1, &len); |
Vitan | 0:fda1a80ff1ac | 809 | free(buff);*/ |
Vitan | 0:fda1a80ff1ac | 810 | break; |
Vitan | 0:fda1a80ff1ac | 811 | } |
Vitan | 0:fda1a80ff1ac | 812 | case KEY_STOP: |
Vitan | 0:fda1a80ff1ac | 813 | { |
Vitan | 0:fda1a80ff1ac | 814 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 815 | /*addr = 0; |
Vitan | 0:fda1a80ff1ac | 816 | res = f_close(&fil_obj); |
Vitan | 0:fda1a80ff1ac | 817 | save_dlg(); |
Vitan | 0:fda1a80ff1ac | 818 | ReadWord = 0; |
Vitan | 0:fda1a80ff1ac | 819 | while(!keyPressed) |
Vitan | 0:fda1a80ff1ac | 820 | { |
Vitan | 0:fda1a80ff1ac | 821 | keyPressed = TFT.Rd8(REG_TOUCH_TAG); |
Vitan | 0:fda1a80ff1ac | 822 | } |
Vitan | 0:fda1a80ff1ac | 823 | if(ReadWord == FILE_DELETE) |
Vitan | 0:fda1a80ff1ac | 824 | { |
Vitan | 0:fda1a80ff1ac | 825 | res = f_unlink(filename); |
Vitan | 0:fda1a80ff1ac | 826 | } |
Vitan | 0:fda1a80ff1ac | 827 | else |
Vitan | 0:fda1a80ff1ac | 828 | { |
Vitan | 0:fda1a80ff1ac | 829 | sprintf(filename, "A20%02d%02d%02d_%02d%02d%02d.asn", date.tm_year, date.tm_mon, date.tm_mday, date.tm_hour, date.tm_min, date.tm_sec); |
Vitan | 0:fda1a80ff1ac | 830 | res = f_open(&fil_obj, filename, FA_CREATE_ALWAYS|FA_WRITE); |
Vitan | 0:fda1a80ff1ac | 831 | for(addr=0; addr<201*steps; addr+=201) |
Vitan | 0:fda1a80ff1ac | 832 | { |
Vitan | 0:fda1a80ff1ac | 833 | HOST_MEM_READ_STR(addr, sig, 201); |
Vitan | 0:fda1a80ff1ac | 834 | f_write(&fil_obj, &sig, 201, &len); |
Vitan | 0:fda1a80ff1ac | 835 | } |
Vitan | 0:fda1a80ff1ac | 836 | f_close(&fil_obj); |
Vitan | 0:fda1a80ff1ac | 837 | }*/ |
Vitan | 0:fda1a80ff1ac | 838 | status = STATUS_ASCAN; |
Vitan | 0:fda1a80ff1ac | 839 | break; |
Vitan | 0:fda1a80ff1ac | 840 | } |
Vitan | 0:fda1a80ff1ac | 841 | case KEY_CLOSE: |
Vitan | 0:fda1a80ff1ac | 842 | { |
Vitan | 0:fda1a80ff1ac | 843 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 844 | //res = f_close(&fil_obj); |
Vitan | 0:fda1a80ff1ac | 845 | //res = f_unlink(filename); |
Vitan | 0:fda1a80ff1ac | 846 | status = STATUS_MAIN; |
Vitan | 0:fda1a80ff1ac | 847 | break; |
Vitan | 0:fda1a80ff1ac | 848 | } |
Vitan | 0:fda1a80ff1ac | 849 | default: |
Vitan | 0:fda1a80ff1ac | 850 | { |
Vitan | 0:fda1a80ff1ac | 851 | keyPressed = TFT.Rd8(REG_TOUCH_TAG); |
Vitan | 0:fda1a80ff1ac | 852 | if(keyPressed == KEY_CLOSE) |
Vitan | 0:fda1a80ff1ac | 853 | { |
Vitan | 0:fda1a80ff1ac | 854 | status = STATUS_MAIN; |
Vitan | 0:fda1a80ff1ac | 855 | } |
Vitan | 0:fda1a80ff1ac | 856 | if(keyPressed == KEY_RIGHT) |
Vitan | 0:fda1a80ff1ac | 857 | { |
Vitan | 0:fda1a80ff1ac | 858 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 859 | inx-=3; |
Vitan | 0:fda1a80ff1ac | 860 | if(inx<12) inx = 12; |
Vitan | 0:fda1a80ff1ac | 861 | } |
Vitan | 0:fda1a80ff1ac | 862 | if(keyPressed == KEY_LEFT) |
Vitan | 0:fda1a80ff1ac | 863 | { |
Vitan | 0:fda1a80ff1ac | 864 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 865 | inx+=3; |
Vitan | 0:fda1a80ff1ac | 866 | if(inx>201) inx = 201; |
Vitan | 0:fda1a80ff1ac | 867 | } |
Vitan | 0:fda1a80ff1ac | 868 | if(keyPressed == KEY_UP) |
Vitan | 0:fda1a80ff1ac | 869 | { |
Vitan | 0:fda1a80ff1ac | 870 | } |
Vitan | 0:fda1a80ff1ac | 871 | if(keyPressed == KEY_DOWN) |
Vitan | 0:fda1a80ff1ac | 872 | { |
Vitan | 0:fda1a80ff1ac | 873 | } |
Vitan | 0:fda1a80ff1ac | 874 | get_data(); |
Vitan | 0:fda1a80ff1ac | 875 | plot(); |
Vitan | 0:fda1a80ff1ac | 876 | break; |
Vitan | 0:fda1a80ff1ac | 877 | } |
Vitan | 0:fda1a80ff1ac | 878 | } |
Vitan | 0:fda1a80ff1ac | 879 | break; |
Vitan | 0:fda1a80ff1ac | 880 | } |
Vitan | 0:fda1a80ff1ac | 881 | case STATUS_BSCAN: |
Vitan | 0:fda1a80ff1ac | 882 | { |
Vitan | 0:fda1a80ff1ac | 883 | //steps = 1000-(scroll_distance_val); |
Vitan | 0:fda1a80ff1ac | 884 | disp_image(); |
Vitan | 0:fda1a80ff1ac | 885 | switch(Read_Keys()) |
Vitan | 0:fda1a80ff1ac | 886 | { |
Vitan | 0:fda1a80ff1ac | 887 | case KEY_START: |
Vitan | 0:fda1a80ff1ac | 888 | { |
Vitan | 0:fda1a80ff1ac | 889 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 890 | addr = 0; |
Vitan | 0:fda1a80ff1ac | 891 | steps = 0; |
Vitan | 0:fda1a80ff1ac | 892 | TFT.MemZero(RAM_G, 201000); |
Vitan | 0:fda1a80ff1ac | 893 | disp_image(); |
Vitan | 0:fda1a80ff1ac | 894 | //res = f_chdir("/.."); |
Vitan | 0:fda1a80ff1ac | 895 | time_t t1 = time(NULL); |
Vitan | 0:fda1a80ff1ac | 896 | //sprintf(dirname, "20%02d%02d%02d", date.tm_year, date.tm_mon, date.tm_mday); |
Vitan | 0:fda1a80ff1ac | 897 | //res = f_mkdir(dirname); // Create new directory |
Vitan | 0:fda1a80ff1ac | 898 | //sprintf(filename, "A20%02d%02d%02d_%02d%02d%02d.txt", date.tm_year, date.tm_mon, date.tm_mday, date.tm_hour, date.tm_min, date.tm_sec); |
Vitan | 0:fda1a80ff1ac | 899 | //res = f_chdir(dirname); // Change current directory |
Vitan | 0:fda1a80ff1ac | 900 | //res = f_open(&fil_obj, filename, FA_CREATE_ALWAYS|FA_WRITE); // Create new file |
Vitan | 0:fda1a80ff1ac | 901 | status = STATUS_START; |
Vitan | 0:fda1a80ff1ac | 902 | break; |
Vitan | 0:fda1a80ff1ac | 903 | } |
Vitan | 0:fda1a80ff1ac | 904 | case KEY_STOP: |
Vitan | 0:fda1a80ff1ac | 905 | { |
Vitan | 0:fda1a80ff1ac | 906 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 907 | step_done = 0; |
Vitan | 0:fda1a80ff1ac | 908 | disp_image(); |
Vitan | 0:fda1a80ff1ac | 909 | status = STATUS_BSCAN; |
Vitan | 0:fda1a80ff1ac | 910 | break; |
Vitan | 0:fda1a80ff1ac | 911 | } |
Vitan | 0:fda1a80ff1ac | 912 | case KEY_LEFT: |
Vitan | 0:fda1a80ff1ac | 913 | { |
Vitan | 0:fda1a80ff1ac | 914 | if((xscale*steps<=920)&&(steps>0)) |
Vitan | 0:fda1a80ff1ac | 915 | { |
Vitan | 0:fda1a80ff1ac | 916 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 917 | steps+=10; |
Vitan | 0:fda1a80ff1ac | 918 | disp_image(); |
Vitan | 0:fda1a80ff1ac | 919 | } |
Vitan | 0:fda1a80ff1ac | 920 | break; |
Vitan | 0:fda1a80ff1ac | 921 | } |
Vitan | 0:fda1a80ff1ac | 922 | case KEY_RIGHT: |
Vitan | 0:fda1a80ff1ac | 923 | { |
Vitan | 0:fda1a80ff1ac | 924 | if((steps<=1000)&&(xscale*steps>bitmap_height)) |
Vitan | 0:fda1a80ff1ac | 925 | { |
Vitan | 0:fda1a80ff1ac | 926 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 927 | steps-=10; |
Vitan | 0:fda1a80ff1ac | 928 | disp_image(); |
Vitan | 0:fda1a80ff1ac | 929 | } |
Vitan | 0:fda1a80ff1ac | 930 | break; |
Vitan | 0:fda1a80ff1ac | 931 | } |
Vitan | 0:fda1a80ff1ac | 932 | case KEY_DOWN: |
Vitan | 0:fda1a80ff1ac | 933 | { |
Vitan | 0:fda1a80ff1ac | 934 | if(depth>11) |
Vitan | 0:fda1a80ff1ac | 935 | { |
Vitan | 0:fda1a80ff1ac | 936 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 937 | depth-=10; |
Vitan | 0:fda1a80ff1ac | 938 | disp_image(); |
Vitan | 0:fda1a80ff1ac | 939 | } |
Vitan | 0:fda1a80ff1ac | 940 | break; |
Vitan | 0:fda1a80ff1ac | 941 | } |
Vitan | 0:fda1a80ff1ac | 942 | case KEY_UP: |
Vitan | 0:fda1a80ff1ac | 943 | { |
Vitan | 0:fda1a80ff1ac | 944 | if(depth<201) |
Vitan | 0:fda1a80ff1ac | 945 | { |
Vitan | 0:fda1a80ff1ac | 946 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 947 | depth+=10; |
Vitan | 0:fda1a80ff1ac | 948 | disp_image(); |
Vitan | 0:fda1a80ff1ac | 949 | } |
Vitan | 0:fda1a80ff1ac | 950 | break; |
Vitan | 0:fda1a80ff1ac | 951 | } |
Vitan | 0:fda1a80ff1ac | 952 | case KEY_EPS: |
Vitan | 0:fda1a80ff1ac | 953 | { |
Vitan | 0:fda1a80ff1ac | 954 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 955 | status = STATUS_EPS; |
Vitan | 0:fda1a80ff1ac | 956 | break; |
Vitan | 0:fda1a80ff1ac | 957 | } |
Vitan | 0:fda1a80ff1ac | 958 | case KEY_CLOSE: |
Vitan | 0:fda1a80ff1ac | 959 | { |
Vitan | 0:fda1a80ff1ac | 960 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 961 | step_done = 0; |
Vitan | 0:fda1a80ff1ac | 962 | steps = 0; |
Vitan | 0:fda1a80ff1ac | 963 | status = STATUS_MAIN; |
Vitan | 0:fda1a80ff1ac | 964 | break; |
Vitan | 0:fda1a80ff1ac | 965 | } |
Vitan | 0:fda1a80ff1ac | 966 | } |
Vitan | 0:fda1a80ff1ac | 967 | break; |
Vitan | 0:fda1a80ff1ac | 968 | } |
Vitan | 0:fda1a80ff1ac | 969 | //case STATUS_FILES: |
Vitan | 0:fda1a80ff1ac | 970 | { |
Vitan | 0:fda1a80ff1ac | 971 | /* |
Vitan | 0:fda1a80ff1ac | 972 | switch(Read_Keys()) |
Vitan | 0:fda1a80ff1ac | 973 | { |
Vitan | 0:fda1a80ff1ac | 974 | case 0: |
Vitan | 0:fda1a80ff1ac | 975 | { |
Vitan | 0:fda1a80ff1ac | 976 | break; |
Vitan | 0:fda1a80ff1ac | 977 | } |
Vitan | 0:fda1a80ff1ac | 978 | case KEY_CLOSE: |
Vitan | 0:fda1a80ff1ac | 979 | { |
Vitan | 0:fda1a80ff1ac | 980 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 981 | status = STATUS_MAIN; |
Vitan | 0:fda1a80ff1ac | 982 | scrollval = 0; |
Vitan | 0:fda1a80ff1ac | 983 | break; |
Vitan | 0:fda1a80ff1ac | 984 | } |
Vitan | 0:fda1a80ff1ac | 985 | case ROOT_DIR: |
Vitan | 0:fda1a80ff1ac | 986 | { |
Vitan | 0:fda1a80ff1ac | 987 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 988 | fm_curPath = "/"; |
Vitan | 0:fda1a80ff1ac | 989 | res = f_chdir(fm_curPath); |
Vitan | 0:fda1a80ff1ac | 990 | scrollval = curr_item; |
Vitan | 0:fda1a80ff1ac | 991 | res = scan_folders(""); |
Vitan | 0:fda1a80ff1ac | 992 | break; |
Vitan | 0:fda1a80ff1ac | 993 | } |
Vitan | 0:fda1a80ff1ac | 994 | case KEY_DOWN: |
Vitan | 0:fda1a80ff1ac | 995 | { |
Vitan | 0:fda1a80ff1ac | 996 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 997 | scrollval+=scrollsize; |
Vitan | 0:fda1a80ff1ac | 998 | if(scrollval>scrollrange-scrollsize) |
Vitan | 0:fda1a80ff1ac | 999 | { |
Vitan | 0:fda1a80ff1ac | 1000 | scrollval = scrollrange-scrollsize; |
Vitan | 0:fda1a80ff1ac | 1001 | } |
Vitan | 0:fda1a80ff1ac | 1002 | if(strcmp(fm_curPath, "/") == 0) |
Vitan | 0:fda1a80ff1ac | 1003 | { |
Vitan | 0:fda1a80ff1ac | 1004 | res = scan_folders(fm_curPath); |
Vitan | 0:fda1a80ff1ac | 1005 | } |
Vitan | 0:fda1a80ff1ac | 1006 | else |
Vitan | 0:fda1a80ff1ac | 1007 | { |
Vitan | 0:fda1a80ff1ac | 1008 | res = scan_files(fm_curPath); |
Vitan | 0:fda1a80ff1ac | 1009 | } |
Vitan | 0:fda1a80ff1ac | 1010 | break; |
Vitan | 0:fda1a80ff1ac | 1011 | } |
Vitan | 0:fda1a80ff1ac | 1012 | case KEY_UP: |
Vitan | 0:fda1a80ff1ac | 1013 | { |
Vitan | 0:fda1a80ff1ac | 1014 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 1015 | scrollval-=scrollsize; |
Vitan | 0:fda1a80ff1ac | 1016 | if(scrollval>scrollrange) |
Vitan | 0:fda1a80ff1ac | 1017 | { |
Vitan | 0:fda1a80ff1ac | 1018 | scrollval = 0; |
Vitan | 0:fda1a80ff1ac | 1019 | } |
Vitan | 0:fda1a80ff1ac | 1020 | if(strcmp(fm_curPath, "/") == 0) |
Vitan | 0:fda1a80ff1ac | 1021 | { |
Vitan | 0:fda1a80ff1ac | 1022 | res = scan_folders("/"); |
Vitan | 0:fda1a80ff1ac | 1023 | } |
Vitan | 0:fda1a80ff1ac | 1024 | else |
Vitan | 0:fda1a80ff1ac | 1025 | { |
Vitan | 0:fda1a80ff1ac | 1026 | res = scan_files(fm_curPath); |
Vitan | 0:fda1a80ff1ac | 1027 | } |
Vitan | 0:fda1a80ff1ac | 1028 | break; |
Vitan | 0:fda1a80ff1ac | 1029 | } |
Vitan | 0:fda1a80ff1ac | 1030 | default: |
Vitan | 0:fda1a80ff1ac | 1031 | { |
Vitan | 0:fda1a80ff1ac | 1032 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 1033 | if(strcmp(fm_curPath, "/") == 0) |
Vitan | 0:fda1a80ff1ac | 1034 | { |
Vitan | 0:fda1a80ff1ac | 1035 | res = f_opendir(&dir, "/"); |
Vitan | 0:fda1a80ff1ac | 1036 | for(i=0; i<ReadWord+scrollval; i++) |
Vitan | 0:fda1a80ff1ac | 1037 | { |
Vitan | 0:fda1a80ff1ac | 1038 | res = f_readdir(&dir, &fno); |
Vitan | 0:fda1a80ff1ac | 1039 | } |
Vitan | 0:fda1a80ff1ac | 1040 | f_closedir(&dir); |
Vitan | 0:fda1a80ff1ac | 1041 | |
Vitan | 0:fda1a80ff1ac | 1042 | sprintf(dirname, "%s", fno.fname); |
Vitan | 0:fda1a80ff1ac | 1043 | fm_curPath = dirname; |
Vitan | 0:fda1a80ff1ac | 1044 | curr_item = scrollval; |
Vitan | 0:fda1a80ff1ac | 1045 | scrollval = 0; |
Vitan | 0:fda1a80ff1ac | 1046 | res = scan_files(dirname); |
Vitan | 0:fda1a80ff1ac | 1047 | } |
Vitan | 0:fda1a80ff1ac | 1048 | else |
Vitan | 0:fda1a80ff1ac | 1049 | { |
Vitan | 0:fda1a80ff1ac | 1050 | res = f_opendir(&dir, fm_curPath); |
Vitan | 0:fda1a80ff1ac | 1051 | for(i=scrollval; i<scrollval+ReadWord; i++) |
Vitan | 0:fda1a80ff1ac | 1052 | { |
Vitan | 0:fda1a80ff1ac | 1053 | res = f_readdir(&dir, &fno); |
Vitan | 0:fda1a80ff1ac | 1054 | } |
Vitan | 0:fda1a80ff1ac | 1055 | if(strstr(fno.fname, ".asn")) |
Vitan | 0:fda1a80ff1ac | 1056 | { |
Vitan | 0:fda1a80ff1ac | 1057 | printf("%s\n", fno.fname); |
Vitan | 0:fda1a80ff1ac | 1058 | steps = data_import(fno.fname); |
Vitan | 0:fda1a80ff1ac | 1059 | res = f_closedir(&dir); |
Vitan | 0:fda1a80ff1ac | 1060 | plot(); |
Vitan | 0:fda1a80ff1ac | 1061 | } |
Vitan | 0:fda1a80ff1ac | 1062 | if(strstr(fno.fname, ".bsn")) |
Vitan | 0:fda1a80ff1ac | 1063 | { |
Vitan | 0:fda1a80ff1ac | 1064 | printf("%s\n", fno.fname); |
Vitan | 0:fda1a80ff1ac | 1065 | TFT.MemZero(RAM_G, 201000); |
Vitan | 0:fda1a80ff1ac | 1066 | steps = data_import(fno.fname); |
Vitan | 0:fda1a80ff1ac | 1067 | res = f_closedir(&dir); |
Vitan | 0:fda1a80ff1ac | 1068 | disp_image(); |
Vitan | 0:fda1a80ff1ac | 1069 | } |
Vitan | 0:fda1a80ff1ac | 1070 | } |
Vitan | 0:fda1a80ff1ac | 1071 | break; |
Vitan | 0:fda1a80ff1ac | 1072 | } |
Vitan | 0:fda1a80ff1ac | 1073 | break; |
Vitan | 0:fda1a80ff1ac | 1074 | } |
Vitan | 0:fda1a80ff1ac | 1075 | break;*/ |
Vitan | 0:fda1a80ff1ac | 1076 | } |
Vitan | 0:fda1a80ff1ac | 1077 | case STATUS_START: |
Vitan | 0:fda1a80ff1ac | 1078 | { |
Vitan | 0:fda1a80ff1ac | 1079 | disp_image(); |
Vitan | 0:fda1a80ff1ac | 1080 | if(step_done) |
Vitan | 0:fda1a80ff1ac | 1081 | { |
Vitan | 0:fda1a80ff1ac | 1082 | addr+=201; |
Vitan | 0:fda1a80ff1ac | 1083 | steps++; |
Vitan | 0:fda1a80ff1ac | 1084 | if((steps<=1000)&&(xscale*steps>bitmap_height)) |
Vitan | 0:fda1a80ff1ac | 1085 | { |
Vitan | 0:fda1a80ff1ac | 1086 | scroll_distance_size--; |
Vitan | 0:fda1a80ff1ac | 1087 | } |
Vitan | 0:fda1a80ff1ac | 1088 | step_done = 0; |
Vitan | 0:fda1a80ff1ac | 1089 | get_data(); |
Vitan | 0:fda1a80ff1ac | 1090 | disp_image(); |
Vitan | 0:fda1a80ff1ac | 1091 | } |
Vitan | 0:fda1a80ff1ac | 1092 | if(addr>201000) |
Vitan | 0:fda1a80ff1ac | 1093 | { |
Vitan | 0:fda1a80ff1ac | 1094 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 1095 | step_done = 0; |
Vitan | 0:fda1a80ff1ac | 1096 | //mean_remove(); |
Vitan | 0:fda1a80ff1ac | 1097 | disp_image(); |
Vitan | 0:fda1a80ff1ac | 1098 | status = STATUS_BSCAN; |
Vitan | 0:fda1a80ff1ac | 1099 | } |
Vitan | 0:fda1a80ff1ac | 1100 | switch(Read_Keys()) |
Vitan | 0:fda1a80ff1ac | 1101 | { |
Vitan | 0:fda1a80ff1ac | 1102 | case KEY_DOWN: |
Vitan | 0:fda1a80ff1ac | 1103 | { |
Vitan | 0:fda1a80ff1ac | 1104 | if(depth>11) |
Vitan | 0:fda1a80ff1ac | 1105 | { |
Vitan | 0:fda1a80ff1ac | 1106 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 1107 | depth-=10; |
Vitan | 0:fda1a80ff1ac | 1108 | disp_image(); |
Vitan | 0:fda1a80ff1ac | 1109 | } |
Vitan | 0:fda1a80ff1ac | 1110 | break; |
Vitan | 0:fda1a80ff1ac | 1111 | } |
Vitan | 0:fda1a80ff1ac | 1112 | case KEY_UP: |
Vitan | 0:fda1a80ff1ac | 1113 | { |
Vitan | 0:fda1a80ff1ac | 1114 | if(depth<201) |
Vitan | 0:fda1a80ff1ac | 1115 | { |
Vitan | 0:fda1a80ff1ac | 1116 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 1117 | depth+=10; |
Vitan | 0:fda1a80ff1ac | 1118 | disp_image(); |
Vitan | 0:fda1a80ff1ac | 1119 | } |
Vitan | 0:fda1a80ff1ac | 1120 | break; |
Vitan | 0:fda1a80ff1ac | 1121 | } |
Vitan | 0:fda1a80ff1ac | 1122 | case KEY_STOP: |
Vitan | 0:fda1a80ff1ac | 1123 | { |
Vitan | 0:fda1a80ff1ac | 1124 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 1125 | step_done = 0; |
Vitan | 0:fda1a80ff1ac | 1126 | ReadWord = 0; |
Vitan | 0:fda1a80ff1ac | 1127 | save_dlg(); |
Vitan | 0:fda1a80ff1ac | 1128 | while(!keyPressed) |
Vitan | 0:fda1a80ff1ac | 1129 | { |
Vitan | 0:fda1a80ff1ac | 1130 | keyPressed = TFT.Rd8(REG_TOUCH_TAG); |
Vitan | 0:fda1a80ff1ac | 1131 | } |
Vitan | 0:fda1a80ff1ac | 1132 | if(keyPressed == FILE_DELETE) |
Vitan | 0:fda1a80ff1ac | 1133 | { |
Vitan | 0:fda1a80ff1ac | 1134 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 1135 | //res = f_unlink(filename); |
Vitan | 0:fda1a80ff1ac | 1136 | } |
Vitan | 0:fda1a80ff1ac | 1137 | else |
Vitan | 0:fda1a80ff1ac | 1138 | { |
Vitan | 0:fda1a80ff1ac | 1139 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 1140 | //res = f_close(&fil_obj); |
Vitan | 0:fda1a80ff1ac | 1141 | //sprintf(filename, "A20%02d%02d%02d_%02d%02d%02d.bsn", date.tm_year, date.tm_mon, date.tm_mday, date.tm_hour, date.tm_min, date.tm_sec); |
Vitan | 0:fda1a80ff1ac | 1142 | //res = f_open(&fil_obj, filename, FA_CREATE_ALWAYS|FA_WRITE); |
Vitan | 0:fda1a80ff1ac | 1143 | //for(addr=0; addr<201*steps; addr+=201) |
Vitan | 0:fda1a80ff1ac | 1144 | { |
Vitan | 0:fda1a80ff1ac | 1145 | //HOST_MEM_READ_STR(addr, sig, 201); |
Vitan | 0:fda1a80ff1ac | 1146 | //f_write(&fil_obj, &sig, 201, &len); |
Vitan | 0:fda1a80ff1ac | 1147 | } |
Vitan | 0:fda1a80ff1ac | 1148 | //f_close(&fil_obj); |
Vitan | 0:fda1a80ff1ac | 1149 | } |
Vitan | 0:fda1a80ff1ac | 1150 | addr = 0; |
Vitan | 0:fda1a80ff1ac | 1151 | steps = 0; |
Vitan | 0:fda1a80ff1ac | 1152 | //TFT.MemZero(RAM_G, 201000); |
Vitan | 0:fda1a80ff1ac | 1153 | //mean_remove(); |
Vitan | 0:fda1a80ff1ac | 1154 | disp_image(); |
Vitan | 0:fda1a80ff1ac | 1155 | status = STATUS_BSCAN; |
Vitan | 0:fda1a80ff1ac | 1156 | break; |
Vitan | 0:fda1a80ff1ac | 1157 | } |
Vitan | 0:fda1a80ff1ac | 1158 | } |
Vitan | 0:fda1a80ff1ac | 1159 | break; |
Vitan | 0:fda1a80ff1ac | 1160 | } |
Vitan | 0:fda1a80ff1ac | 1161 | case STATUS_EPS: |
Vitan | 0:fda1a80ff1ac | 1162 | { |
Vitan | 0:fda1a80ff1ac | 1163 | eps_dlg(); |
Vitan | 0:fda1a80ff1ac | 1164 | switch(Read_Keys()) |
Vitan | 0:fda1a80ff1ac | 1165 | { |
Vitan | 0:fda1a80ff1ac | 1166 | case MATERIAL_AIR: |
Vitan | 0:fda1a80ff1ac | 1167 | { |
Vitan | 0:fda1a80ff1ac | 1168 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 1169 | eps = MATERIAL_AIR; |
Vitan | 0:fda1a80ff1ac | 1170 | status = STATUS_BSCAN; |
Vitan | 0:fda1a80ff1ac | 1171 | break; |
Vitan | 0:fda1a80ff1ac | 1172 | } |
Vitan | 0:fda1a80ff1ac | 1173 | case MATERIAL_BRICK: |
Vitan | 0:fda1a80ff1ac | 1174 | { |
Vitan | 0:fda1a80ff1ac | 1175 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 1176 | eps = MATERIAL_BRICK; |
Vitan | 0:fda1a80ff1ac | 1177 | status = STATUS_BSCAN; |
Vitan | 0:fda1a80ff1ac | 1178 | break; |
Vitan | 0:fda1a80ff1ac | 1179 | } |
Vitan | 0:fda1a80ff1ac | 1180 | case MATERIAL_CONCRETE: |
Vitan | 0:fda1a80ff1ac | 1181 | { |
Vitan | 0:fda1a80ff1ac | 1182 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 1183 | eps = MATERIAL_CONCRETE; |
Vitan | 0:fda1a80ff1ac | 1184 | status = STATUS_BSCAN; |
Vitan | 0:fda1a80ff1ac | 1185 | break; |
Vitan | 0:fda1a80ff1ac | 1186 | } |
Vitan | 0:fda1a80ff1ac | 1187 | case MATERIAL_GYPSUM: |
Vitan | 0:fda1a80ff1ac | 1188 | { |
Vitan | 0:fda1a80ff1ac | 1189 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 1190 | eps = MATERIAL_GYPSUM; |
Vitan | 0:fda1a80ff1ac | 1191 | status = STATUS_BSCAN; |
Vitan | 0:fda1a80ff1ac | 1192 | break; |
Vitan | 0:fda1a80ff1ac | 1193 | } |
Vitan | 0:fda1a80ff1ac | 1194 | case MATERIAL_OTHER: |
Vitan | 0:fda1a80ff1ac | 1195 | { |
Vitan | 0:fda1a80ff1ac | 1196 | eps_temp = eps; |
Vitan | 0:fda1a80ff1ac | 1197 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 1198 | status = STATUS_OTHER; |
Vitan | 0:fda1a80ff1ac | 1199 | break; |
Vitan | 0:fda1a80ff1ac | 1200 | } |
Vitan | 0:fda1a80ff1ac | 1201 | case KEY_CLOSE: |
Vitan | 0:fda1a80ff1ac | 1202 | { |
Vitan | 0:fda1a80ff1ac | 1203 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 1204 | status = STATUS_BSCAN; |
Vitan | 0:fda1a80ff1ac | 1205 | break; |
Vitan | 0:fda1a80ff1ac | 1206 | } |
Vitan | 0:fda1a80ff1ac | 1207 | } |
Vitan | 0:fda1a80ff1ac | 1208 | break; |
Vitan | 0:fda1a80ff1ac | 1209 | } |
Vitan | 0:fda1a80ff1ac | 1210 | case STATUS_OTHER: |
Vitan | 0:fda1a80ff1ac | 1211 | { |
Vitan | 0:fda1a80ff1ac | 1212 | other_dlg(); |
Vitan | 0:fda1a80ff1ac | 1213 | switch(Read_Keys()) |
Vitan | 0:fda1a80ff1ac | 1214 | { |
Vitan | 0:fda1a80ff1ac | 1215 | case KEY_LEFT: |
Vitan | 0:fda1a80ff1ac | 1216 | { |
Vitan | 0:fda1a80ff1ac | 1217 | if(eps_position==1) |
Vitan | 0:fda1a80ff1ac | 1218 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 1219 | eps_position = 0; |
Vitan | 0:fda1a80ff1ac | 1220 | break; |
Vitan | 0:fda1a80ff1ac | 1221 | } |
Vitan | 0:fda1a80ff1ac | 1222 | case KEY_RIGHT: |
Vitan | 0:fda1a80ff1ac | 1223 | { |
Vitan | 0:fda1a80ff1ac | 1224 | if(eps_position==0) |
Vitan | 0:fda1a80ff1ac | 1225 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 1226 | eps_position = 1; |
Vitan | 0:fda1a80ff1ac | 1227 | break; |
Vitan | 0:fda1a80ff1ac | 1228 | } |
Vitan | 0:fda1a80ff1ac | 1229 | case KEY_UP: |
Vitan | 0:fda1a80ff1ac | 1230 | { |
Vitan | 0:fda1a80ff1ac | 1231 | switch(eps_position) |
Vitan | 0:fda1a80ff1ac | 1232 | { |
Vitan | 0:fda1a80ff1ac | 1233 | case 0: |
Vitan | 0:fda1a80ff1ac | 1234 | { |
Vitan | 0:fda1a80ff1ac | 1235 | if(eps<90) |
Vitan | 0:fda1a80ff1ac | 1236 | { |
Vitan | 0:fda1a80ff1ac | 1237 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 1238 | eps+=10; |
Vitan | 0:fda1a80ff1ac | 1239 | } |
Vitan | 0:fda1a80ff1ac | 1240 | break; |
Vitan | 0:fda1a80ff1ac | 1241 | } |
Vitan | 0:fda1a80ff1ac | 1242 | case 1: |
Vitan | 0:fda1a80ff1ac | 1243 | { |
Vitan | 0:fda1a80ff1ac | 1244 | if(eps<99) |
Vitan | 0:fda1a80ff1ac | 1245 | { |
Vitan | 0:fda1a80ff1ac | 1246 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 1247 | eps++; |
Vitan | 0:fda1a80ff1ac | 1248 | } |
Vitan | 0:fda1a80ff1ac | 1249 | break; |
Vitan | 0:fda1a80ff1ac | 1250 | } |
Vitan | 0:fda1a80ff1ac | 1251 | } |
Vitan | 0:fda1a80ff1ac | 1252 | break; |
Vitan | 0:fda1a80ff1ac | 1253 | } |
Vitan | 0:fda1a80ff1ac | 1254 | case KEY_DOWN: |
Vitan | 0:fda1a80ff1ac | 1255 | { |
Vitan | 0:fda1a80ff1ac | 1256 | switch(eps_position) |
Vitan | 0:fda1a80ff1ac | 1257 | { |
Vitan | 0:fda1a80ff1ac | 1258 | case 0: |
Vitan | 0:fda1a80ff1ac | 1259 | { |
Vitan | 0:fda1a80ff1ac | 1260 | if(eps>10) |
Vitan | 0:fda1a80ff1ac | 1261 | { |
Vitan | 0:fda1a80ff1ac | 1262 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 1263 | eps-=10; |
Vitan | 0:fda1a80ff1ac | 1264 | } |
Vitan | 0:fda1a80ff1ac | 1265 | break; |
Vitan | 0:fda1a80ff1ac | 1266 | } |
Vitan | 0:fda1a80ff1ac | 1267 | case 1: |
Vitan | 0:fda1a80ff1ac | 1268 | { |
Vitan | 0:fda1a80ff1ac | 1269 | if(eps>10) |
Vitan | 0:fda1a80ff1ac | 1270 | { |
Vitan | 0:fda1a80ff1ac | 1271 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 1272 | eps--; |
Vitan | 0:fda1a80ff1ac | 1273 | } |
Vitan | 0:fda1a80ff1ac | 1274 | break; |
Vitan | 0:fda1a80ff1ac | 1275 | } |
Vitan | 0:fda1a80ff1ac | 1276 | } |
Vitan | 0:fda1a80ff1ac | 1277 | break; |
Vitan | 0:fda1a80ff1ac | 1278 | } |
Vitan | 0:fda1a80ff1ac | 1279 | case KEY_OK: |
Vitan | 0:fda1a80ff1ac | 1280 | { |
Vitan | 0:fda1a80ff1ac | 1281 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 1282 | status = STATUS_BSCAN; |
Vitan | 0:fda1a80ff1ac | 1283 | break; |
Vitan | 0:fda1a80ff1ac | 1284 | } |
Vitan | 0:fda1a80ff1ac | 1285 | case KEY_CLOSE: |
Vitan | 0:fda1a80ff1ac | 1286 | { |
Vitan | 0:fda1a80ff1ac | 1287 | eps = eps_temp; |
Vitan | 0:fda1a80ff1ac | 1288 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 1289 | status = STATUS_BSCAN; |
Vitan | 0:fda1a80ff1ac | 1290 | break; |
Vitan | 0:fda1a80ff1ac | 1291 | } |
Vitan | 0:fda1a80ff1ac | 1292 | } |
Vitan | 0:fda1a80ff1ac | 1293 | break; |
Vitan | 0:fda1a80ff1ac | 1294 | } |
Vitan | 0:fda1a80ff1ac | 1295 | case STATUS_TIME: |
Vitan | 0:fda1a80ff1ac | 1296 | { |
Vitan | 0:fda1a80ff1ac | 1297 | time_screen(); |
Vitan | 0:fda1a80ff1ac | 1298 | //tminfo = localtime(&seconds); |
Vitan | 0:fda1a80ff1ac | 1299 | switch(Read_Keys()) |
Vitan | 0:fda1a80ff1ac | 1300 | { |
Vitan | 0:fda1a80ff1ac | 1301 | case KEY_LEFT: |
Vitan | 0:fda1a80ff1ac | 1302 | { |
Vitan | 0:fda1a80ff1ac | 1303 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 1304 | time_position--; |
Vitan | 0:fda1a80ff1ac | 1305 | if(time_position>5) |
Vitan | 0:fda1a80ff1ac | 1306 | time_position = 0; |
Vitan | 0:fda1a80ff1ac | 1307 | break; |
Vitan | 0:fda1a80ff1ac | 1308 | } |
Vitan | 0:fda1a80ff1ac | 1309 | case KEY_RIGHT: |
Vitan | 0:fda1a80ff1ac | 1310 | { |
Vitan | 0:fda1a80ff1ac | 1311 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 1312 | time_position++; |
Vitan | 0:fda1a80ff1ac | 1313 | if(time_position>5) |
Vitan | 0:fda1a80ff1ac | 1314 | time_position = 5; |
Vitan | 0:fda1a80ff1ac | 1315 | break; |
Vitan | 0:fda1a80ff1ac | 1316 | } |
Vitan | 0:fda1a80ff1ac | 1317 | case KEY_UP: |
Vitan | 0:fda1a80ff1ac | 1318 | { |
Vitan | 0:fda1a80ff1ac | 1319 | switch(time_position) |
Vitan | 0:fda1a80ff1ac | 1320 | { |
Vitan | 0:fda1a80ff1ac | 1321 | case 0: |
Vitan | 0:fda1a80ff1ac | 1322 | { |
Vitan | 0:fda1a80ff1ac | 1323 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 1324 | temp_seconds+=3600; |
Vitan | 0:fda1a80ff1ac | 1325 | //date.tm_hour++; |
Vitan | 0:fda1a80ff1ac | 1326 | //if(date.tm_hour==24) |
Vitan | 0:fda1a80ff1ac | 1327 | //date.tm_hour = 0; |
Vitan | 0:fda1a80ff1ac | 1328 | break; |
Vitan | 0:fda1a80ff1ac | 1329 | } |
Vitan | 0:fda1a80ff1ac | 1330 | case 1: |
Vitan | 0:fda1a80ff1ac | 1331 | { |
Vitan | 0:fda1a80ff1ac | 1332 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 1333 | temp_seconds+=60; |
Vitan | 0:fda1a80ff1ac | 1334 | //date.tm_min++; |
Vitan | 0:fda1a80ff1ac | 1335 | //if(date.tm_min==60) |
Vitan | 0:fda1a80ff1ac | 1336 | //date.tm_min = 0; |
Vitan | 0:fda1a80ff1ac | 1337 | break; |
Vitan | 0:fda1a80ff1ac | 1338 | } |
Vitan | 0:fda1a80ff1ac | 1339 | case 2: |
Vitan | 0:fda1a80ff1ac | 1340 | { |
Vitan | 0:fda1a80ff1ac | 1341 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 1342 | temp_seconds++; |
Vitan | 0:fda1a80ff1ac | 1343 | //date.tm_sec++; |
Vitan | 0:fda1a80ff1ac | 1344 | //if(date.tm_sec==60) |
Vitan | 0:fda1a80ff1ac | 1345 | //date.tm_sec = 0; |
Vitan | 0:fda1a80ff1ac | 1346 | break; |
Vitan | 0:fda1a80ff1ac | 1347 | } |
Vitan | 0:fda1a80ff1ac | 1348 | case 3: |
Vitan | 0:fda1a80ff1ac | 1349 | { |
Vitan | 0:fda1a80ff1ac | 1350 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 1351 | date.tm_mday++; |
Vitan | 0:fda1a80ff1ac | 1352 | if(date.tm_mday==32) |
Vitan | 0:fda1a80ff1ac | 1353 | date.tm_mday = 1; |
Vitan | 0:fda1a80ff1ac | 1354 | break; |
Vitan | 0:fda1a80ff1ac | 1355 | } |
Vitan | 0:fda1a80ff1ac | 1356 | case 4: |
Vitan | 0:fda1a80ff1ac | 1357 | { |
Vitan | 0:fda1a80ff1ac | 1358 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 1359 | date.tm_mon++; |
Vitan | 0:fda1a80ff1ac | 1360 | if(date.tm_mon==13) |
Vitan | 0:fda1a80ff1ac | 1361 | date.tm_mon = 1; |
Vitan | 0:fda1a80ff1ac | 1362 | break; |
Vitan | 0:fda1a80ff1ac | 1363 | } |
Vitan | 0:fda1a80ff1ac | 1364 | case 5: |
Vitan | 0:fda1a80ff1ac | 1365 | { |
Vitan | 0:fda1a80ff1ac | 1366 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 1367 | date.tm_year++; |
Vitan | 0:fda1a80ff1ac | 1368 | if(date.tm_year==100) |
Vitan | 0:fda1a80ff1ac | 1369 | date.tm_year = 0; |
Vitan | 0:fda1a80ff1ac | 1370 | break; |
Vitan | 0:fda1a80ff1ac | 1371 | } |
Vitan | 0:fda1a80ff1ac | 1372 | } |
Vitan | 0:fda1a80ff1ac | 1373 | break; |
Vitan | 0:fda1a80ff1ac | 1374 | } |
Vitan | 0:fda1a80ff1ac | 1375 | case KEY_DOWN: |
Vitan | 0:fda1a80ff1ac | 1376 | { |
Vitan | 0:fda1a80ff1ac | 1377 | switch(time_position) |
Vitan | 0:fda1a80ff1ac | 1378 | { |
Vitan | 0:fda1a80ff1ac | 1379 | case 0: |
Vitan | 0:fda1a80ff1ac | 1380 | { |
Vitan | 0:fda1a80ff1ac | 1381 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 1382 | if(date.tm_hour==0) |
Vitan | 0:fda1a80ff1ac | 1383 | date.tm_hour = 23; |
Vitan | 0:fda1a80ff1ac | 1384 | else date.tm_hour--; |
Vitan | 0:fda1a80ff1ac | 1385 | break; |
Vitan | 0:fda1a80ff1ac | 1386 | } |
Vitan | 0:fda1a80ff1ac | 1387 | case 1: |
Vitan | 0:fda1a80ff1ac | 1388 | { |
Vitan | 0:fda1a80ff1ac | 1389 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 1390 | if(date.tm_min==0) |
Vitan | 0:fda1a80ff1ac | 1391 | date.tm_min = 59; |
Vitan | 0:fda1a80ff1ac | 1392 | else date.tm_min--; |
Vitan | 0:fda1a80ff1ac | 1393 | break; |
Vitan | 0:fda1a80ff1ac | 1394 | } |
Vitan | 0:fda1a80ff1ac | 1395 | case 2: |
Vitan | 0:fda1a80ff1ac | 1396 | { |
Vitan | 0:fda1a80ff1ac | 1397 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 1398 | if(date.tm_sec==0) |
Vitan | 0:fda1a80ff1ac | 1399 | date.tm_sec = 59; |
Vitan | 0:fda1a80ff1ac | 1400 | else date.tm_sec--; |
Vitan | 0:fda1a80ff1ac | 1401 | break; |
Vitan | 0:fda1a80ff1ac | 1402 | } |
Vitan | 0:fda1a80ff1ac | 1403 | case 3: |
Vitan | 0:fda1a80ff1ac | 1404 | { |
Vitan | 0:fda1a80ff1ac | 1405 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 1406 | if(date.tm_mday==1) |
Vitan | 0:fda1a80ff1ac | 1407 | date.tm_mday = 1; |
Vitan | 0:fda1a80ff1ac | 1408 | else date.tm_mday--; |
Vitan | 0:fda1a80ff1ac | 1409 | break; |
Vitan | 0:fda1a80ff1ac | 1410 | } |
Vitan | 0:fda1a80ff1ac | 1411 | case 4: |
Vitan | 0:fda1a80ff1ac | 1412 | { |
Vitan | 0:fda1a80ff1ac | 1413 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 1414 | if(date.tm_mon==1) |
Vitan | 0:fda1a80ff1ac | 1415 | date.tm_mon = 1; |
Vitan | 0:fda1a80ff1ac | 1416 | else date.tm_mon--; |
Vitan | 0:fda1a80ff1ac | 1417 | break; |
Vitan | 0:fda1a80ff1ac | 1418 | } |
Vitan | 0:fda1a80ff1ac | 1419 | case 5: |
Vitan | 0:fda1a80ff1ac | 1420 | { |
Vitan | 0:fda1a80ff1ac | 1421 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 1422 | if(date.tm_year==0) |
Vitan | 0:fda1a80ff1ac | 1423 | date.tm_year = 0; |
Vitan | 0:fda1a80ff1ac | 1424 | else date.tm_year--; |
Vitan | 0:fda1a80ff1ac | 1425 | break; |
Vitan | 0:fda1a80ff1ac | 1426 | } |
Vitan | 0:fda1a80ff1ac | 1427 | } |
Vitan | 0:fda1a80ff1ac | 1428 | break; |
Vitan | 0:fda1a80ff1ac | 1429 | } |
Vitan | 0:fda1a80ff1ac | 1430 | case KEY_OK: |
Vitan | 0:fda1a80ff1ac | 1431 | { |
Vitan | 0:fda1a80ff1ac | 1432 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 1433 | seconds = mktime(&date); |
Vitan | 0:fda1a80ff1ac | 1434 | set_time(seconds); |
Vitan | 0:fda1a80ff1ac | 1435 | status = STATUS_MAIN; |
Vitan | 0:fda1a80ff1ac | 1436 | break; |
Vitan | 0:fda1a80ff1ac | 1437 | } |
Vitan | 0:fda1a80ff1ac | 1438 | case KEY_CLOSE: |
Vitan | 0:fda1a80ff1ac | 1439 | { |
Vitan | 0:fda1a80ff1ac | 1440 | sound(CLICK); |
Vitan | 0:fda1a80ff1ac | 1441 | status = STATUS_MAIN; |
Vitan | 0:fda1a80ff1ac | 1442 | break; |
Vitan | 0:fda1a80ff1ac | 1443 | } |
Vitan | 0:fda1a80ff1ac | 1444 | } |
Vitan | 0:fda1a80ff1ac | 1445 | } |
Vitan | 0:fda1a80ff1ac | 1446 | } |
Vitan | 0:fda1a80ff1ac | 1447 | } |
Vitan | 0:fda1a80ff1ac | 1448 | |
Vitan | 0:fda1a80ff1ac | 1449 | int main() |
Vitan | 0:fda1a80ff1ac | 1450 | { |
Vitan | 0:fda1a80ff1ac | 1451 | seconds = time(NULL); |
Vitan | 0:fda1a80ff1ac | 1452 | temp_seconds = seconds; |
Vitan | 0:fda1a80ff1ac | 1453 | TFT.WrMemFromFlash(REG_TOUCH_TRANSFORM_A, data, 24); |
Vitan | 0:fda1a80ff1ac | 1454 | TFT.WrMemFromFlash(CLOSE_ICON_ADDR, close_icon, 256); |
Vitan | 0:fda1a80ff1ac | 1455 | TFT.WrMemFromFlash(DIR_ICON_ADDR, dir_icon, 256); |
Vitan | 0:fda1a80ff1ac | 1456 | TFT.WrMemFromFlash(FILE_ICON_ADDR, file_icon, 256); |
Vitan | 0:fda1a80ff1ac | 1457 | TFT.WrMemFromFlash(PALETTE_ADDR, palette, 1024); |
Vitan | 0:fda1a80ff1ac | 1458 | date.tm_year = 118; |
Vitan | 0:fda1a80ff1ac | 1459 | date.tm_mon = 11; |
Vitan | 0:fda1a80ff1ac | 1460 | date.tm_mday = 6; |
Vitan | 0:fda1a80ff1ac | 1461 | date.tm_hour = 14; |
Vitan | 0:fda1a80ff1ac | 1462 | date.tm_min = 40; |
Vitan | 0:fda1a80ff1ac | 1463 | date.tm_sec = 0; |
Vitan | 0:fda1a80ff1ac | 1464 | |
Vitan | 0:fda1a80ff1ac | 1465 | time_t seconds = mktime(&date); |
Vitan | 0:fda1a80ff1ac | 1466 | set_time(seconds); |
Vitan | 0:fda1a80ff1ac | 1467 | |
Vitan | 0:fda1a80ff1ac | 1468 | //TFT.Calibrate(); |
Vitan | 0:fda1a80ff1ac | 1469 | //sweep(); |
Vitan | 0:fda1a80ff1ac | 1470 | status = STATUS_MAIN; |
Vitan | 0:fda1a80ff1ac | 1471 | step_done = 0; |
Vitan | 0:fda1a80ff1ac | 1472 | |
Vitan | 0:fda1a80ff1ac | 1473 | while(1) |
Vitan | 0:fda1a80ff1ac | 1474 | { |
Vitan | 0:fda1a80ff1ac | 1475 | update_gui(); |
Vitan | 0:fda1a80ff1ac | 1476 | } |
Vitan | 0:fda1a80ff1ac | 1477 | } |