storing variables in single array for transmission

Dependencies:   SDFileSystem dspmodified mbed

Fork of FTPGET_Merged by Pravin Magar

Committer:
pravinmagar
Date:
Fri Jun 26 11:06:54 2015 +0000
Revision:
23:69ac079fb31e
Parent:
22:4141d6a13488
Child:
24:b09a8907f7f9
storing values of variables in single variable for transmission

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jaspreetsingh 0:f2467c077504 1 /*
jaspreetsingh 0:f2467c077504 2 Designed to work from year 2015 to 2020
jaspreetsingh 0:f2467c077504 3 */
jaspreetsingh 0:f2467c077504 4
jaspreetsingh 0:f2467c077504 5 #include "mbed.h"
jaspreetsingh 0:f2467c077504 6 #include "arm_math.h"
jaspreetsingh 0:f2467c077504 7 #include "SDFileSystem.h"
jaspreetsingh 0:f2467c077504 8 #include "arm_common_tables.h"
jaspreetsingh 0:f2467c077504 9 #define freq 1
jaspreetsingh 0:f2467c077504 10 #define fft_points 16384
jaspreetsingh 0:f2467c077504 11 #define dur_sec 16.384
pravinmagar 23:69ac079fb31e 12 #define module_name "BHJ2" //enter module name here
pravinmagar 23:69ac079fb31e 13
jaspreetsingh 0:f2467c077504 14
jaspreetsingh 0:f2467c077504 15 Serial pc(USBTX, USBRX);
jaspreetsingh 0:f2467c077504 16 Serial gsm(D1, D0);
jaspreetsingh 0:f2467c077504 17 AnalogIn AC_input(A0);
jaspreetsingh 0:f2467c077504 18 AnalogIn AC2_input(A1);
jaspreetsingh 0:f2467c077504 19 AnalogIn DC_input(A2);
jaspreetsingh 0:f2467c077504 20 AnalogIn DC_Detect(A3);
jaspreetsingh 0:f2467c077504 21 AnalogIn TC1(A4);
jaspreetsingh 0:f2467c077504 22 AnalogIn TC2(A5);
jaspreetsingh 0:f2467c077504 23 SDFileSystem sd(PTE3, PTE1, PTE2, PTE4, "sd");
jaspreetsingh 0:f2467c077504 24 DigitalOut gsm_rst(D7);
jaspreetsingh 0:f2467c077504 25
FahdAnsary 9:7965c3bc3199 26 char sitename[10] =module_name;
jaspreetsingh 0:f2467c077504 27 char filename[100] = "";
jaspreetsingh 0:f2467c077504 28 char filepath[100] = "";
FahdAnsary 9:7965c3bc3199 29 char timestamp[20]="";
jaspreetsingh 0:f2467c077504 30 char time_stamp[20]="";
FahdAnsary 9:7965c3bc3199 31 char timestampold[20]="";
jaspreetsingh 0:f2467c077504 32 char main_dir[100] ="";
jaspreetsingh 0:f2467c077504 33 char hour_dir[100] ="";
jaspreetsingh 0:f2467c077504 34 char pathAC[100] ="";
jaspreetsingh 0:f2467c077504 35 char pathDC[100] ="";
lalitkumar 17:824537d9204b 36 //char pathDCdetect[100] ="";
jaspreetsingh 0:f2467c077504 37 char pathfft[100]="";
jaspreetsingh 0:f2467c077504 38 //char putpathname[100]="";
jaspreetsingh 0:f2467c077504 39 char filenameAC[100] ="";
jaspreetsingh 0:f2467c077504 40 char filenameDC[100] ="";
jaspreetsingh 0:f2467c077504 41 char filenamefft[100] ="";
jaspreetsingh 0:f2467c077504 42 char clk_response[100] ="";
FahdAnsary 9:7965c3bc3199 43 char ftpget[100]=""; // For FTPGET Function
FahdAnsary 9:7965c3bc3199 44 char ftpget1[100]=""; // For FTPGET Function
jaspreetsingh 16:622629b0cf3c 45 char ftpget2[100]=""; // For FTPGET Function
FahdAnsary 9:7965c3bc3199 46 char mod_reset[50]= "NVIC_SystemReset();"; // For FTPGET Function
jaspreetsingh 16:622629b0cf3c 47 char incoming_data[150]=""; // For FTPGET Function
FahdAnsary 9:7965c3bc3199 48 char dest[100]=""; // For FTPGET Function
FahdAnsary 9:7965c3bc3199 49 const char s[2] = "!"; // For FTPGET Function
FahdAnsary 9:7965c3bc3199 50 char src[100]=""; // For FTPGET Function
FahdAnsary 9:7965c3bc3199 51 //char ftp_timestamp[20]=""; // For Timestamp.txt filename
FahdAnsary 9:7965c3bc3199 52 char ftpputpathname[100]=""; // For FTPPUTHPATH NAME
FahdAnsary 9:7965c3bc3199 53 char timestampname_old[30]=""; // For sending past hour info file
FahdAnsary 9:7965c3bc3199 54 char timestamppath_old[30]=""; // For sending past hour info file
FahdAnsary 9:7965c3bc3199 55 char timestampname[30]="";
FahdAnsary 9:7965c3bc3199 56 char timestamppath[30]="";
pravinmagar 23:69ac079fb31e 57 char file_data[1294];
FahdAnsary 9:7965c3bc3199 58 int maxfreq = 0; // For Timestamp Function
jaspreetsingh 0:f2467c077504 59
jaspreetsingh 0:f2467c077504 60 int m=0,mfinal;
jaspreetsingh 0:f2467c077504 61 int date, month, year, hour, minute, second,minuteold, secondold, temp = 0;
jaspreetsingh 0:f2467c077504 62 unsigned long var = 0;
jaspreetsingh 0:f2467c077504 63 unsigned long currentMillis = 0;
jaspreetsingh 0:f2467c077504 64 int gsmerr=0;
jaspreetsingh 4:668d7227d060 65
jaspreetsingh 0:f2467c077504 66 time_t previous;
jaspreetsingh 0:f2467c077504 67
jaspreetsingh 0:f2467c077504 68 int fft_array[32768];//={37767, 34339, 31062, 28224, 26011, 24245, 22588, 21757, 22460, 24288, 27136, 30535, 33829, 36639, 38848, 40598, 42239, 43047, 42302, 40468, 37592, 34182, 30924, 28082, 25922, 24153, 22509, 21739, 22534, 24403, 27302, 30689, 33965, 36774, 38946, 40688, 42324, 43064, 42222, 40351, 37424, 34013, 30787, 27940, 25834, 24067, 22432, 21742, 22605, 24522, 27466, 30863, 34102, 36908, 39018, 40773, 42396, 43057, 42166, 40210, 37256, 33851, 30656, 27800, 25746, 23996, 22353, 21752, 22675, 24648, 27636, 31024, 34230, 37052, 39113, 40859, 42468, 43052, 42090, 40095, 37085, 33682, 30524, 27675, 25656, 23904, 22285, 21744, 22739, 24772, 27811, 31199, 34377, 37176, 39206, 40933, 42546, 43037, 42017, 39960, 36916, 33518, 30383, 27553, 25570, 23822, 22218, 21765, 22825, 24910, 27970, 31355, 34516, 37293, 39292, 41021, 42615, 43033, 41936, 39822, 36733, 33359, 30240, 27444, 25487, 23731, 22146, 21769, 22897, 25052, 28145, 31520, 34655, 37403, 39378, 41105, 42682, 43039, 41858, 39687, 36566, 33192, 30094, 27327, 25399, 23655, 22073, 21777, 22989, 25194, 28323, 31692, 34805, 37512, 39456, 41191, 42744, 43019, 41768, 39560, 36389, 33026, 29941, 27223, 25317, 23580, 22016, 21803, 23077, 25320, 28498, 31841, 34950, 37621, 39537, 41268, 42797, 42995, 41686, 39427, 36223, 32858, 29798, 27112, 25246, 23496, 21971, 21828, 23160, 25454, 28663, 32023, 35091, 37721, 39618, 41345, 42840, 42979, 41595, 39295, 36042, 32717, 29648, 27010, 25158, 23417, 21929, 21846, 23241, 25591, 28832, 32141, 35248, 37826, 39716, 41415, 42890, 42949, 41508, 39157, 35874, 32582, 29495, 26901, 25076, 23346, 21884, 21888, 23343, 25723, 28993, 32307, 35390, 37934, 39790, 41488, 42925, 42903, 41406, 39030, 35723, 32404, 29355, 26803, 24986, 23272, 21852, 21935, 23436, 25863, 29158, 32473, 35530, 38037, 39868, 41566, 42958, 42852, 41319, 38884, 35553, 32248, 29201, 26701, 24900, 23188, 21834, 21983, 23515, 26001, 29320, 32636, 35672, 38141, 39962, 41655, 42972, 42810, 41229, 38759, 35378, 32087, 29059, 26601, 24811, 23105, 21809, 22027, 23618, 26136, 29491, 32806, 35820, 38239, 40047, 41727, 42999, 42757, 41130, 38608, 35221, 31912, 28911, 26501, 24729, 23032, 21794, 22089, 23713, 26298, 29641, 32995, 35956, 38344, 40128, 41805, 43016, 42688, 41028, 38463, 35065, 31730, 28779, 26413, 24643, 22931, 21778, 22154, 23809, 26440, 29802, 33164, 36082, 38442, 40227, 41899, 43025, 42627, 40930, 38304, 34903, 31562, 28651, 26320, 24546, 22839, 21770, 22224, 23914, 26596, 29971, 33327, 36205, 38539, 40315, 41985, 43031, 42559, 40833, 38153, 34719, 31410, 28515, 26226, 24450, 22763, 21755, 22291, 24021, 26764, 30153, 33492, 36334, 38624, 40409, 42068, 43033, 42473, 40722, 37981, 34554, 31252, 28403, 26130, 24361, 22680, 21756, 22360, 24149, 26928, 30318, 33645, 36465, 38732, 40493, 42148, 43048, 42416, 40609, 37804, 34390, 31095, 28260, 26034, 24272, 22605, 21748, 22438, 24252, 27087, 30487, 33780, 36596, 38826, 40578, 42212, 43049, 42342, 40491, 37644, 34223, 30958, 28119, 25949, 24193, 22538, 21743, 22516, 24371, 27257, 30645, 33927, 36742, 38915, 40661, 42298, 43058, 42254, 40377, 37472, 34056, 30822, 27973, 25853, 24095, 22461, 21736, 22578, 24485, 27427, 30817, 34064, 36885, 39007, 40754, 42379, 43062, 42186, 40250, 37306, 33892, 30686, 27834, 25766, 24012, 22381, 21740, 22661, 24613, 27601, 30971, 34198, 37003, 39098, 40823, 42451, 43054, 42107, 40122, 37132, 33733, 30548, 27703, 25675, 23923, 22298, 21749, 22723, 24738, 27767, 31154, 34344, 37149, 39177, 40920, 42527, 43053, 42035, 39999, 36967, 33570, 30405, 27579, 25589, 23843, 22226, 21750, 22802, 24872, 27942, 31312, 34487, 37275, 39276, 41002, 42602, 43044, 41964, 39853, 36775, 33388, 30267, 27468, 25508, 23758, 22161, 21760, 22876, 25017, 28132, 31492, 34625, 37377, 39353, 41087, 42673, 43035, 41879, 39724, 36611, 33232, 30123, 27356, 25420, 23671, 22082, 21769, 22960, 25153, 28291, 31655, 34762, 37497, 39436, 41171, 42730, 43030, 41794, 39586, 36427, 33073, 29978, 27247, 25331, 23593, 22025, 21781, 23052, 25286, 28463, 31814, 34918, 37592, 39524, 41247, 42785, 43012, 41708, 39453, 36258, 32912, 29822, 27138, 25249, 23517, 21973, 21799, 23135, 25424, 28629, 31970, 35073, 37709, 39615, 41330, 42836, 42995, 41620, 39315, 36077, 32745, 29669, 27034, 25191, 23437, 21925, 21830, 23222, 25563, 28797, 32137, 35208, 37821, 39688, 41407, 42877, 42958, 41574, 39183, 35908, 32593, 29529, 26921, 25084, 23355, 21888, 21872, 23324, 25701, 28966, 32285, 35359, 37917, 39785, 41486, 42912, 42925, 41440, 39041, 35744, 32444, 29380, 26820, 24997, 23274, 21860, 21910, 23410, 25839, 29133, 32438, 35505, 38025, 39853, 41550, 42945, 42870, 41341, 38904, 35579, 32292, 29225, 26720, 24921, 23208, 21831, 21969, 23510, 25982, 29290, 32604, 35645, 38122, 39944, 41627, 42969, 42826, 41248, 38768, 35416, 32127, 29075, 26612, 24827, 23121, 21808, 22020, 23602, 26115, 29461, 32775, 35796, 38225, 40030, 41719, 42997, 42763, 41142, 38629, 35248, 31935, 28938, 26524, 24743, 23039, 21794, 22084, 23698, 26271, 29616, 32967, 35921, 38322, 40109, 41798, 43001, 42705, 41053, 38484, 35095, 31768, 28794, 26428, 24644, 22954, 21781, 22136, 23800, 26431, 29785, 33142, 36060, 38435, 40209, 41877, 43022, 42645, 40950, 38308, 34923, 31600, 28677, 26330, 24564, 22862, 21770, 22201, 23898, 26577, 29947, 33302, 36191, 38527, 40297, 41974, 43032, 42572, 40839, 38160, 34763, 31432, 28541, 26241, 24472, 22770, 21758, 22280, 24004, 26741, 30117, 33465, 36324, 38619, 40393, 42062, 43043, 42494, 40738, 37996, 34606, 31268, 28406, 26148, 24377, 22685, 21747, 22359, 24116, 26903, 30292, 33626, 36453, 38702, 40486, 42145, 43042, 42427, 40636, 37828, 34424, 31128, 28272, 26056, 24292, 22617, 21749, 22425, 24226, 27060, 30455, 33772, 36579, 38811, 40569, 42216, 43047, 42343, 40526, 37652, 34251, 30980, 28134, 25962, 24203, 22538, 21748, 22497, 24334, 27233, 30636, 33906, 36731, 38904, 40654, 42294, 43050, 42264, 40407, 37493, 34083, 30850, 27979, 25871, 24104, 22462, 21741, 22562, 24463, 27400, 30800, 34050, 36873, 38991, 40745, 42376, 43057, 42203, 40274, 37323, 33913, 30717, 27836, 25778, 24018, 22392, 21740, 22638, 24593, 27572, 30958, 34182, 36999, 39082, 40827, 42444, 43052, 42130, 40147, 37185, 33751, 30579, 27712, 25689, 23936, 22315, 21733, 22711, 24726, 27744, 31128, 34319, 37133, 39174, 40909, 42518, 43057, 42048, 40013, 36980, 33586, 30433, 27596, 25607, 23852, 22242, 21745, 22786, 24858, 27913, 31304, 34444, 37266, 39251, 40995, 42605, 43048, 41967, 39876, 36817, 33397, 30313, 27467, 25520, 23781, 22152, 21755, 22872, 24990, 28082, 31479, 34590, 37369, 39344, 41070, 42676, 43042, 41893, 39750, 36644, 33236, 30159, 27364, 25434, 23698, 22082, 21773, 22947, 25129, 28256, 31645, 34733, 37483, 39438, 41138, 42741, 43021, 41815, 39606, 36470, 33074, 30011, 27247, 25338, 23619, 22018, 21788, 23038, 25281, 28427, 31804, 34883, 37589, 39528, 41222, 42799, 42991, 41711, 39466, 36293, 32914, 29851, 27159, 25256, 23543, 21963, 21813, 23117, 25421, 28599, 31966, 35030, 37699, 39604, 41310, 42845, 42987, 41633, 39326, 36117, 32761, 29696, 27048, 25178, 23459, 21913, 21853, 23210, 25559, 28764, 32121, 35190, 37790, 39668, 41375, 42891, 42946, 41534, 39196, 35949, 32611, 29544, 26944, 25086, 23384, 21880, 21891, 23304, 25696, 28940, 32274, 35340, 37896, 39778, 41450, 42930, 42891, 41455, 39054, 35780, 32455, 29402, 26845, 25003, 23305, 21850, 21941, 23385, 25829, 29108, 32414, 35493, 37998, 39867, 41538, 42960, 42853, 41372, 38918, 35598, 32301, 29237, 26740, 24905, 23236, 21825, 21996, 23478, 25973, 29276, 32578, 35636, 38101, 39955, 41603, 42981, 42798, 41270, 38769, 35438, 32147, 29090, 26644, 24818, 23154, 21803, 22046, 23577, 26105, 29437, 32753, 35780, 38195, 40046, 41686, 43002, 42748, 41181, 38637, 35270, 31972, 28946, 26540, 24729, 23070, 21784, 22090, 23672, 26263, 29600, 32928, 35923, 38303, 40124, 41763, 43022, 42692, 41074, 38488, 35109, 31792, 28800, 26454, 24644, 22979, 21767, 22160, 23766, 26411, 29762, 33111, 36054, 38392, 40214, 41858, 43034, 42628, 40970, 38337, 34937, 31640, 28662, 26374, 24554, 22888, 21760, 22224, 23871, 26565, 29936, 33262, 36188, 38484, 40306, 41949, 43044, 42549, 40874, 38187, 34765, 31476, 28537, 26273, 24458, 22797, 21755, 22293, 23971, 26718, 30114, 33422, 36324, 38589, 40397, 42037, 43050, 42478, 40765, 38012, 34592, 31319, 28415, 26174, 24365, 22716, 21745, 22364, 24083, 26880, 30288, 33579, 36444, 38683, 40478, 42111, 43051, 42411, 40659, 37853, 34422, 31166, 28287, 26072, 24290, 22645, 21746, 22435, 24200, 27051, 30456, 33727, 36587, 38777, 40564, 42188, 43061, 42332, 40544, 37684, 34241, 31023, 28138, 25979, 24202, 22562, 21736, 22510, 24316, 27218, 30627, 33874, 36717, 38881, 40650, 42271, 43065, 42262, 40418, 37516, 34082, 30883, 27986, 25891, 24115, 22486, 21733, 22586, 24440, 27373, 30778, 34011, 36848, 38970, 40727, 42351, 43061, 42184, 40293, 37352, 33921, 30749, 27849, 25801, 24030, 22397, 21741, 22656, 24573, 27550, 30960, 34144, 36988, 39050, 40808, 42427, 43053, 42104, 40173, 37190, 33759, 30618, 27727, 25713, 23956, 22321, 21745, 22723, 24686, 27700, 31121, 34273, 37127, 39155, 40906, 42515, 43054, 42049, 40037, 37003, 33582, 30481, 27603, 25618, 23870, 22244, 21752, 22795, 24834, 27881, 31283, 34419, 37241, 39239, 40965, 42587, 43046, 41970, 39910, 36842, 33427, 30336, 27486, 25523, 23788, 22167, 21763, 22859, 24982, 28056, 31458, 34565, 37359, 39331, 41051, 42660, 43038, 41897, 39754, 36671, 33251, 30189, 27381, 25450, 23713, 22092, 21772, 22943, 25119, 28232, 31625, 34711, 37462, 39413, 41133, 42725, 43020, 41806, 39631, 36497, 33078, 30038, 27270, 25363, 23622, 22030, 21793, 23027, 25251, 28398, 31795, 34858, 37568, 39494, 41218, 42791, 43005, 41728, 39486, 36319, 32923, 29880, 27167, 25279, 23547, 21975, 21823, 23112, 25387, 28584, 31967, 35015, 37671, 39590, 41304, 42840, 42977, 41646, 39350, 36129, 32761, 29723, 27061, 25181, 23463, 21923, 21847, 23198, 25542, 28753, 32110, 35175, 37780, 39687, 41367, 42888, 42965, 41554, 39192, 35956, 32615, 29574, 26952, 25099, 23395, 21886, 21885, 23295, 25686, 28923, 32259, 35320, 37886, 39766, 41449, 42924, 42905, 41452, 39062, 35787, 32454, 29411, 26846, 25005, 23314, 21849, 21935, 23394, 25824, 29094, 32420, 35480, 37982, 39864, 41529, 42962, 42850, 41378, 38922, 35613, 32315, 29255, 26748, 24908, 23231, 21817, 21979, 23463, 25980, 29265, 32573, 35635, 38092, 39954, 41609, 42983, 42806, 41284, 38788, 35444, 32154, 29102, 26647, 24831, 23158, 21803, 22038, 23562, 26104, 29426, 32740, 35778, 38189, 40035, 41672, 43003, 42758, 41188, 38646, 35286, 31986, 28959, 26548, 24738, 23078, 21785, 22092, 23659, 26251, 29596, 32920, 35918, 38289, 40114, 41760, 43019, 42695, 41085, 38501, 35119, 31809, 28814, 26461, 24658, 22986, 21771, 22143, 23759, 26388, 29759, 33093, 36053, 38386, 40210, 41850, 43032, 42629, 40981, 38356, 34947, 31639, 28684, 26371, 24555, 22896, 21758, 22219, 23855, 26546, 29922, 33252, 36181, 38485, 40299, 41940, 43041, 42539, 40899, 38186, 34776, 31492, 28569, 26280, 24470, 22814, 21750, 22279, 23963, 26709, 30091, 33420, 36319, 38589, 40392, 42029, 43051, 42496, 40762, 38023, 34613, 31330, 28419, 26178, 24374, 22723, 21744, 22345, 24068, 26866, 30262, 33563, 36441, 38680, 40488, 42113, 43056, 42422, 40670, 37860, 34441, 31170, 28291, 26083, 24288, 22650, 21739, 22429, 24180, 27038, 30440, 33720, 36585, 38781, 40566, 42190, 43051, 42349, 4055};
jaspreetsingh 0:f2467c077504 69 unsigned short ACdata[fft_points];
jaspreetsingh 0:f2467c077504 70 unsigned short DCdata[fft_points];
jaspreetsingh 0:f2467c077504 71 unsigned short DC_Detect_data[10];
jaspreetsingh 0:f2467c077504 72 unsigned short Temp_data[10];
jaspreetsingh 0:f2467c077504 73 uint32_t dataLength = dur_sec*freq*1000;
lalitkumar 18:4e3aa33674c8 74 int avg_dc_detect[2];
lalitkumar 18:4e3aa33674c8 75 int avg_temp[2];
jaspreetsingh 0:f2467c077504 76
pravinmagar 23:69ac079fb31e 77
jaspreetsingh 0:f2467c077504 78 //--------------------------------------------------------------------------------------------------//
jaspreetsingh 0:f2467c077504 79 // Module reset //
jaspreetsingh 0:f2467c077504 80 //--------------------------------------------------------------------------------------------------//
jaspreetsingh 0:f2467c077504 81 void reset_mod()
jaspreetsingh 0:f2467c077504 82 {
jaspreetsingh 0:f2467c077504 83 NVIC_SystemReset();
jaspreetsingh 0:f2467c077504 84 }
jaspreetsingh 0:f2467c077504 85
pravinmagar 20:764af4c48cf2 86
pravinmagar 20:764af4c48cf2 87
pravinmagar 20:764af4c48cf2 88
pravinmagar 20:764af4c48cf2 89
jaspreetsingh 0:f2467c077504 90 //--------------------------------------------------------------------------------------------------//
jaspreetsingh 0:f2467c077504 91 // Send AT Command (1 response with clk variable) //
jaspreetsingh 0:f2467c077504 92 //--------------------------------------------------------------------------------------------------//
jaspreetsingh 0:f2467c077504 93 int sendATcommand(char* ATcommand, char* expected_answer, unsigned int timeout, int clk_flag)
jaspreetsingh 0:f2467c077504 94 {
jaspreetsingh 0:f2467c077504 95 int grs=0;
FahdAnsary 12:0ab0a2578025 96 int answer=0; //x=0 and answer=0, if not put, AT+CCLK?\r is not executed
jaspreetsingh 0:f2467c077504 97 char response[300];
jaspreetsingh 0:f2467c077504 98 memset(response, '\0', 100); // Initialize the string
jaspreetsingh 0:f2467c077504 99 wait_ms(100);
jaspreetsingh 0:f2467c077504 100 previous = time(NULL);
jaspreetsingh 0:f2467c077504 101 char dummy;
FahdAnsary 9:7965c3bc3199 102 do
FahdAnsary 9:7965c3bc3199 103 {
FahdAnsary 9:7965c3bc3199 104 if(gsm.readable()!=0)
FahdAnsary 9:7965c3bc3199 105 {
jaspreetsingh 0:f2467c077504 106 dummy=gsm.getc();
jaspreetsingh 0:f2467c077504 107 //pc.putc(dummy);
FahdAnsary 9:7965c3bc3199 108 }
FahdAnsary 9:7965c3bc3199 109 }
FahdAnsary 12:0ab0a2578025 110 while((time(NULL) - previous) < 1); // Clean the input buffer
jaspreetsingh 0:f2467c077504 111 //pc.printf("\r\n");
jaspreetsingh 0:f2467c077504 112 gsm.printf("%s \r", ATcommand); // Send the AT command
jaspreetsingh 0:f2467c077504 113 grs = 0;
jaspreetsingh 0:f2467c077504 114 previous = time(NULL);
FahdAnsary 9:7965c3bc3199 115 do
FahdAnsary 12:0ab0a2578025 116 { // this loop waits for the answer
FahdAnsary 9:7965c3bc3199 117 if(gsm.readable() != 0)
FahdAnsary 9:7965c3bc3199 118 {
FahdAnsary 12:0ab0a2578025 119 response[grs] = gsm.getc(); // if there are data in the UART input buffer, reads it and checks for the asnwer
jaspreetsingh 0:f2467c077504 120 pc.putc(response[grs]);
jaspreetsingh 0:f2467c077504 121 grs++;
FahdAnsary 9:7965c3bc3199 122 if (strstr(response, expected_answer) != NULL)
FahdAnsary 12:0ab0a2578025 123 { // check if the desired answer is in the response of the module
jaspreetsingh 0:f2467c077504 124 if(clk_flag==2) answer=2;
jaspreetsingh 0:f2467c077504 125 else answer=1;
jaspreetsingh 0:f2467c077504 126 }
FahdAnsary 9:7965c3bc3199 127 }
FahdAnsary 12:0ab0a2578025 128 } while((answer !=1) && ((time(NULL) - previous) < timeout)); // Waits for the asnwer with time out
FahdAnsary 9:7965c3bc3199 129 if(clk_flag == 1)
FahdAnsary 9:7965c3bc3199 130 {
jaspreetsingh 0:f2467c077504 131 //pc.printf("\r\nclock updated\r\n");
jaspreetsingh 0:f2467c077504 132 sprintf(timestamp,response);
FahdAnsary 12:0ab0a2578025 133 pc.printf("%s",timestamp); //copies response to timestamp for further processing
jaspreetsingh 0:f2467c077504 134 }
jaspreetsingh 0:f2467c077504 135 //pc.printf("\r\nanswer %d\r\n",answer);
jaspreetsingh 0:f2467c077504 136 return answer;
jaspreetsingh 0:f2467c077504 137 }
pravinmagar 20:764af4c48cf2 138
pravinmagar 20:764af4c48cf2 139 //--------------------------------------------------------------------------------------------------//
lalitkumar 21:9e71641aeac8 140 // Send AT Command (Compare with 2 responses) //
lalitkumar 21:9e71641aeac8 141 //--------------------------------------------------------------------------------------------------//
lalitkumar 21:9e71641aeac8 142 int sendATcommand2(char* ATcommand, char* expected_answer1, char* expected_answer2, unsigned int timeout)
lalitkumar 21:9e71641aeac8 143 {
lalitkumar 21:9e71641aeac8 144 int grs=0;
lalitkumar 21:9e71641aeac8 145 int answer=0; //x=0 and answer=0, if not put, AT+CCLK?\r is not executed
lalitkumar 21:9e71641aeac8 146 char response[300];
lalitkumar 21:9e71641aeac8 147 memset(response, '\0', 100); // Initialize the string
lalitkumar 21:9e71641aeac8 148 wait_ms(100);
lalitkumar 21:9e71641aeac8 149 previous = time(NULL);
lalitkumar 21:9e71641aeac8 150 char dummy;
lalitkumar 21:9e71641aeac8 151 do
lalitkumar 21:9e71641aeac8 152 {
lalitkumar 21:9e71641aeac8 153 if(gsm.readable()!=0)
lalitkumar 21:9e71641aeac8 154 {
lalitkumar 21:9e71641aeac8 155 dummy=gsm.getc();
lalitkumar 21:9e71641aeac8 156 //pc.putc(dummy);
lalitkumar 21:9e71641aeac8 157 }
lalitkumar 21:9e71641aeac8 158 }
lalitkumar 21:9e71641aeac8 159 while((time(NULL) - previous) < 1); // Clean the input buffer
lalitkumar 21:9e71641aeac8 160 //pc.printf("\r\n");
lalitkumar 21:9e71641aeac8 161 gsm.printf("%s \r", ATcommand); // Send the AT command
lalitkumar 21:9e71641aeac8 162 grs = 0;
lalitkumar 21:9e71641aeac8 163 previous = time(NULL);
lalitkumar 21:9e71641aeac8 164 do
lalitkumar 21:9e71641aeac8 165 { // this loop waits for the answer
lalitkumar 21:9e71641aeac8 166 if(gsm.readable() != 0)
lalitkumar 21:9e71641aeac8 167 {
lalitkumar 21:9e71641aeac8 168 response[grs] = gsm.getc(); // if there are data in the UART input buffer, reads it and checks for the asnwer
lalitkumar 21:9e71641aeac8 169 pc.putc(response[grs]);
lalitkumar 21:9e71641aeac8 170 grs++;
lalitkumar 21:9e71641aeac8 171 if (strstr(response, expected_answer1) != NULL)
lalitkumar 21:9e71641aeac8 172 { // check if the desired answer is in the response of the module
lalitkumar 21:9e71641aeac8 173 answer=1;
lalitkumar 21:9e71641aeac8 174 }
lalitkumar 21:9e71641aeac8 175 if (strstr(response, expected_answer2) != NULL)
lalitkumar 21:9e71641aeac8 176 { // check if the desired answer is in the response of the module
lalitkumar 21:9e71641aeac8 177 answer=1;
lalitkumar 21:9e71641aeac8 178 }
lalitkumar 21:9e71641aeac8 179 }
lalitkumar 21:9e71641aeac8 180 } while((answer !=1) && ((time(NULL) - previous) < timeout)); // Waits for the asnwer with time out
lalitkumar 21:9e71641aeac8 181 //pc.printf("\r\nanswer %d\r\n",answer);
lalitkumar 21:9e71641aeac8 182 return answer;
lalitkumar 21:9e71641aeac8 183 }
lalitkumar 21:9e71641aeac8 184
lalitkumar 21:9e71641aeac8 185 //--------------------------------------------------------------------------------------------------//
pravinmagar 20:764af4c48cf2 186 // iteration
pravinmagar 20:764af4c48cf2 187 //--------------------------------------------------------------------------------------------------//
pravinmagar 20:764af4c48cf2 188
pravinmagar 20:764af4c48cf2 189 bool iteration_send_ATcommand(char* ATcommand, char* expected_answer, unsigned int timeout, int clk_flag,int attempts)
pravinmagar 20:764af4c48cf2 190 {
pravinmagar 20:764af4c48cf2 191 for(int i=0; i < attempts; i++)
pravinmagar 20:764af4c48cf2 192 {
pravinmagar 20:764af4c48cf2 193 if(sendATcommand(ATcommand,expected_answer,timeout,clk_flag))
pravinmagar 20:764af4c48cf2 194 {
pravinmagar 20:764af4c48cf2 195 return 1;
pravinmagar 20:764af4c48cf2 196 }
pravinmagar 20:764af4c48cf2 197 }
pravinmagar 20:764af4c48cf2 198 return 0 ;
pravinmagar 20:764af4c48cf2 199 }
FahdAnsary 9:7965c3bc3199 200 //--------------------------------------------------------------------------------------------------//
FahdAnsary 9:7965c3bc3199 201 // Getting Timestamp Function //
FahdAnsary 9:7965c3bc3199 202 //--------------------------------------------------------------------------------------------------//
FahdAnsary 9:7965c3bc3199 203
FahdAnsary 9:7965c3bc3199 204 void GetTime()
FahdAnsary 9:7965c3bc3199 205 {
jaspreetsingh 0:f2467c077504 206 sendATcommand("AT+CCLK?\r", "OK", 5,1);
jaspreetsingh 0:f2467c077504 207 //sprintf(response,timestamp);
jaspreetsingh 0:f2467c077504 208 int x=20;
jaspreetsingh 0:f2467c077504 209 year = 10*(timestamp[x+1]-48) + (timestamp[x+2]-48);
jaspreetsingh 0:f2467c077504 210 month = (timestamp[x+4]-48)*10+(timestamp[x+5]-48);
jaspreetsingh 0:f2467c077504 211 date = (timestamp[x+7]-48)*10+(timestamp[x+8]-48);
jaspreetsingh 0:f2467c077504 212 hour = (timestamp[x+10]-48)*10+(timestamp[x+11]-48);
jaspreetsingh 0:f2467c077504 213 minute = (timestamp[x+13]-48)*10+(timestamp[x+14]-48);
jaspreetsingh 0:f2467c077504 214 second = (timestamp[x+16]-48)*10+(timestamp[x+17]-48);
jaspreetsingh 0:f2467c077504 215
jaspreetsingh 0:f2467c077504 216 sprintf(time_stamp,"%02d%02d%02d%02d%02d%02d",year,month,date,hour,minute,second);
FahdAnsary 12:0ab0a2578025 217 //pc.printf("Get time result:%s.....",time_stamp);
FahdAnsary 9:7965c3bc3199 218 }
jaspreetsingh 8:12b4c521c033 219
jaspreetsingh 0:f2467c077504 220 //--------------------------------------------------------------------------------------------------//
jaspreetsingh 0:f2467c077504 221 // Getting File Directories and names //
jaspreetsingh 0:f2467c077504 222 //--------------------------------------------------------------------------------------------------//
jaspreetsingh 0:f2467c077504 223 void GetFileDir()
jaspreetsingh 0:f2467c077504 224 {
jaspreetsingh 0:f2467c077504 225 int attempt_cnt=0;
jaspreetsingh 0:f2467c077504 226 char month_dir[100]="";
jaspreetsingh 0:f2467c077504 227 char date_dir[100] ="";
jaspreetsingh 0:f2467c077504 228 GetTime();
FahdAnsary 9:7965c3bc3199 229 while(year<15||year>20)
FahdAnsary 9:7965c3bc3199 230 {
jaspreetsingh 0:f2467c077504 231 //pc.printf("%d\r\n",year);
jaspreetsingh 0:f2467c077504 232 GetTime();
jaspreetsingh 0:f2467c077504 233 attempt_cnt++;
jaspreetsingh 0:f2467c077504 234 if(attempt_cnt>4) break;
jaspreetsingh 0:f2467c077504 235 }
FahdAnsary 12:0ab0a2578025 236 if(year>14&&year<21&&month<13)
FahdAnsary 9:7965c3bc3199 237 {
FahdAnsary 9:7965c3bc3199 238 if((minute!=minuteold)||(second!=secondold))
FahdAnsary 9:7965c3bc3199 239 {
jaspreetsingh 0:f2467c077504 240 sprintf(timestampold,timestamp);
FahdAnsary 12:0ab0a2578025 241
FahdAnsary 12:0ab0a2578025 242 pc.printf("\r\nold time stamp is%s\r\n",timestampold);
jaspreetsingh 0:f2467c077504 243 minuteold=minute;
jaspreetsingh 0:f2467c077504 244 secondold=second;
jaspreetsingh 0:f2467c077504 245 sprintf(main_dir,"/sd/%s",sitename);
jaspreetsingh 0:f2467c077504 246 sprintf(month_dir,"%s/%s%02d%02d",main_dir,sitename,year,month);
jaspreetsingh 0:f2467c077504 247 sprintf(date_dir,"%s/%s%02d%02d%02d",month_dir,sitename,year,month,date);
jaspreetsingh 0:f2467c077504 248 sprintf(hour_dir,"%s/%s%02d%02d%02d%02d",date_dir,sitename,year,month,date,hour);
jaspreetsingh 0:f2467c077504 249 sprintf(filepath,"%s/%s%02d%02d%02d%02d%02d%02d",hour_dir,sitename,year,month,date,hour,minute,second);
jaspreetsingh 0:f2467c077504 250 sprintf(filename,"%s%02d%02d%02d%02d%02d%02d",sitename,year,month,date,hour,minute,second);
pravinmagar 23:69ac079fb31e 251 sprintf(ftpputpathname,"%s/%02d/%02d/%02d/%02d",module_name,year,month,date,hour); // For FTPPUTPATHNAME feature
jaspreetsingh 5:11c455ebcc34 252 //pc.printf("Ftpputpathname is %s\r\n",ftpputpathname); // For FTPPUTPATHNAME feature
jaspreetsingh 0:f2467c077504 253 gsmerr=0;
jaspreetsingh 0:f2467c077504 254 mkdir(main_dir,0777);
jaspreetsingh 0:f2467c077504 255 mkdir(month_dir,0777);
jaspreetsingh 0:f2467c077504 256 mkdir(date_dir,0777);
jaspreetsingh 0:f2467c077504 257 mkdir(hour_dir,0777);
FahdAnsary 9:7965c3bc3199 258 }
FahdAnsary 9:7965c3bc3199 259 else
FahdAnsary 9:7965c3bc3199 260 {
jaspreetsingh 0:f2467c077504 261 sprintf(filepath,"%s/%s%02d%02d%02d%02d%02d%02dErr%03d",hour_dir,sitename,year,month,date,hour,minute,second,gsmerr);
jaspreetsingh 0:f2467c077504 262 sprintf(filename,"%s%02d%02d%02d%02d%02d%02dErr%03d",sitename,year,month,date,hour,minute,second,gsmerr);
jaspreetsingh 0:f2467c077504 263 gsmerr++;
jaspreetsingh 0:f2467c077504 264 }
FahdAnsary 9:7965c3bc3199 265 }
FahdAnsary 9:7965c3bc3199 266 else
FahdAnsary 9:7965c3bc3199 267 {
jaspreetsingh 0:f2467c077504 268 sprintf(timestamp,timestampold);
FahdAnsary 12:0ab0a2578025 269 //pc.printf("\r\nTimestamp......%s\r\n",timestamp);
FahdAnsary 12:0ab0a2578025 270
FahdAnsary 12:0ab0a2578025 271 sprintf(filepath,"%s/%s%02d%02dErr%03d",hour_dir,sitename,minuteold,secondold,gsmerr);
FahdAnsary 12:0ab0a2578025 272 sprintf(filename,"%s%02d%02dErr%03d",sitename,minuteold,secondold,gsmerr);
jaspreetsingh 0:f2467c077504 273 gsmerr++;
jaspreetsingh 0:f2467c077504 274 }
jaspreetsingh 0:f2467c077504 275 }
jaspreetsingh 0:f2467c077504 276
jaspreetsingh 0:f2467c077504 277 //--------------------------------------------------------------------------------------------------//
lalitkumar 18:4e3aa33674c8 278 // DC & Temp Detect //
jaspreetsingh 0:f2467c077504 279 //--------------------------------------------------------------------------------------------------//
lalitkumar 18:4e3aa33674c8 280 void DC_TC_Detection(short int k) //k limited by array size of avg_dc_detect & avg_temp
jaspreetsingh 0:f2467c077504 281 {
jaspreetsingh 0:f2467c077504 282 Timer t;
jaspreetsingh 0:f2467c077504 283 int j=0;
jaspreetsingh 7:3d5fd645c11d 284 ADC0_CFG2=ADC0_CFG2||0x10;
jaspreetsingh 0:f2467c077504 285 t.start();
FahdAnsary 9:7965c3bc3199 286 while(j<10)
FahdAnsary 9:7965c3bc3199 287 {
FahdAnsary 9:7965c3bc3199 288 if((int)(t.read()*50*freq*1000)%100 == 0)
FahdAnsary 9:7965c3bc3199 289 {
jaspreetsingh 0:f2467c077504 290 DC_Detect_data[j] = DC_Detect.read_u16();
jaspreetsingh 7:3d5fd645c11d 291 Temp_data[j] = TC1.read_u16();
jaspreetsingh 0:f2467c077504 292 ++j;
jaspreetsingh 0:f2467c077504 293 }
jaspreetsingh 0:f2467c077504 294 }
jaspreetsingh 0:f2467c077504 295 t.stop();
FahdAnsary 9:7965c3bc3199 296 //pc.printf("\r\nTemp Time Taken %f \n\r", t.read());
jaspreetsingh 0:f2467c077504 297 t.reset();
lalitkumar 18:4e3aa33674c8 298 avg_dc_detect[k]=0;
lalitkumar 18:4e3aa33674c8 299 avg_temp[k]=0;
lalitkumar 18:4e3aa33674c8 300 for(int i=0; i<10; i++)
lalitkumar 18:4e3aa33674c8 301 {
lalitkumar 18:4e3aa33674c8 302 avg_dc_detect[k]=avg_dc_detect[k]+int(DC_Detect_data[i]);
lalitkumar 18:4e3aa33674c8 303 avg_temp[k]=avg_temp[k]+int(Temp_data[i]);
lalitkumar 18:4e3aa33674c8 304 }
lalitkumar 18:4e3aa33674c8 305 avg_dc_detect[k]=avg_dc_detect[k]/10;
lalitkumar 18:4e3aa33674c8 306 avg_temp[k]=avg_temp[k]/10;
jaspreetsingh 0:f2467c077504 307 // pc.printf("Total Samples %d\r\n",j);
jaspreetsingh 0:f2467c077504 308 }
jaspreetsingh 0:f2467c077504 309
jaspreetsingh 0:f2467c077504 310 //--------------------------------------------------------------------------------------------------//
jaspreetsingh 0:f2467c077504 311 // AC-DC Sampling //
jaspreetsingh 0:f2467c077504 312 //--------------------------------------------------------------------------------------------------//
jaspreetsingh 0:f2467c077504 313 void calculate_ADC()
jaspreetsingh 0:f2467c077504 314 {
jaspreetsingh 0:f2467c077504 315 Timer t;
jaspreetsingh 0:f2467c077504 316 int j=0;
jaspreetsingh 0:f2467c077504 317 pc.printf("\n\rStarting Reading \n\r");
jaspreetsingh 0:f2467c077504 318 t.start();
FahdAnsary 9:7965c3bc3199 319 while(j<dataLength)
FahdAnsary 9:7965c3bc3199 320 {
FahdAnsary 9:7965c3bc3199 321 if((int)(t.read()*100*freq*1000)%100 == 0)
FahdAnsary 9:7965c3bc3199 322 {
jaspreetsingh 0:f2467c077504 323 ACdata[j] = AC_input.read_u16();
jaspreetsingh 0:f2467c077504 324 DCdata[j] = DC_input.read_u16();
jaspreetsingh 0:f2467c077504 325 ++j;
jaspreetsingh 0:f2467c077504 326 }
jaspreetsingh 0:f2467c077504 327 }
jaspreetsingh 0:f2467c077504 328 t.stop();
jaspreetsingh 0:f2467c077504 329 //pc.printf("Time Taken %f \n\r", t.read());
jaspreetsingh 0:f2467c077504 330 t.reset();
jaspreetsingh 0:f2467c077504 331 //pc.printf("Total Samples %d\r\n",j);
jaspreetsingh 0:f2467c077504 332 }
jaspreetsingh 0:f2467c077504 333
jaspreetsingh 0:f2467c077504 334 //--------------------------------------------------------------------------------------------------//
jaspreetsingh 0:f2467c077504 335 // Sampling Function //
jaspreetsingh 0:f2467c077504 336 //--------------------------------------------------------------------------------------------------//
jaspreetsingh 0:f2467c077504 337
jaspreetsingh 0:f2467c077504 338 void sampling()
jaspreetsingh 0:f2467c077504 339 {
jaspreetsingh 0:f2467c077504 340 pc.printf("\r\nSampling attempt");
lalitkumar 18:4e3aa33674c8 341 DC_TC_Detection(0);
jaspreetsingh 0:f2467c077504 342 calculate_ADC();
lalitkumar 18:4e3aa33674c8 343 DC_TC_Detection(1);
jaspreetsingh 0:f2467c077504 344 }
FahdAnsary 9:7965c3bc3199 345 //--------------------------------------------------------------------------------------------------//
FahdAnsary 9:7965c3bc3199 346 // FFT Function //
FahdAnsary 9:7965c3bc3199 347 //--------------------------------------------------------------------------------------------------//
jaspreetsingh 0:f2467c077504 348
jaspreetsingh 0:f2467c077504 349 void fft(short N, short start_index, short step, int loop)
jaspreetsingh 0:f2467c077504 350 {
FahdAnsary 9:7965c3bc3199 351 if(N==2048)
FahdAnsary 9:7965c3bc3199 352 {
jaspreetsingh 0:f2467c077504 353 float input_2048[2048];
FahdAnsary 9:7965c3bc3199 354 for (short i=0; i<2048; i++)
FahdAnsary 9:7965c3bc3199 355 {
jaspreetsingh 0:f2467c077504 356 input_2048[i]=float(fft_array[(start_index+i*step)]);
jaspreetsingh 0:f2467c077504 357 }
jaspreetsingh 0:f2467c077504 358 float output_4096[4096];
jaspreetsingh 0:f2467c077504 359 arm_rfft_instance_f32 SR;
jaspreetsingh 0:f2467c077504 360 arm_cfft_radix4_instance_f32 SR_CFFT;
jaspreetsingh 0:f2467c077504 361 arm_status status=arm_rfft_init_f32(&SR, &SR_CFFT, 2048, 0, 1);
jaspreetsingh 0:f2467c077504 362 arm_rfft_f32(&SR, input_2048, output_4096);
FahdAnsary 9:7965c3bc3199 363 for (short i=0; i<4096; i++)
FahdAnsary 9:7965c3bc3199 364 {
jaspreetsingh 0:f2467c077504 365 fft_array[start_index+i*step]=int(output_4096[i]);
jaspreetsingh 0:f2467c077504 366 }
jaspreetsingh 0:f2467c077504 367 return;
FahdAnsary 9:7965c3bc3199 368 }
FahdAnsary 9:7965c3bc3199 369 else
FahdAnsary 9:7965c3bc3199 370 {
jaspreetsingh 0:f2467c077504 371 fft(N/2, start_index, step*2,0);
jaspreetsingh 0:f2467c077504 372 fft(N/2, start_index+step, step*2,0);
jaspreetsingh 0:f2467c077504 373 float output_data1[2];
jaspreetsingh 0:f2467c077504 374 float output_data2[2];
jaspreetsingh 0:f2467c077504 375 float output_data3[2];
jaspreetsingh 0:f2467c077504 376 float output_data4[2];
jaspreetsingh 0:f2467c077504 377 output_data3[0]=fft_array[start_index];
jaspreetsingh 0:f2467c077504 378 output_data3[1]=fft_array[start_index+2*step];
jaspreetsingh 0:f2467c077504 379 output_data4[0]=fft_array[start_index+step];
jaspreetsingh 0:f2467c077504 380 output_data4[1]=fft_array[start_index+3*step];
jaspreetsingh 0:f2467c077504 381 fft_array[start_index]=output_data3[0]+output_data4[0];
jaspreetsingh 0:f2467c077504 382 fft_array[start_index+step]=output_data3[1]+output_data4[1];
FahdAnsary 9:7965c3bc3199 383 for(int i=1; i<N/2; i++)
FahdAnsary 9:7965c3bc3199 384 {
jaspreetsingh 0:f2467c077504 385 output_data1[0]=float(fft_array[start_index+4*(i)*step]);
jaspreetsingh 0:f2467c077504 386 output_data1[1]=float(fft_array[start_index+(4*(i)+2)*step]);
jaspreetsingh 0:f2467c077504 387 output_data2[0]=float(fft_array[start_index+(4*(i)+1)*step]);
jaspreetsingh 0:f2467c077504 388 output_data2[1]=float(fft_array[start_index+(4*(i)+3)*step]);
jaspreetsingh 0:f2467c077504 389 fft_array[start_index+2*i*step]=int(output_data1[0]+(output_data2[0]*cos(2*i*3.142/N))-(output_data2[1]*sin(-2*i*3.142/N)));
jaspreetsingh 0:f2467c077504 390 fft_array[start_index+(2*i+1)*step]=int(output_data1[1]+(output_data2[0]*sin(-2*i*3.142/N))+(output_data2[1]*cos(2*i*3.142/N)));
jaspreetsingh 0:f2467c077504 391 }
jaspreetsingh 0:f2467c077504 392 fft_array[start_index+N*step]=output_data3[0]-output_data4[0];
jaspreetsingh 0:f2467c077504 393 fft_array[start_index+(N+1)*step]=output_data3[1]-output_data4[1];
FahdAnsary 9:7965c3bc3199 394 if(loop==0)
FahdAnsary 9:7965c3bc3199 395 {
FahdAnsary 9:7965c3bc3199 396 for(int i=N/2+1; i<N; i++)
FahdAnsary 9:7965c3bc3199 397 {
jaspreetsingh 0:f2467c077504 398 fft_array[start_index+2*i*step]=fft_array[start_index+2*(N-i)*step];
jaspreetsingh 0:f2467c077504 399 fft_array[start_index+(2*i+1)*step]=-1*fft_array[start_index+(2*(N-i)+1)*step];
jaspreetsingh 0:f2467c077504 400 }
jaspreetsingh 0:f2467c077504 401 }
FahdAnsary 9:7965c3bc3199 402 if(loop==1)
FahdAnsary 9:7965c3bc3199 403 {
FahdAnsary 9:7965c3bc3199 404 for(short i=0; i<8193; i++)
FahdAnsary 9:7965c3bc3199 405 {
jaspreetsingh 0:f2467c077504 406 fft_array[i]=int(sqrt((double(fft_array[2*i])*double(fft_array[2*i]))+(double(fft_array[2*i+1])*double(fft_array[2*i+1]))));
jaspreetsingh 0:f2467c077504 407 }
jaspreetsingh 0:f2467c077504 408 }
jaspreetsingh 0:f2467c077504 409 return;
jaspreetsingh 0:f2467c077504 410 }
jaspreetsingh 0:f2467c077504 411 }
FahdAnsary 9:7965c3bc3199 412 //--------------------------------------------------------------------------------------------------//
FahdAnsary 9:7965c3bc3199 413 // FFT Max Function //
FahdAnsary 9:7965c3bc3199 414 //--------------------------------------------------------------------------------------------------//
FahdAnsary 9:7965c3bc3199 415
jaspreetsingh 0:f2467c077504 416 void fft_max(int start_index, int number_count, int maximal_count, uint32_t* maximum_index, float* maximum_value)
jaspreetsingh 0:f2467c077504 417 {
jaspreetsingh 0:f2467c077504 418 float maximal_array[number_count];
FahdAnsary 9:7965c3bc3199 419 for (int i=0; i<number_count; i++)
FahdAnsary 9:7965c3bc3199 420 {
jaspreetsingh 0:f2467c077504 421 maximal_array[i]=float(fft_array[start_index+i]);
jaspreetsingh 0:f2467c077504 422 }
FahdAnsary 9:7965c3bc3199 423 for(int i=0; i<maximal_count; i++)
FahdAnsary 9:7965c3bc3199 424 {
jaspreetsingh 0:f2467c077504 425 arm_max_f32(maximal_array,number_count,&maximum_value[i],&maximum_index[i]);
jaspreetsingh 0:f2467c077504 426 maximal_array[maximum_index[i]]=0;
jaspreetsingh 0:f2467c077504 427 maximum_index[i]=start_index+maximum_index[i];
jaspreetsingh 0:f2467c077504 428 }
jaspreetsingh 0:f2467c077504 429 }
FahdAnsary 9:7965c3bc3199 430 //--------------------------------------------------------------------------------------------------//
FahdAnsary 9:7965c3bc3199 431 // FFT Array Prepare //
FahdAnsary 9:7965c3bc3199 432 //--------------------------------------------------------------------------------------------------//
jaspreetsingh 0:f2467c077504 433
pravinmagar 23:69ac079fb31e 434 int prepare_fft_array(int* start_index, int* points_count, int* maximas_required, int segments, int fft_type,int count)
jaspreetsingh 0:f2467c077504 435 {
jaspreetsingh 0:f2467c077504 436 int max_points_count=0;
FahdAnsary 9:7965c3bc3199 437 for (int i=0; i<segments; i++)
FahdAnsary 9:7965c3bc3199 438 {
jaspreetsingh 0:f2467c077504 439 max_points_count=max_points_count+maximas_required[i];
jaspreetsingh 0:f2467c077504 440 }
jaspreetsingh 0:f2467c077504 441 uint32_t index[max_points_count];
jaspreetsingh 0:f2467c077504 442 float maxima[max_points_count];
jaspreetsingh 0:f2467c077504 443 int j=0;
FahdAnsary 9:7965c3bc3199 444 for (int i=0; i<segments; i++)
FahdAnsary 9:7965c3bc3199 445 {
jaspreetsingh 0:f2467c077504 446 fft_max(start_index[i],points_count[i],maximas_required[i],&index[j],&maxima[j]);
jaspreetsingh 0:f2467c077504 447 j=j+maximas_required[i];
jaspreetsingh 0:f2467c077504 448 }
pravinmagar 23:69ac079fb31e 449
pravinmagar 23:69ac079fb31e 450 char inde[4]="";
pravinmagar 23:69ac079fb31e 451 char maxim[9]="";
pravinmagar 23:69ac079fb31e 452 pc.printf("count id=%d",count);
pravinmagar 23:69ac079fb31e 453
jaspreetsingh 0:f2467c077504 454 FILE *fp = fopen(pathfft, "a");
pravinmagar 23:69ac079fb31e 455
FahdAnsary 9:7965c3bc3199 456 if(fp == NULL)
FahdAnsary 9:7965c3bc3199 457 {
pravinmagar 23:69ac079fb31e 458 pc.printf("\r\n Could not open file for write\n\r");
FahdAnsary 12:0ab0a2578025 459 mkdir("/sd/jas",0777);
jaspreetsingh 0:f2467c077504 460 //reset_mod();
FahdAnsary 9:7965c3bc3199 461 }
FahdAnsary 9:7965c3bc3199 462 else
FahdAnsary 9:7965c3bc3199 463 {
jaspreetsingh 0:f2467c077504 464 //fprintf(fp, "\r\n%s",timestamp);
pravinmagar 23:69ac079fb31e 465
FahdAnsary 9:7965c3bc3199 466 for(int i=0; i<max_points_count; i++)
FahdAnsary 9:7965c3bc3199 467 {
jaspreetsingh 8:12b4c521c033 468
jaspreetsingh 14:83b823fdcdd0 469 fprintf(fp,"\n%d %d",index[i], int(maxima[i]));
FahdAnsary 9:7965c3bc3199 470 //pc.printf("\r\n %d %d",index[i], int(maxima[i]));
pravinmagar 23:69ac079fb31e 471
pravinmagar 23:69ac079fb31e 472 pc.printf("\r\n index[i] is=%d %.f",index[i],maxima[i]);
pravinmagar 23:69ac079fb31e 473
pravinmagar 23:69ac079fb31e 474 sprintf(inde,"%d",index[i]);
pravinmagar 23:69ac079fb31e 475
pravinmagar 23:69ac079fb31e 476 int length=0;
pravinmagar 23:69ac079fb31e 477 length=strlen(inde);
pravinmagar 23:69ac079fb31e 478 //pc.printf("\r\n length of inde=%d",length);
pravinmagar 23:69ac079fb31e 479
pravinmagar 23:69ac079fb31e 480 for(j=0;j<length;j++)
pravinmagar 23:69ac079fb31e 481 {
pravinmagar 23:69ac079fb31e 482 if(j!=0)
pravinmagar 23:69ac079fb31e 483 {
pravinmagar 23:69ac079fb31e 484 file_data[count]=inde[j];
pravinmagar 23:69ac079fb31e 485 count++;
pravinmagar 23:69ac079fb31e 486 }
pravinmagar 23:69ac079fb31e 487 }
pravinmagar 23:69ac079fb31e 488 strcat(file_data," ");
pravinmagar 23:69ac079fb31e 489 count++;
pravinmagar 23:69ac079fb31e 490
pravinmagar 23:69ac079fb31e 491 length=0;
pravinmagar 23:69ac079fb31e 492 sprintf(maxim,"%f",maxima[i]);
pravinmagar 23:69ac079fb31e 493 pc.printf("\r\n maxim is=%s",maxim);
pravinmagar 23:69ac079fb31e 494 length=strlen(maxim);
pravinmagar 23:69ac079fb31e 495 pc.printf("\r\n length of maxim=%d",length);
pravinmagar 23:69ac079fb31e 496
pravinmagar 23:69ac079fb31e 497 for(j=0;j<length;j++)
pravinmagar 23:69ac079fb31e 498 {
pravinmagar 23:69ac079fb31e 499 if(j!=0)
pravinmagar 23:69ac079fb31e 500 {
pravinmagar 23:69ac079fb31e 501 file_data[count]=maxim[j];
pravinmagar 23:69ac079fb31e 502 //pc.printf("\r\nmaxim is=%s",maxim[j]);
pravinmagar 23:69ac079fb31e 503 count++;
pravinmagar 23:69ac079fb31e 504 }
pravinmagar 23:69ac079fb31e 505 }
pravinmagar 23:69ac079fb31e 506 strcat(file_data,"\r\n");
pravinmagar 23:69ac079fb31e 507 count=count+2;
pravinmagar 23:69ac079fb31e 508
jaspreetsingh 0:f2467c077504 509 }
pravinmagar 23:69ac079fb31e 510 //pc.printf("\r\n file_data in fft points is=%s",file_data);
pravinmagar 23:69ac079fb31e 511
pravinmagar 23:69ac079fb31e 512
jaspreetsingh 8:12b4c521c033 513 if(fft_type==0)
jaspreetsingh 8:12b4c521c033 514 {
jaspreetsingh 8:12b4c521c033 515 fprintf(fp,"\r\n\r\n");
jaspreetsingh 8:12b4c521c033 516 maxfreq= index[1];
pravinmagar 23:69ac079fb31e 517
pravinmagar 23:69ac079fb31e 518 strcat(file_data,"\n");
pravinmagar 23:69ac079fb31e 519 count++;
pravinmagar 23:69ac079fb31e 520
pravinmagar 23:69ac079fb31e 521
jaspreetsingh 8:12b4c521c033 522 }
jaspreetsingh 0:f2467c077504 523 else fprintf(fp,"\r\nEOF");
jaspreetsingh 0:f2467c077504 524 fclose(fp);
pravinmagar 23:69ac079fb31e 525 pc.printf("\r\n count before return is=%d",count);
pravinmagar 23:69ac079fb31e 526 return count;
jaspreetsingh 0:f2467c077504 527 }
pravinmagar 23:69ac079fb31e 528
jaspreetsingh 0:f2467c077504 529 }
FahdAnsary 9:7965c3bc3199 530 //--------------------------------------------------------------------------------------------------//
FahdAnsary 9:7965c3bc3199 531 // Remove File from Directory //
FahdAnsary 9:7965c3bc3199 532 //--------------------------------------------------------------------------------------------------//
jaspreetsingh 8:12b4c521c033 533
jaspreetsingh 3:726f275f04ac 534 void do_remove(const char *fsrc)
jaspreetsingh 3:726f275f04ac 535 {
jaspreetsingh 3:726f275f04ac 536 pc.printf("\r\n Deleting... \r\n");
jaspreetsingh 3:726f275f04ac 537 DIR *d = opendir(fsrc);
jaspreetsingh 4:668d7227d060 538 if(d==NULL)
jaspreetsingh 4:668d7227d060 539 {
jaspreetsingh 4:668d7227d060 540 pc.printf("\r\n NULL Condition\r\n");
jaspreetsingh 4:668d7227d060 541 return;
jaspreetsingh 4:668d7227d060 542 }
jaspreetsingh 4:668d7227d060 543 else
jaspreetsingh 4:668d7227d060 544 {
jaspreetsingh 4:668d7227d060 545 struct dirent *p;
jaspreetsingh 4:668d7227d060 546 char path[100] = {0};
FahdAnsary 9:7965c3bc3199 547 while((p = readdir(d)) != NULL)
FahdAnsary 9:7965c3bc3199 548 {
jaspreetsingh 3:726f275f04ac 549 strcpy(path, fsrc);
jaspreetsingh 3:726f275f04ac 550 strcat(path, "/");
jaspreetsingh 3:726f275f04ac 551 strcat(path, p->d_name);
jaspreetsingh 3:726f275f04ac 552 remove(path);
FahdAnsary 9:7965c3bc3199 553 }
jaspreetsingh 4:668d7227d060 554 }
jaspreetsingh 3:726f275f04ac 555 closedir(d);
jaspreetsingh 3:726f275f04ac 556 remove(fsrc);
jaspreetsingh 3:726f275f04ac 557 }
jaspreetsingh 0:f2467c077504 558
jaspreetsingh 0:f2467c077504 559 //--------------------------------------------------------------------------------------------------//
jaspreetsingh 0:f2467c077504 560 // Storage //
jaspreetsingh 0:f2467c077504 561 //--------------------------------------------------------------------------------------------------//
jaspreetsingh 0:f2467c077504 562 void store()
jaspreetsingh 0:f2467c077504 563 {
jaspreetsingh 0:f2467c077504 564 GetFileDir();
FahdAnsary 9:7965c3bc3199 565 // AC Sample storage
jaspreetsingh 0:f2467c077504 566 sprintf(filenameAC,"%sAC.txt",filename);
jaspreetsingh 0:f2467c077504 567 sprintf(pathAC,"%sAC.txt",filepath);
jaspreetsingh 7:3d5fd645c11d 568 //pc.printf("\r\nFilename-AC\t%s", pathAC);
jaspreetsingh 0:f2467c077504 569 FILE *fp = fopen(pathAC, "w");
FahdAnsary 12:0ab0a2578025 570
FahdAnsary 9:7965c3bc3199 571 if(fp == NULL)
FahdAnsary 9:7965c3bc3199 572 {
jaspreetsingh 7:3d5fd645c11d 573 //pc.printf("Could not open file for write\n\r");
jaspreetsingh 0:f2467c077504 574 //reset_mod();
FahdAnsary 9:7965c3bc3199 575 }
FahdAnsary 9:7965c3bc3199 576 else
FahdAnsary 9:7965c3bc3199 577 {
jaspreetsingh 0:f2467c077504 578 //pc.printf("attempting to save file\n\r");
FahdAnsary 9:7965c3bc3199 579 for(int k=0; k<dataLength; k++)
FahdAnsary 9:7965c3bc3199 580 {
jaspreetsingh 0:f2467c077504 581 fprintf(fp, "%d.", ACdata[k]);
jaspreetsingh 0:f2467c077504 582 }
jaspreetsingh 0:f2467c077504 583 fprintf(fp, "EOF");
jaspreetsingh 0:f2467c077504 584 fclose(fp);
jaspreetsingh 0:f2467c077504 585 }
FahdAnsary 9:7965c3bc3199 586 // DC Sample storage
jaspreetsingh 0:f2467c077504 587 sprintf(filenameDC,"%sDC.txt",filename);
jaspreetsingh 0:f2467c077504 588 sprintf(pathDC,"%sDC.txt",filepath);
jaspreetsingh 7:3d5fd645c11d 589 //pc.printf("\r\nFilename-DC\t%s", pathDC);
jaspreetsingh 0:f2467c077504 590 fp = fopen(pathDC, "w");
FahdAnsary 9:7965c3bc3199 591 if(fp == NULL)
FahdAnsary 9:7965c3bc3199 592 {
jaspreetsingh 0:f2467c077504 593 //pc.printf("Could not open file for write\n\r");
jaspreetsingh 0:f2467c077504 594 //reset_mod();
FahdAnsary 9:7965c3bc3199 595 }
FahdAnsary 9:7965c3bc3199 596 else
FahdAnsary 9:7965c3bc3199 597 {
FahdAnsary 9:7965c3bc3199 598 for(int k=0; k<dataLength; k++)
FahdAnsary 9:7965c3bc3199 599 {
jaspreetsingh 0:f2467c077504 600 fprintf(fp, "%d.", DCdata[k]);
jaspreetsingh 0:f2467c077504 601 }
jaspreetsingh 0:f2467c077504 602 fprintf(fp, "EOF");
jaspreetsingh 0:f2467c077504 603 fclose(fp);
jaspreetsingh 0:f2467c077504 604 }
pravinmagar 23:69ac079fb31e 605
jaspreetsingh 0:f2467c077504 606 sprintf(filenamefft,"%sft.txt",filename);
jaspreetsingh 8:12b4c521c033 607 //sprintf(ftp_timestamp,"%s",filename); // For FTP Timestamp
jaspreetsingh 0:f2467c077504 608 sprintf(pathfft,"%sft.txt",filepath);
jaspreetsingh 7:3d5fd645c11d 609 //pc.printf("\r\nFilename-FFT\t%s", pathfft);
jaspreetsingh 0:f2467c077504 610
jaspreetsingh 0:f2467c077504 611 int fft_segments=4;
jaspreetsingh 0:f2467c077504 612 int fft_start_index[4]= {0,760,1520,2280};
jaspreetsingh 0:f2467c077504 613 int fft_points_count[4]= {4,120,240,360};
jaspreetsingh 0:f2467c077504 614 int fft_maximas_required[4]= {1,20,8,8};
jaspreetsingh 7:3d5fd645c11d 615 float AC_rms_value=0;
jaspreetsingh 7:3d5fd645c11d 616 float AC_mean_value=0;
jaspreetsingh 7:3d5fd645c11d 617 float DC_rms_value=0;
jaspreetsingh 7:3d5fd645c11d 618 float DC_mean_value=0;
jaspreetsingh 7:3d5fd645c11d 619
FahdAnsary 9:7965c3bc3199 620 //AC fft
FahdAnsary 9:7965c3bc3199 621 for(int i=0; i<fft_points; i++)
FahdAnsary 9:7965c3bc3199 622 {
jaspreetsingh 0:f2467c077504 623 fft_array[i]=int(ACdata[i]);
jaspreetsingh 7:3d5fd645c11d 624 AC_mean_value=AC_mean_value+fft_array[i];
jaspreetsingh 0:f2467c077504 625 //pc.printf("%d %d %d\r\n", i, i+int(fft_points), fft_array[i]);
jaspreetsingh 0:f2467c077504 626 fft_array[(i+int(fft_points))]=0;
jaspreetsingh 0:f2467c077504 627 }
FahdAnsary 9:7965c3bc3199 628 //AC RMS
jaspreetsingh 7:3d5fd645c11d 629 AC_mean_value=AC_mean_value/fft_points;
FahdAnsary 9:7965c3bc3199 630 for(int i=0; i<fft_points; i++)
FahdAnsary 9:7965c3bc3199 631 {
jaspreetsingh 7:3d5fd645c11d 632 AC_rms_value=AC_rms_value+((AC_mean_value-fft_array[i])*(AC_mean_value-fft_array[i])/10000);
jaspreetsingh 7:3d5fd645c11d 633 }
pravinmagar 23:69ac079fb31e 634
pravinmagar 23:69ac079fb31e 635
pravinmagar 23:69ac079fb31e 636 int count=0;
pravinmagar 23:69ac079fb31e 637 for (int i=0; i<12; i++)
pravinmagar 23:69ac079fb31e 638 {
pravinmagar 23:69ac079fb31e 639 file_data[i]= time_stamp[i];
pravinmagar 23:69ac079fb31e 640 count=count+1;
pravinmagar 23:69ac079fb31e 641 }
pravinmagar 23:69ac079fb31e 642 strcat(file_data,"\r\n");
pravinmagar 23:69ac079fb31e 643 count=count+2;
pravinmagar 23:69ac079fb31e 644
pravinmagar 23:69ac079fb31e 645 char AC_rms[10];
pravinmagar 23:69ac079fb31e 646 sprintf(AC_rms," %.0f",AC_rms_value);
pravinmagar 23:69ac079fb31e 647 pc.printf("\r\n AC_rms is=%.f",AC_rms);
pravinmagar 23:69ac079fb31e 648
pravinmagar 23:69ac079fb31e 649 int length=0;
pravinmagar 23:69ac079fb31e 650 length=strlen(AC_rms);
pravinmagar 23:69ac079fb31e 651 length=length;
pravinmagar 23:69ac079fb31e 652 pc.printf("\r\n length=%d",length);
pravinmagar 23:69ac079fb31e 653
pravinmagar 23:69ac079fb31e 654
pravinmagar 23:69ac079fb31e 655 for (int i=0; i<length; i++)
pravinmagar 23:69ac079fb31e 656 {
pravinmagar 23:69ac079fb31e 657 if(i!=0)
pravinmagar 23:69ac079fb31e 658 {
pravinmagar 23:69ac079fb31e 659 file_data[count]= AC_rms[i];
pravinmagar 23:69ac079fb31e 660 count++;
pravinmagar 23:69ac079fb31e 661 }
pravinmagar 23:69ac079fb31e 662
pravinmagar 23:69ac079fb31e 663 }
pravinmagar 23:69ac079fb31e 664 strcat(file_data,"\r\n");
pravinmagar 23:69ac079fb31e 665 count=count+2;
pravinmagar 23:69ac079fb31e 666
pravinmagar 23:69ac079fb31e 667 pc.printf("\r\nfile_data is=%s",file_data);
pravinmagar 23:69ac079fb31e 668
pravinmagar 23:69ac079fb31e 669
pravinmagar 23:69ac079fb31e 670 //FFT file write
jaspreetsingh 7:3d5fd645c11d 671 fp = fopen(pathfft, "w");
FahdAnsary 12:0ab0a2578025 672 //pc.printf("\r\nopened path fft\r\n");
FahdAnsary 9:7965c3bc3199 673 if(fp == NULL)
FahdAnsary 9:7965c3bc3199 674 {
FahdAnsary 12:0ab0a2578025 675 //pc.printf("Could not open file for write pathfft\n\r");
jaspreetsingh 7:3d5fd645c11d 676 //reset_mod();
jaspreetsingh 7:3d5fd645c11d 677 }
FahdAnsary 9:7965c3bc3199 678 else
FahdAnsary 9:7965c3bc3199 679 {
FahdAnsary 9:7965c3bc3199 680 fprintf(fp, "%s",time_stamp);
lalitkumar 18:4e3aa33674c8 681 fprintf(fp, " %d",avg_dc_detect[0]);
lalitkumar 18:4e3aa33674c8 682 fprintf(fp, " %d",avg_dc_detect[1]);
lalitkumar 18:4e3aa33674c8 683 fprintf(fp, " %d",avg_temp[0]);
lalitkumar 18:4e3aa33674c8 684 fprintf(fp, " %d",avg_temp[1]);
FahdAnsary 9:7965c3bc3199 685 fprintf(fp, " %.0f",AC_rms_value);
jaspreetsingh 7:3d5fd645c11d 686 fclose(fp);
jaspreetsingh 7:3d5fd645c11d 687 }
pravinmagar 23:69ac079fb31e 688
FahdAnsary 9:7965c3bc3199 689 fft(fft_points,0,1,1);
FahdAnsary 9:7965c3bc3199 690 maxfreq=0;
pravinmagar 23:69ac079fb31e 691 int X;
pravinmagar 23:69ac079fb31e 692 X= prepare_fft_array(fft_start_index,fft_points_count,fft_maximas_required,fft_segments,0,count);
pravinmagar 23:69ac079fb31e 693 pc.printf("x is=%s",X);
pravinmagar 23:69ac079fb31e 694
FahdAnsary 9:7965c3bc3199 695 //TIME STAMP FILE WRITE FUNCTION
FahdAnsary 12:0ab0a2578025 696 if(gsmerr==0)
FahdAnsary 12:0ab0a2578025 697 {
FahdAnsary 12:0ab0a2578025 698
FahdAnsary 12:0ab0a2578025 699 sprintf(timestampname,"TS%s%02d%02d%02d%02d.txt",sitename,year,month,date,hour);
FahdAnsary 12:0ab0a2578025 700 sprintf(timestamppath,"/sd/%s",timestampname);
FahdAnsary 12:0ab0a2578025 701 }
FahdAnsary 12:0ab0a2578025 702 else
FahdAnsary 12:0ab0a2578025 703 {
FahdAnsary 12:0ab0a2578025 704
FahdAnsary 12:0ab0a2578025 705 sprintf(timestampname,"TS%sErr.txt",sitename);
FahdAnsary 12:0ab0a2578025 706 //pc.printf("\r\n%s",timestampname);
FahdAnsary 12:0ab0a2578025 707 sprintf(timestamppath,"/sd/%s",timestampname);
FahdAnsary 12:0ab0a2578025 708
FahdAnsary 12:0ab0a2578025 709 }
FahdAnsary 12:0ab0a2578025 710 //pc.printf("\r\n Timestampname is %s\r\n",timestampname);
FahdAnsary 9:7965c3bc3199 711 FILE *fp13 = fopen(timestamppath,"a");
FahdAnsary 9:7965c3bc3199 712
FahdAnsary 12:0ab0a2578025 713 if(fp == NULL)
FahdAnsary 12:0ab0a2578025 714 {
FahdAnsary 12:0ab0a2578025 715 //pc.printf("Could not open file for write pathfft\n\r");
FahdAnsary 12:0ab0a2578025 716 //reset_mod();
FahdAnsary 12:0ab0a2578025 717 }
FahdAnsary 12:0ab0a2578025 718 else
FahdAnsary 12:0ab0a2578025 719 {
lalitkumar 18:4e3aa33674c8 720 fprintf(fp13,"\r\n%02d%02d %d %.0f %d",minute,second,avg_dc_detect[1]/100,AC_rms_value/100000,maxfreq); //Rushabh: avg_dc_detect[2] missing, need to accomodate
FahdAnsary 12:0ab0a2578025 721 //pc.printf("Value is \r\n%02d%02d %d %.0f %d",minute,second,avg_dc_detect,AC_rms_value,maxfreq);
FahdAnsary 12:0ab0a2578025 722 fclose(fp13);
FahdAnsary 12:0ab0a2578025 723 }
jaspreetsingh 8:12b4c521c033 724 pc.printf("\r\nTimestamp.txt Storage Done\n\r");
FahdAnsary 9:7965c3bc3199 725
FahdAnsary 9:7965c3bc3199 726 //DC fft
FahdAnsary 9:7965c3bc3199 727 for(int i=0; i<fft_points; i++)
FahdAnsary 9:7965c3bc3199 728 {
jaspreetsingh 0:f2467c077504 729 fft_array[i]=int(DCdata[i]);
jaspreetsingh 7:3d5fd645c11d 730 DC_mean_value=DC_mean_value+fft_array[i];
jaspreetsingh 0:f2467c077504 731 //pc.printf("%d %d %d\r\n", i, i+int(fft_points), fft_array[i]);
jaspreetsingh 0:f2467c077504 732 fft_array[(i+int(fft_points))]=0;
jaspreetsingh 0:f2467c077504 733 }
FahdAnsary 9:7965c3bc3199 734 //DC RMS
jaspreetsingh 7:3d5fd645c11d 735 DC_mean_value=DC_mean_value/fft_points;
FahdAnsary 9:7965c3bc3199 736 for(int i=0; i<fft_points; i++)
FahdAnsary 9:7965c3bc3199 737 {
FahdAnsary 9:7965c3bc3199 738 DC_rms_value=DC_rms_value+((DC_mean_value-fft_array[i])*(DC_mean_value-fft_array[i])/10000);
jaspreetsingh 7:3d5fd645c11d 739 }
jaspreetsingh 7:3d5fd645c11d 740 fp = fopen(pathfft, "a");
FahdAnsary 9:7965c3bc3199 741 if(fp == NULL)
FahdAnsary 9:7965c3bc3199 742 {
jaspreetsingh 7:3d5fd645c11d 743 //pc.printf("Could not open file for write\n\r");
jaspreetsingh 7:3d5fd645c11d 744 //reset_mod();
jaspreetsingh 7:3d5fd645c11d 745 }
FahdAnsary 9:7965c3bc3199 746 else
FahdAnsary 9:7965c3bc3199 747 {
FahdAnsary 9:7965c3bc3199 748 fprintf(fp, "%.0f",DC_rms_value);
jaspreetsingh 7:3d5fd645c11d 749 fclose(fp);
jaspreetsingh 7:3d5fd645c11d 750 }
jaspreetsingh 7:3d5fd645c11d 751
jaspreetsingh 0:f2467c077504 752 fft(fft_points,0,1,1);
pravinmagar 23:69ac079fb31e 753 prepare_fft_array(fft_start_index,fft_points_count,fft_maximas_required,fft_segments,1,count);
pravinmagar 23:69ac079fb31e 754
pravinmagar 23:69ac079fb31e 755
pravinmagar 23:69ac079fb31e 756 char avg_dc_detect1[10]="";
pravinmagar 23:69ac079fb31e 757 char avg_dc_detect2[10]="";
pravinmagar 23:69ac079fb31e 758 char avg_temp1[10]="";
pravinmagar 23:69ac079fb31e 759 char avg_temp2[10]="";
pravinmagar 23:69ac079fb31e 760
pravinmagar 23:69ac079fb31e 761 char DC_rms[10]="";
pravinmagar 23:69ac079fb31e 762
pravinmagar 23:69ac079fb31e 763 //sprintf(avg_dc_detect1,"%d\r\n",avg_dc_detect[0]);
pravinmagar 23:69ac079fb31e 764 //sprintf(avg_dc_detect2,"%d\r\n",avg_dc_detect[1]);
pravinmagar 23:69ac079fb31e 765 //sprintf(avg_temp1,"%d\r\n",avg_temp[0]);
pravinmagar 23:69ac079fb31e 766 //sprintf(avg_temp2,"%d\r\n",avg_temp[1]);
pravinmagar 23:69ac079fb31e 767
pravinmagar 23:69ac079fb31e 768 sprintf(DC_rms," %.0f\r\n",DC_rms_value);
pravinmagar 23:69ac079fb31e 769 length=0;
pravinmagar 23:69ac079fb31e 770 length=strlen(DC_rms);
pravinmagar 23:69ac079fb31e 771 length=length-2;
pravinmagar 23:69ac079fb31e 772 pc.printf("\r\nlength=%d",length);
pravinmagar 23:69ac079fb31e 773
pravinmagar 23:69ac079fb31e 774 pc.printf("\r\n DC_rms_value is=%.f\n",DC_rms_value);
pravinmagar 23:69ac079fb31e 775
pravinmagar 23:69ac079fb31e 776 for (int i=0; i<length; i++)
pravinmagar 23:69ac079fb31e 777 {
pravinmagar 23:69ac079fb31e 778
pravinmagar 23:69ac079fb31e 779 if(i!=0)
pravinmagar 23:69ac079fb31e 780 {
pravinmagar 23:69ac079fb31e 781 file_data[count]= DC_rms[i];
pravinmagar 23:69ac079fb31e 782 count=count+1;
pravinmagar 23:69ac079fb31e 783 }
pravinmagar 23:69ac079fb31e 784
pravinmagar 23:69ac079fb31e 785 }
pravinmagar 23:69ac079fb31e 786 pc.printf("\r\n file_data is=%s\n",file_data);
jaspreetsingh 0:f2467c077504 787
jaspreetsingh 0:f2467c077504 788 }
jaspreetsingh 0:f2467c077504 789 //--------------------------------------------------------------------------------------------------//
jaspreetsingh 0:f2467c077504 790 // GSM Initialization //
jaspreetsingh 0:f2467c077504 791 //--------------------------------------------------------------------------------------------------//
lalitkumar 21:9e71641aeac8 792 bool gsm_init()
jaspreetsingh 0:f2467c077504 793 {
jaspreetsingh 0:f2467c077504 794 int cnt = 0;
lalitkumar 21:9e71641aeac8 795 while(sendATcommand2("AT+CREG?", "+CREG: 1,1", "+CREG: 1,5", 10)==0) //ATcommand with dual response comparison
FahdAnsary 9:7965c3bc3199 796 {
lalitkumar 21:9e71641aeac8 797 if(sendATcommand2("AT+CREG=1", "+CREG:1", "+CREG:5", 5))
FahdAnsary 9:7965c3bc3199 798 {
lalitkumar 21:9e71641aeac8 799 pc.printf("creg success");
lalitkumar 21:9e71641aeac8 800 return 1;
FahdAnsary 9:7965c3bc3199 801 }
jaspreetsingh 0:f2467c077504 802 ++cnt;
FahdAnsary 9:7965c3bc3199 803 if(cnt > 5)
FahdAnsary 9:7965c3bc3199 804 {
jaspreetsingh 0:f2467c077504 805 pc.printf("GSM registration failed");
jaspreetsingh 0:f2467c077504 806 reset_mod();
lalitkumar 21:9e71641aeac8 807 return 0;
jaspreetsingh 0:f2467c077504 808 }
jaspreetsingh 0:f2467c077504 809 }
jaspreetsingh 0:f2467c077504 810 }
jaspreetsingh 0:f2467c077504 811 //--------------------------------------------------------------------------------------------------//
jaspreetsingh 0:f2467c077504 812 // FTP Connect function //
jaspreetsingh 0:f2467c077504 813 //--------------------------------------------------------------------------------------------------//
jaspreetsingh 15:f2a7003fcea1 814
jaspreetsingh 0:f2467c077504 815 bool ftp_connect()
jaspreetsingh 0:f2467c077504 816 {
jaspreetsingh 0:f2467c077504 817 int ftp_close_attempt=0;
jaspreetsingh 0:f2467c077504 818 /*if(sendATcommand("AT+SAPBR=2,1", "+SAPBR: 1,3,\"0.0.0.0\"", 5,0)) {
jaspreetsingh 0:f2467c077504 819 } else {*/
FahdAnsary 9:7965c3bc3199 820 while(!sendATcommand("AT+SAPBR=2,1", "+SAPBR: 1,3,\"0.0.0.0\"", 5,0))
FahdAnsary 9:7965c3bc3199 821 {
jaspreetsingh 0:f2467c077504 822 sendATcommand("AT+SAPBR=0,1","OK",5,0);
jaspreetsingh 0:f2467c077504 823 ftp_close_attempt++;
jaspreetsingh 0:f2467c077504 824 //pc.printf("\r\nclose attempt %d\r\n", ftp_close_attempt);
FahdAnsary 9:7965c3bc3199 825 if(ftp_close_attempt>3)
FahdAnsary 9:7965c3bc3199 826 {
jaspreetsingh 0:f2467c077504 827 //pc.printf("\r\nunable to close bearer\r\n");
jaspreetsingh 0:f2467c077504 828 return 0;
jaspreetsingh 0:f2467c077504 829 }
jaspreetsingh 0:f2467c077504 830 }
jaspreetsingh 0:f2467c077504 831 int ftp_connect_attempt=0;
jaspreetsingh 0:f2467c077504 832 //}
FahdAnsary 9:7965c3bc3199 833 do
FahdAnsary 9:7965c3bc3199 834 {
jaspreetsingh 0:f2467c077504 835 sendATcommand("AT+SAPBR=1,1", "OK", 15,0);
jaspreetsingh 0:f2467c077504 836 //pc.printf("\r\nopen attempt %d\r\n",ftp_connect_attempt);
FahdAnsary 9:7965c3bc3199 837 if(ftp_connect_attempt>3)
FahdAnsary 9:7965c3bc3199 838 {
jaspreetsingh 0:f2467c077504 839 //pc.printf("\r\nunable to open bearer");
jaspreetsingh 0:f2467c077504 840 return 0;
FahdAnsary 9:7965c3bc3199 841 }
jaspreetsingh 0:f2467c077504 842 ftp_connect_attempt++;
FahdAnsary 9:7965c3bc3199 843 }
jaspreetsingh 0:f2467c077504 844 while(sendATcommand("AT+SAPBR=2,1", "+SAPBR: 1,3,\"0.0.0.0\"", 5,0));
jaspreetsingh 0:f2467c077504 845 wait(3);
FahdAnsary 9:7965c3bc3199 846 if(sendATcommand("AT+FTPTYPE=\"I\"", "OK", 5,0))
FahdAnsary 9:7965c3bc3199 847 {
pravinmagar 23:69ac079fb31e 848 if(sendATcommand("AT+FTPSERV=\"ftp.magnetsnmiracles.com\"", "OK", 10,0))
FahdAnsary 9:7965c3bc3199 849 {
pravinmagar 23:69ac079fb31e 850 if(sendATcommand("AT+FTPUN=\"rjsmstrial@magnetsnmiracles.com\"", "OK\r", 10,0))
FahdAnsary 9:7965c3bc3199 851 {
pravinmagar 23:69ac079fb31e 852 if(sendATcommand("AT+FTPPW=\"Krliu@3i\"", "OK\r", 10,0)) return 1;
jaspreetsingh 0:f2467c077504 853 }
jaspreetsingh 0:f2467c077504 854 }
FahdAnsary 9:7965c3bc3199 855 }
jaspreetsingh 0:f2467c077504 856 return 0;
jaspreetsingh 0:f2467c077504 857 }
jaspreetsingh 0:f2467c077504 858
jaspreetsingh 0:f2467c077504 859 //--------------------------------------------------------------------------------------------------//
jaspreetsingh 0:f2467c077504 860 // FTP Send Function //
jaspreetsingh 0:f2467c077504 861 //--------------------------------------------------------------------------------------------------//
jaspreetsingh 0:f2467c077504 862
jaspreetsingh 0:f2467c077504 863 void ftp_put(int ftp_type) // For FTPGET Function
jaspreetsingh 0:f2467c077504 864 {
jaspreetsingh 0:f2467c077504 865
jaspreetsingh 0:f2467c077504 866 char ftpfilename[30]="";
jaspreetsingh 0:f2467c077504 867 char ftpfilepath[100]="";
jaspreetsingh 0:f2467c077504 868
jaspreetsingh 0:f2467c077504 869 if (ftp_type==0)
jaspreetsingh 0:f2467c077504 870 {
jaspreetsingh 0:f2467c077504 871 sprintf(ftpfilename,"%s",filenamefft);
jaspreetsingh 0:f2467c077504 872 sprintf(ftpfilepath,"%s",pathfft);
jaspreetsingh 0:f2467c077504 873 }
jaspreetsingh 0:f2467c077504 874 else if (ftp_type==1) // For FTPGET Function
jaspreetsingh 0:f2467c077504 875 {
jaspreetsingh 0:f2467c077504 876 pc.printf("Sending Requested file\r\n");
jaspreetsingh 0:f2467c077504 877
jaspreetsingh 0:f2467c077504 878 sprintf(ftpfilename,"%s",ftpget); // For Request of multiple file path logic refer abc.text
FahdAnsary 9:7965c3bc3199 879 sprintf(ftpfilepath,"%s",ftpget1);
jaspreetsingh 16:622629b0cf3c 880 sprintf(ftpputpathname,"%s",ftpget2);
jaspreetsingh 0:f2467c077504 881 }
jaspreetsingh 0:f2467c077504 882 else if (ftp_type==2)
jaspreetsingh 0:f2467c077504 883 {
jaspreetsingh 0:f2467c077504 884 // For Timestamp text file
jaspreetsingh 0:f2467c077504 885 sprintf(ftpfilename,"%s.txt",ftpget);
jaspreetsingh 0:f2467c077504 886 sprintf(ftpfilepath,"/sd/%s.txt",ftpget);
jaspreetsingh 0:f2467c077504 887 }
jaspreetsingh 0:f2467c077504 888
jaspreetsingh 0:f2467c077504 889 char command1[40];
jaspreetsingh 0:f2467c077504 890 char result1[20];
jaspreetsingh 0:f2467c077504 891 char command2 [100];
jaspreetsingh 0:f2467c077504 892 //char result2 [20];
pravinmagar 23:69ac079fb31e 893
pravinmagar 23:69ac079fb31e 894 //pc.printf("\n file_data is=%s\n",file_data);
jaspreetsingh 0:f2467c077504 895
jaspreetsingh 0:f2467c077504 896 sprintf(command1,"%s\"%s\"", "AT+FTPPUTNAME=", ftpfilename);
jaspreetsingh 0:f2467c077504 897 sprintf(result1,"%s", "OK");
pravinmagar 23:69ac079fb31e 898 //pc.printf("ftpfilepath is \n\r %s \n\r",ftpfilepath);
pravinmagar 23:69ac079fb31e 899 int char_cnt=500;
pravinmagar 23:69ac079fb31e 900 //int char_cnt=sizeof(file_data);
jaspreetsingh 0:f2467c077504 901
pravinmagar 23:69ac079fb31e 902
pravinmagar 23:69ac079fb31e 903 /*
jaspreetsingh 0:f2467c077504 904 FILE *fp8 = fopen(ftpfilepath, "r");
FahdAnsary 9:7965c3bc3199 905 if(fp8==NULL)
FahdAnsary 9:7965c3bc3199 906 {
jaspreetsingh 0:f2467c077504 907 pc.printf("\n\r NULL Condition\r\n");
jaspreetsingh 0:f2467c077504 908 return;
FahdAnsary 9:7965c3bc3199 909 }
FahdAnsary 9:7965c3bc3199 910 else
FahdAnsary 9:7965c3bc3199 911 {
FahdAnsary 9:7965c3bc3199 912 for(int i=0; i<1294; i++)
FahdAnsary 9:7965c3bc3199 913 {
jaspreetsingh 0:f2467c077504 914 file_data[i] = fgetc(fp8);
jaspreetsingh 0:f2467c077504 915 char_cnt= char_cnt++;
FahdAnsary 9:7965c3bc3199 916 if( feof(fp8) )
FahdAnsary 9:7965c3bc3199 917 {
jaspreetsingh 0:f2467c077504 918 break ;
jaspreetsingh 0:f2467c077504 919 }
jaspreetsingh 0:f2467c077504 920 }//size calculation loop ends
jaspreetsingh 0:f2467c077504 921 fclose(fp8);
pravinmagar 23:69ac079fb31e 922 }*/
pravinmagar 23:69ac079fb31e 923
FahdAnsary 9:7965c3bc3199 924 for(int putname_attempt=0; putname_attempt<2; putname_attempt++)
FahdAnsary 9:7965c3bc3199 925 {
jaspreetsingh 0:f2467c077504 926 //pc.printf("\r\nftp_put attempt\n\r");
jaspreetsingh 0:f2467c077504 927 // pc.printf("\r\nChar count %d\n\r",char_cnt);
FahdAnsary 9:7965c3bc3199 928 if(sendATcommand(command1,result1, 10,0))
FahdAnsary 9:7965c3bc3199 929 {
jaspreetsingh 5:11c455ebcc34 930 sprintf(command2,"%s/%s/\"", "AT+FTPPUTPATH=\"", ftpputpathname); // For FTPPUTPATHNAME Feature
jaspreetsingh 0:f2467c077504 931 //sprintf(result2,"%s", "OK");
jaspreetsingh 0:f2467c077504 932 sendATcommand(command2,"OK", 10,0);
FahdAnsary 9:7965c3bc3199 933 if((sendATcommand("AT+FTPPUT=1", "OK", 10,2))==2)
FahdAnsary 9:7965c3bc3199 934 {
jaspreetsingh 0:f2467c077504 935 //wait(8);
jaspreetsingh 0:f2467c077504 936 // pc.printf("in loop");
jaspreetsingh 0:f2467c077504 937 // pc.printf("\n\r %s",ftpfilepath);
jaspreetsingh 0:f2467c077504 938 /*FILE *fp9 = fopen(ftpfilepath, "r");
jaspreetsingh 0:f2467c077504 939 if(fp9==NULL)return;
jaspreetsingh 0:f2467c077504 940 else
jaspreetsingh 0:f2467c077504 941 {*/
jaspreetsingh 0:f2467c077504 942 int trialcount=0;
jaspreetsingh 0:f2467c077504 943 int allowedtrials=3;
jaspreetsingh 0:f2467c077504 944 char command[40];
jaspreetsingh 0:f2467c077504 945 char result[30];
jaspreetsingh 0:f2467c077504 946 sprintf(command,"%s%d", "AT+FTPPUT=2,",char_cnt);
jaspreetsingh 0:f2467c077504 947 sprintf(result,"%s%d", "+FTPPUT:2,",char_cnt);
FahdAnsary 9:7965c3bc3199 948 while(trialcount<allowedtrials)
FahdAnsary 9:7965c3bc3199 949 {
FahdAnsary 9:7965c3bc3199 950 if(sendATcommand(command,result, 10,0))
FahdAnsary 9:7965c3bc3199 951 {
FahdAnsary 9:7965c3bc3199 952 for(int i=0; i<char_cnt; i++)
FahdAnsary 9:7965c3bc3199 953 {
jaspreetsingh 0:f2467c077504 954 gsm.printf("%c", file_data[i]);
jaspreetsingh 0:f2467c077504 955 }
jaspreetsingh 0:f2467c077504 956 trialcount=allowedtrials+4;
jaspreetsingh 0:f2467c077504 957 wait(5);
lalitkumar 22:4141d6a13488 958 for(int ftp_close_attempt=0; ftp_close_attempt<2; ftp_close_attempt++)
lalitkumar 22:4141d6a13488 959 {
lalitkumar 22:4141d6a13488 960 //pc.printf("\r\nftp_close\r\n");
lalitkumar 22:4141d6a13488 961 if(sendATcommand("AT+FTPPUT=2,0", "OK", 5,0))
lalitkumar 22:4141d6a13488 962 {
lalitkumar 22:4141d6a13488 963 ftp_close_attempt=6;
lalitkumar 22:4141d6a13488 964 }
lalitkumar 22:4141d6a13488 965 }
lalitkumar 22:4141d6a13488 966 return;
jaspreetsingh 0:f2467c077504 967 } else trialcount++;
jaspreetsingh 0:f2467c077504 968 }
jaspreetsingh 0:f2467c077504 969 }
jaspreetsingh 0:f2467c077504 970 }
FahdAnsary 9:7965c3bc3199 971 for(int ftp_close_attempt=0; ftp_close_attempt<2; ftp_close_attempt++)
FahdAnsary 9:7965c3bc3199 972 {
jaspreetsingh 0:f2467c077504 973 //pc.printf("\r\nftp_close\r\n");
FahdAnsary 9:7965c3bc3199 974 if(sendATcommand("AT+FTPPUT=2,0", "OK", 5,0))
FahdAnsary 9:7965c3bc3199 975 {
jaspreetsingh 0:f2467c077504 976 ftp_close_attempt=6;
jaspreetsingh 0:f2467c077504 977 }
lalitkumar 22:4141d6a13488 978 }
jaspreetsingh 0:f2467c077504 979 }
lalitkumar 22:4141d6a13488 980 return;
jaspreetsingh 0:f2467c077504 981 }
jaspreetsingh 0:f2467c077504 982
jaspreetsingh 15:f2a7003fcea1 983
jaspreetsingh 0:f2467c077504 984 //--------------------------------------------------------------------------------------------------//
jaspreetsingh 0:f2467c077504 985 // FTP GET FUNCTION //
jaspreetsingh 0:f2467c077504 986 //--------------------------------------------------------------------------------------------------//
jaspreetsingh 0:f2467c077504 987
jaspreetsingh 0:f2467c077504 988 void downloadFTP()
jaspreetsingh 0:f2467c077504 989
jaspreetsingh 0:f2467c077504 990 {
jaspreetsingh 0:f2467c077504 991 int x = 0;
jaspreetsingh 14:83b823fdcdd0 992 char command3[40];
jaspreetsingh 2:e5b9aefbcdeb 993
jaspreetsingh 0:f2467c077504 994 wait(10);
jaspreetsingh 0:f2467c077504 995 ftp_connect();
jaspreetsingh 0:f2467c077504 996
jaspreetsingh 0:f2467c077504 997 sendATcommand("AT+FTPGETNAME=\"Final.txt\"", "OK", 5,0);
jaspreetsingh 14:83b823fdcdd0 998 //sendATcommand("AT+FTPGETPATH=\"/\"", "OK", 5,0);
jaspreetsingh 14:83b823fdcdd0 999 sprintf(command3,"%s/%s/\"", "AT+FTPGETPATH=\"", module_name);
jaspreetsingh 14:83b823fdcdd0 1000 sendATcommand(command3,"OK",5,0);
jaspreetsingh 0:f2467c077504 1001
jaspreetsingh 0:f2467c077504 1002 if (sendATcommand("AT+FTPGET=1\r", "+FTPGET:1,1", 20,0) == 1)
jaspreetsingh 0:f2467c077504 1003 {
jaspreetsingh 0:f2467c077504 1004 for(int ftp_get_attempt=0; ftp_get_attempt<2; ftp_get_attempt++) {
jaspreetsingh 0:f2467c077504 1005 if (sendATcommand("AT+FTPGET=2,300", "+FTPGET:2,", 10,0) == 1)
jaspreetsingh 0:f2467c077504 1006 {
jaspreetsingh 0:f2467c077504 1007 int previous = time(NULL);
jaspreetsingh 0:f2467c077504 1008 // this loop waits for the answer
FahdAnsary 9:7965c3bc3199 1009 do
FahdAnsary 9:7965c3bc3199 1010 {
jaspreetsingh 0:f2467c077504 1011 if(gsm.readable() == 1)
jaspreetsingh 0:f2467c077504 1012 {
jaspreetsingh 0:f2467c077504 1013 // if there are data in the UART input buffer, reads it and checks for the asnwer
jaspreetsingh 0:f2467c077504 1014 incoming_data[x] = gsm.getc();
jaspreetsingh 0:f2467c077504 1015 x++;
jaspreetsingh 0:f2467c077504 1016 }
jaspreetsingh 0:f2467c077504 1017
FahdAnsary 9:7965c3bc3199 1018 // Waits for the asnwer with time out
FahdAnsary 9:7965c3bc3199 1019 }while((time(NULL) - previous) < 5);
jaspreetsingh 0:f2467c077504 1020
jaspreetsingh 0:f2467c077504 1021 pc.printf("Incoming_Data is %s\r\n",incoming_data);
jaspreetsingh 0:f2467c077504 1022 sprintf(dest,"%s",incoming_data);
jaspreetsingh 0:f2467c077504 1023 pc.printf("\r\n Download finished");
jaspreetsingh 4:668d7227d060 1024 wait(15);
jaspreetsingh 5:11c455ebcc34 1025
jaspreetsingh 0:f2467c077504 1026 char *token;
jaspreetsingh 0:f2467c077504 1027 token = strtok(dest, s);
jaspreetsingh 0:f2467c077504 1028 token = strtok(NULL,s);
jaspreetsingh 0:f2467c077504 1029 pc.printf("\r\nToken is %s\r\n",token);
jaspreetsingh 0:f2467c077504 1030
jaspreetsingh 0:f2467c077504 1031 //NO FTGET REQUIRED Case : 0
jaspreetsingh 0:f2467c077504 1032 if(atoi(token)==NULL)
jaspreetsingh 0:f2467c077504 1033 {
jaspreetsingh 0:f2467c077504 1034 return;
jaspreetsingh 0:f2467c077504 1035 }
jaspreetsingh 0:f2467c077504 1036 //RESET THE MODULE Case : 1
jaspreetsingh 0:f2467c077504 1037 else if(atoi(token)==1)
jaspreetsingh 0:f2467c077504 1038 {
jaspreetsingh 0:f2467c077504 1039 pc.printf("\r\nModule reset\r\n");
jaspreetsingh 0:f2467c077504 1040 reset_mod();
jaspreetsingh 0:f2467c077504 1041
jaspreetsingh 0:f2467c077504 1042 }
jaspreetsingh 0:f2467c077504 1043 //Request Particular Path File Case : 2
jaspreetsingh 0:f2467c077504 1044 else if(atoi(token) == 2)
jaspreetsingh 0:f2467c077504 1045 {
jaspreetsingh 0:f2467c077504 1046 token = strtok(NULL,s);
jaspreetsingh 0:f2467c077504 1047 sprintf(ftpget,"%s",token);
jaspreetsingh 0:f2467c077504 1048 pc.printf("Ftpget is %s\r\n",ftpget);
jaspreetsingh 0:f2467c077504 1049 token = strtok(NULL,s);
jaspreetsingh 0:f2467c077504 1050 sprintf(ftpget1,"%s",token);
jaspreetsingh 0:f2467c077504 1051 pc.printf("Ftpget1 is %s\r\n",ftpget1);
jaspreetsingh 16:622629b0cf3c 1052 token = strtok(NULL,s);
jaspreetsingh 16:622629b0cf3c 1053 sprintf(ftpget2,"%s",token);
jaspreetsingh 16:622629b0cf3c 1054 pc.printf("Ftpget2 is %s\r\n",ftpget2);
jaspreetsingh 0:f2467c077504 1055 ftp_connect();
jaspreetsingh 0:f2467c077504 1056 wait(5);
jaspreetsingh 0:f2467c077504 1057 ftp_put(1);
jaspreetsingh 0:f2467c077504 1058 }
jaspreetsingh 0:f2467c077504 1059 //Request Timestamp File Case : 3
jaspreetsingh 0:f2467c077504 1060 else if(atoi(token)==3)
jaspreetsingh 0:f2467c077504 1061 {
jaspreetsingh 0:f2467c077504 1062 pc.printf("\r\n Timestamp Sending\r\n");
jaspreetsingh 0:f2467c077504 1063 token = strtok(NULL,s);
jaspreetsingh 0:f2467c077504 1064 sprintf(ftpget,"%s",token);
jaspreetsingh 0:f2467c077504 1065 pc.printf("Ftpget is %s\r\n",ftpget);
jaspreetsingh 0:f2467c077504 1066 ftp_connect();
jaspreetsingh 0:f2467c077504 1067 wait(5);
jaspreetsingh 0:f2467c077504 1068 ftp_put(2);
jaspreetsingh 0:f2467c077504 1069 }
jaspreetsingh 1:56e7680a6339 1070 // Delete the particular Folder Case : 4
jaspreetsingh 0:f2467c077504 1071 else if(atoi(token) ==4)
jaspreetsingh 0:f2467c077504 1072 {
jaspreetsingh 0:f2467c077504 1073 //FOR DELETING THE SELECTED FILE
jaspreetsingh 3:726f275f04ac 1074 char removefile[100]="";
jaspreetsingh 1:56e7680a6339 1075 token = strtok(NULL,s);
jaspreetsingh 3:726f275f04ac 1076 sprintf(removefile,"%s",token);
jaspreetsingh 3:726f275f04ac 1077 pc.printf("Folder to be removed is %s",removefile);
jaspreetsingh 3:726f275f04ac 1078
jaspreetsingh 0:f2467c077504 1079 if(removefile==NULL)
jaspreetsingh 0:f2467c077504 1080 {
jaspreetsingh 0:f2467c077504 1081 pc.printf("\r\n NULL Condition\r\n");
jaspreetsingh 0:f2467c077504 1082 return;
jaspreetsingh 0:f2467c077504 1083 }
jaspreetsingh 0:f2467c077504 1084 else
jaspreetsingh 0:f2467c077504 1085 {
jaspreetsingh 0:f2467c077504 1086 pc.printf("\r\n Deleting requested file\r\n");
jaspreetsingh 15:f2a7003fcea1 1087 do_remove(removefile);
jaspreetsingh 0:f2467c077504 1088 pc.printf("\r\n File Deleted\r\n");
jaspreetsingh 3:726f275f04ac 1089 }
jaspreetsingh 0:f2467c077504 1090 }
jaspreetsingh 2:e5b9aefbcdeb 1091 /*
jaspreetsingh 0:f2467c077504 1092 else if(atoi(token)==5)
jaspreetsingh 0:f2467c077504 1093 {
jaspreetsingh 0:f2467c077504 1094 pc.printf("\r\n Remote Configuration\r\n");
jaspreetsingh 0:f2467c077504 1095 }
jaspreetsingh 2:e5b9aefbcdeb 1096 // wait(5);
jaspreetsingh 2:e5b9aefbcdeb 1097
jaspreetsingh 0:f2467c077504 1098 FILE *fp1 = fopen("/sd/Query.txt","w");
jaspreetsingh 0:f2467c077504 1099 fprintf(fp1,"%s",ftpget);
jaspreetsingh 0:f2467c077504 1100 fclose(fp1);
jaspreetsingh 0:f2467c077504 1101 */
jaspreetsingh 0:f2467c077504 1102
jaspreetsingh 0:f2467c077504 1103 }
jaspreetsingh 0:f2467c077504 1104 else
jaspreetsingh 0:f2467c077504 1105 {
jaspreetsingh 0:f2467c077504 1106 pc.printf("Error getting the file");
jaspreetsingh 0:f2467c077504 1107 }
jaspreetsingh 0:f2467c077504 1108
jaspreetsingh 0:f2467c077504 1109 ftp_get_attempt=6;
jaspreetsingh 0:f2467c077504 1110 }
jaspreetsingh 0:f2467c077504 1111
jaspreetsingh 0:f2467c077504 1112 }
jaspreetsingh 0:f2467c077504 1113 else
jaspreetsingh 0:f2467c077504 1114 {
jaspreetsingh 0:f2467c077504 1115 return;
jaspreetsingh 0:f2467c077504 1116 }
jaspreetsingh 0:f2467c077504 1117
jaspreetsingh 0:f2467c077504 1118 }
jaspreetsingh 0:f2467c077504 1119
jaspreetsingh 0:f2467c077504 1120 void FTP_Fun()
jaspreetsingh 0:f2467c077504 1121 {
jaspreetsingh 0:f2467c077504 1122 /*tid6 = osThreadGetId();
jaspreetsingh 0:f2467c077504 1123
jaspreetsingh 0:f2467c077504 1124 while(true)
jaspreetsingh 0:f2467c077504 1125 {
jaspreetsingh 0:f2467c077504 1126 osSignalWait(0x1, osWaitForever);*/
FahdAnsary 9:7965c3bc3199 1127 if(ftp_connect())
FahdAnsary 9:7965c3bc3199 1128 {
jaspreetsingh 0:f2467c077504 1129 ftp_put(0);
jaspreetsingh 0:f2467c077504 1130 //downloadFTP(); // For FTPGET Function
jaspreetsingh 0:f2467c077504 1131 }
jaspreetsingh 0:f2467c077504 1132 return;
jaspreetsingh 0:f2467c077504 1133 //}
jaspreetsingh 0:f2467c077504 1134 }
jaspreetsingh 0:f2467c077504 1135
jaspreetsingh 0:f2467c077504 1136 //----------------------------------------------------- MAIN LOOP -----------------------------------------------------------
jaspreetsingh 0:f2467c077504 1137
jaspreetsingh 0:f2467c077504 1138 int main()
jaspreetsingh 0:f2467c077504 1139 {
jaspreetsingh 0:f2467c077504 1140
jaspreetsingh 0:f2467c077504 1141 gsm_rst=0;
jaspreetsingh 0:f2467c077504 1142 wait(1);
jaspreetsingh 0:f2467c077504 1143 gsm_rst=1;
FahdAnsary 9:7965c3bc3199 1144 wait(8);
jaspreetsingh 0:f2467c077504 1145 gsm_init();
jaspreetsingh 0:f2467c077504 1146 mkdir("/sd/jas",0777);
FahdAnsary 12:0ab0a2578025 1147 int old_hour=100,loopcount=0;
jaspreetsingh 0:f2467c077504 1148 pc.printf("\r\nHelloWorld\r\n");
jaspreetsingh 0:f2467c077504 1149 sendATcommand("AT+CLTS=1\r", "OK", 15,2);
jaspreetsingh 0:f2467c077504 1150 //wait(10);
jaspreetsingh 0:f2467c077504 1151 GetFileDir();
jaspreetsingh 0:f2467c077504 1152 FILE *fp = fopen("/sd/SiteInfo.txt","a");
FahdAnsary 9:7965c3bc3199 1153 if(fp == NULL)
FahdAnsary 9:7965c3bc3199 1154 {
jaspreetsingh 0:f2467c077504 1155 FILE *fp = fopen("/sd/SiteInfo.txt","w");
jaspreetsingh 0:f2467c077504 1156 fprintf(fp, "\r\n%s",time_stamp);
jaspreetsingh 0:f2467c077504 1157
FahdAnsary 9:7965c3bc3199 1158 }
FahdAnsary 9:7965c3bc3199 1159 else
FahdAnsary 9:7965c3bc3199 1160 {
jaspreetsingh 0:f2467c077504 1161 fprintf(fp, "\r\n%s",time_stamp);
jaspreetsingh 0:f2467c077504 1162 pc.printf("\r\n%s",time_stamp);
jaspreetsingh 0:f2467c077504 1163 fclose(fp);
jaspreetsingh 0:f2467c077504 1164 }
jaspreetsingh 0:f2467c077504 1165 pc.printf("\r\n Timestamp saved");
FahdAnsary 9:7965c3bc3199 1166
FahdAnsary 9:7965c3bc3199 1167
FahdAnsary 9:7965c3bc3199 1168 while(1)
FahdAnsary 9:7965c3bc3199 1169 {
FahdAnsary 9:7965c3bc3199 1170 pc.printf("\r\n%d\t%d\r\n",hour,old_hour);
lalitkumar 10:9184e2fb5974 1171 sampling();
lalitkumar 10:9184e2fb5974 1172 store();
lalitkumar 10:9184e2fb5974 1173 FTP_Fun();
jaspreetsingh 16:622629b0cf3c 1174 //downloadFTP(); // For testing purpose
FahdAnsary 12:0ab0a2578025 1175 if (old_hour!=100 && hour!=old_hour && hour<24)
FahdAnsary 9:7965c3bc3199 1176 {
FahdAnsary 9:7965c3bc3199 1177 pc.printf("\r\nhour changed");
FahdAnsary 9:7965c3bc3199 1178 if(ftp_connect())
FahdAnsary 9:7965c3bc3199 1179 {
FahdAnsary 9:7965c3bc3199 1180 sprintf(filenamefft,"%s",timestampname_old);
FahdAnsary 9:7965c3bc3199 1181 sprintf(pathfft,"%s",timestamppath_old);
FahdAnsary 9:7965c3bc3199 1182 ftp_put(0);
FahdAnsary 9:7965c3bc3199 1183 }
jaspreetsingh 16:622629b0cf3c 1184 downloadFTP(); // For FTPGET Function
FahdAnsary 9:7965c3bc3199 1185 }
lalitkumar 10:9184e2fb5974 1186 pc.printf("\r\n Complete Done");
FahdAnsary 9:7965c3bc3199 1187 old_hour=hour;
FahdAnsary 9:7965c3bc3199 1188 sprintf(timestampname_old,timestampname);
jaspreetsingh 16:622629b0cf3c 1189 sprintf(timestamppath_old,timestamppath);
FahdAnsary 12:0ab0a2578025 1190 if(hour%2>0 || loopcount>120)
FahdAnsary 9:7965c3bc3199 1191 {
FahdAnsary 12:0ab0a2578025 1192 if((minute>3 && minute<6)||(loopcount>120))
FahdAnsary 9:7965c3bc3199 1193 {
FahdAnsary 12:0ab0a2578025 1194 loopcount=0;
FahdAnsary 9:7965c3bc3199 1195 reset_mod();
FahdAnsary 9:7965c3bc3199 1196 }
jaspreetsingh 0:f2467c077504 1197 }
jaspreetsingh 0:f2467c077504 1198 //wait(10);
jaspreetsingh 0:f2467c077504 1199 }
FahdAnsary 9:7965c3bc3199 1200
jaspreetsingh 0:f2467c077504 1201 }