Radar1

Dependencies:   FT800_2 mbed Encoder

Committer:
Vitan
Date:
Thu Apr 25 11:19:28 2019 +0000
Revision:
0:fda1a80ff1ac
Radar1

Who changed what in which revision?

UserRevisionLine numberNew 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 }