storing variables in single array for transmission

Dependencies:   SDFileSystem dspmodified mbed

Fork of FTPGET_Merged by Pravin Magar

Committer:
FahdAnsary
Date:
Wed Mar 11 11:42:19 2015 +0000
Revision:
12:0ab0a2578025
Parent:
10:9184e2fb5974
Child:
13:73d6de10d15c
File names generating issues in absence of GSM modified. (files will be created with Err suffix followed by serial number).; module now works in absence of GSM and as GSM is ON, module continues sending ftp files, no need to reset.

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
FahdAnsary 12:0ab0a2578025 12 #define module_name "TST3" //enter module name here
jaspreetsingh 0:f2467c077504 13
jaspreetsingh 0:f2467c077504 14 Serial pc(USBTX, USBRX);
jaspreetsingh 0:f2467c077504 15 Serial gsm(D1, D0);
jaspreetsingh 0:f2467c077504 16 AnalogIn AC_input(A0);
jaspreetsingh 0:f2467c077504 17 AnalogIn AC2_input(A1);
jaspreetsingh 0:f2467c077504 18 AnalogIn DC_input(A2);
jaspreetsingh 0:f2467c077504 19 AnalogIn DC_Detect(A3);
jaspreetsingh 0:f2467c077504 20 AnalogIn TC1(A4);
jaspreetsingh 0:f2467c077504 21 AnalogIn TC2(A5);
jaspreetsingh 0:f2467c077504 22 SDFileSystem sd(PTE3, PTE1, PTE2, PTE4, "sd");
jaspreetsingh 0:f2467c077504 23 DigitalOut gsm_rst(D7);
jaspreetsingh 0:f2467c077504 24
FahdAnsary 9:7965c3bc3199 25 char sitename[10] =module_name;
jaspreetsingh 0:f2467c077504 26 char filename[100] = "";
jaspreetsingh 0:f2467c077504 27 char filepath[100] = "";
FahdAnsary 9:7965c3bc3199 28 char timestamp[20]="";
jaspreetsingh 0:f2467c077504 29 char time_stamp[20]="";
FahdAnsary 9:7965c3bc3199 30 char timestampold[20]="";
jaspreetsingh 0:f2467c077504 31 char main_dir[100] ="";
jaspreetsingh 0:f2467c077504 32 char hour_dir[100] ="";
jaspreetsingh 0:f2467c077504 33 char pathAC[100] ="";
jaspreetsingh 0:f2467c077504 34 char pathDC[100] ="";
jaspreetsingh 0:f2467c077504 35 char pathDCdetect[100] ="";
jaspreetsingh 0:f2467c077504 36 char pathfft[100]="";
jaspreetsingh 0:f2467c077504 37 //char putpathname[100]="";
jaspreetsingh 0:f2467c077504 38 char filenameAC[100] ="";
jaspreetsingh 0:f2467c077504 39 char filenameDC[100] ="";
jaspreetsingh 0:f2467c077504 40 char filenamefft[100] ="";
jaspreetsingh 0:f2467c077504 41 char clk_response[100] ="";
FahdAnsary 9:7965c3bc3199 42 char ftpget[100]=""; // For FTPGET Function
FahdAnsary 9:7965c3bc3199 43 char ftpget1[100]=""; // For FTPGET Function
FahdAnsary 9:7965c3bc3199 44 char mod_reset[50]= "NVIC_SystemReset();"; // For FTPGET Function
FahdAnsary 9:7965c3bc3199 45 char incoming_data[100]=""; // For FTPGET Function
FahdAnsary 9:7965c3bc3199 46 char dest[100]=""; // For FTPGET Function
FahdAnsary 9:7965c3bc3199 47 const char s[2] = "!"; // For FTPGET Function
FahdAnsary 9:7965c3bc3199 48 char src[100]=""; // For FTPGET Function
FahdAnsary 9:7965c3bc3199 49 //char ftp_timestamp[20]=""; // For Timestamp.txt filename
FahdAnsary 9:7965c3bc3199 50 char ftpputpathname[100]=""; // For FTPPUTHPATH NAME
FahdAnsary 9:7965c3bc3199 51 char timestampname_old[30]=""; // For sending past hour info file
FahdAnsary 9:7965c3bc3199 52 char timestamppath_old[30]=""; // For sending past hour info file
FahdAnsary 9:7965c3bc3199 53 char timestampname[30]="";
FahdAnsary 9:7965c3bc3199 54 char timestamppath[30]="";
FahdAnsary 9:7965c3bc3199 55 int maxfreq = 0; // For Timestamp Function
jaspreetsingh 0:f2467c077504 56
jaspreetsingh 0:f2467c077504 57 int m=0,mfinal;
jaspreetsingh 0:f2467c077504 58 int date, month, year, hour, minute, second,minuteold, secondold, temp = 0;
jaspreetsingh 0:f2467c077504 59 unsigned long var = 0;
jaspreetsingh 0:f2467c077504 60 unsigned long currentMillis = 0;
jaspreetsingh 0:f2467c077504 61 int gsmerr=0;
jaspreetsingh 4:668d7227d060 62
jaspreetsingh 0:f2467c077504 63 time_t previous;
jaspreetsingh 0:f2467c077504 64
jaspreetsingh 0:f2467c077504 65 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 66 unsigned short ACdata[fft_points];
jaspreetsingh 0:f2467c077504 67 unsigned short DCdata[fft_points];
jaspreetsingh 0:f2467c077504 68 unsigned short DC_Detect_data[10];
jaspreetsingh 0:f2467c077504 69 unsigned short Temp_data[10];
jaspreetsingh 0:f2467c077504 70 uint32_t dataLength = dur_sec*freq*1000;
jaspreetsingh 0:f2467c077504 71
jaspreetsingh 0:f2467c077504 72 //--------------------------------------------------------------------------------------------------//
jaspreetsingh 0:f2467c077504 73 // Module reset //
jaspreetsingh 0:f2467c077504 74 //--------------------------------------------------------------------------------------------------//
jaspreetsingh 0:f2467c077504 75 void reset_mod()
jaspreetsingh 0:f2467c077504 76 {
jaspreetsingh 0:f2467c077504 77 NVIC_SystemReset();
jaspreetsingh 0:f2467c077504 78 }
jaspreetsingh 0:f2467c077504 79
jaspreetsingh 0:f2467c077504 80 //--------------------------------------------------------------------------------------------------//
jaspreetsingh 0:f2467c077504 81 // Send AT Command (1 response with clk variable) //
jaspreetsingh 0:f2467c077504 82 //--------------------------------------------------------------------------------------------------//
jaspreetsingh 0:f2467c077504 83 int sendATcommand(char* ATcommand, char* expected_answer, unsigned int timeout, int clk_flag)
jaspreetsingh 0:f2467c077504 84 {
jaspreetsingh 0:f2467c077504 85 int grs=0;
FahdAnsary 12:0ab0a2578025 86 int answer=0; //x=0 and answer=0, if not put, AT+CCLK?\r is not executed
jaspreetsingh 0:f2467c077504 87 char response[300];
jaspreetsingh 0:f2467c077504 88 memset(response, '\0', 100); // Initialize the string
jaspreetsingh 0:f2467c077504 89 wait_ms(100);
jaspreetsingh 0:f2467c077504 90 previous = time(NULL);
jaspreetsingh 0:f2467c077504 91 char dummy;
FahdAnsary 9:7965c3bc3199 92 do
FahdAnsary 9:7965c3bc3199 93 {
FahdAnsary 9:7965c3bc3199 94 if(gsm.readable()!=0)
FahdAnsary 9:7965c3bc3199 95 {
jaspreetsingh 0:f2467c077504 96 dummy=gsm.getc();
jaspreetsingh 0:f2467c077504 97 //pc.putc(dummy);
FahdAnsary 9:7965c3bc3199 98 }
FahdAnsary 9:7965c3bc3199 99 }
FahdAnsary 12:0ab0a2578025 100 while((time(NULL) - previous) < 1); // Clean the input buffer
jaspreetsingh 0:f2467c077504 101 //pc.printf("\r\n");
jaspreetsingh 0:f2467c077504 102 gsm.printf("%s \r", ATcommand); // Send the AT command
jaspreetsingh 0:f2467c077504 103 grs = 0;
jaspreetsingh 0:f2467c077504 104 previous = time(NULL);
FahdAnsary 9:7965c3bc3199 105 do
FahdAnsary 12:0ab0a2578025 106 { // this loop waits for the answer
FahdAnsary 9:7965c3bc3199 107 if(gsm.readable() != 0)
FahdAnsary 9:7965c3bc3199 108 {
FahdAnsary 12:0ab0a2578025 109 response[grs] = gsm.getc(); // if there are data in the UART input buffer, reads it and checks for the asnwer
jaspreetsingh 0:f2467c077504 110 pc.putc(response[grs]);
jaspreetsingh 0:f2467c077504 111 grs++;
FahdAnsary 9:7965c3bc3199 112 if (strstr(response, expected_answer) != NULL)
FahdAnsary 12:0ab0a2578025 113 { // check if the desired answer is in the response of the module
jaspreetsingh 0:f2467c077504 114 if(clk_flag==2) answer=2;
jaspreetsingh 0:f2467c077504 115 else answer=1;
jaspreetsingh 0:f2467c077504 116 }
FahdAnsary 9:7965c3bc3199 117 }
FahdAnsary 12:0ab0a2578025 118 } while((answer !=1) && ((time(NULL) - previous) < timeout)); // Waits for the asnwer with time out
FahdAnsary 9:7965c3bc3199 119 if(clk_flag == 1)
FahdAnsary 9:7965c3bc3199 120 {
jaspreetsingh 0:f2467c077504 121 //pc.printf("\r\nclock updated\r\n");
jaspreetsingh 0:f2467c077504 122 sprintf(timestamp,response);
FahdAnsary 12:0ab0a2578025 123 pc.printf("%s",timestamp); //copies response to timestamp for further processing
jaspreetsingh 0:f2467c077504 124 }
jaspreetsingh 0:f2467c077504 125 //pc.printf("\r\nanswer %d\r\n",answer);
jaspreetsingh 0:f2467c077504 126 return answer;
jaspreetsingh 0:f2467c077504 127 }
FahdAnsary 9:7965c3bc3199 128 //--------------------------------------------------------------------------------------------------//
FahdAnsary 9:7965c3bc3199 129 // Getting Timestamp Function //
FahdAnsary 9:7965c3bc3199 130 //--------------------------------------------------------------------------------------------------//
FahdAnsary 9:7965c3bc3199 131
FahdAnsary 9:7965c3bc3199 132 void GetTime()
FahdAnsary 9:7965c3bc3199 133 {
jaspreetsingh 0:f2467c077504 134 sendATcommand("AT+CCLK?\r", "OK", 5,1);
jaspreetsingh 0:f2467c077504 135 //sprintf(response,timestamp);
jaspreetsingh 0:f2467c077504 136 int x=20;
jaspreetsingh 0:f2467c077504 137 year = 10*(timestamp[x+1]-48) + (timestamp[x+2]-48);
jaspreetsingh 0:f2467c077504 138 month = (timestamp[x+4]-48)*10+(timestamp[x+5]-48);
jaspreetsingh 0:f2467c077504 139 date = (timestamp[x+7]-48)*10+(timestamp[x+8]-48);
jaspreetsingh 0:f2467c077504 140 hour = (timestamp[x+10]-48)*10+(timestamp[x+11]-48);
jaspreetsingh 0:f2467c077504 141 minute = (timestamp[x+13]-48)*10+(timestamp[x+14]-48);
jaspreetsingh 0:f2467c077504 142 second = (timestamp[x+16]-48)*10+(timestamp[x+17]-48);
jaspreetsingh 0:f2467c077504 143
jaspreetsingh 0:f2467c077504 144 sprintf(time_stamp,"%02d%02d%02d%02d%02d%02d",year,month,date,hour,minute,second);
FahdAnsary 12:0ab0a2578025 145 //pc.printf("Get time result:%s.....",time_stamp);
FahdAnsary 9:7965c3bc3199 146 }
jaspreetsingh 8:12b4c521c033 147
jaspreetsingh 0:f2467c077504 148 //--------------------------------------------------------------------------------------------------//
jaspreetsingh 0:f2467c077504 149 // Getting File Directories and names //
jaspreetsingh 0:f2467c077504 150 //--------------------------------------------------------------------------------------------------//
jaspreetsingh 0:f2467c077504 151 void GetFileDir()
jaspreetsingh 0:f2467c077504 152 {
jaspreetsingh 0:f2467c077504 153 int attempt_cnt=0;
jaspreetsingh 0:f2467c077504 154 char month_dir[100]="";
jaspreetsingh 0:f2467c077504 155 char date_dir[100] ="";
jaspreetsingh 0:f2467c077504 156 GetTime();
FahdAnsary 9:7965c3bc3199 157 while(year<15||year>20)
FahdAnsary 9:7965c3bc3199 158 {
jaspreetsingh 0:f2467c077504 159 //pc.printf("%d\r\n",year);
jaspreetsingh 0:f2467c077504 160 GetTime();
jaspreetsingh 0:f2467c077504 161 attempt_cnt++;
jaspreetsingh 0:f2467c077504 162 if(attempt_cnt>4) break;
jaspreetsingh 0:f2467c077504 163 }
FahdAnsary 12:0ab0a2578025 164 if(year>14&&year<21&&month<13)
FahdAnsary 9:7965c3bc3199 165 {
FahdAnsary 9:7965c3bc3199 166 if((minute!=minuteold)||(second!=secondold))
FahdAnsary 9:7965c3bc3199 167 {
jaspreetsingh 0:f2467c077504 168 sprintf(timestampold,timestamp);
FahdAnsary 12:0ab0a2578025 169
FahdAnsary 12:0ab0a2578025 170 pc.printf("\r\nold time stamp is%s\r\n",timestampold);
jaspreetsingh 0:f2467c077504 171 minuteold=minute;
jaspreetsingh 0:f2467c077504 172 secondold=second;
jaspreetsingh 0:f2467c077504 173 sprintf(main_dir,"/sd/%s",sitename);
jaspreetsingh 0:f2467c077504 174 sprintf(month_dir,"%s/%s%02d%02d",main_dir,sitename,year,month);
jaspreetsingh 0:f2467c077504 175 sprintf(date_dir,"%s/%s%02d%02d%02d",month_dir,sitename,year,month,date);
jaspreetsingh 0:f2467c077504 176 sprintf(hour_dir,"%s/%s%02d%02d%02d%02d",date_dir,sitename,year,month,date,hour);
jaspreetsingh 0:f2467c077504 177 sprintf(filepath,"%s/%s%02d%02d%02d%02d%02d%02d",hour_dir,sitename,year,month,date,hour,minute,second);
jaspreetsingh 0:f2467c077504 178 sprintf(filename,"%s%02d%02d%02d%02d%02d%02d",sitename,year,month,date,hour,minute,second);
jaspreetsingh 6:87c4ae320c7c 179 sprintf(ftpputpathname,"%s/%02d%02d/%02d%02d%02d",module_name,year,month,year,month,date); // For FTPPUTPATHNAME feature
jaspreetsingh 5:11c455ebcc34 180 //pc.printf("Ftpputpathname is %s\r\n",ftpputpathname); // For FTPPUTPATHNAME feature
jaspreetsingh 0:f2467c077504 181 gsmerr=0;
jaspreetsingh 0:f2467c077504 182 mkdir(main_dir,0777);
jaspreetsingh 0:f2467c077504 183 mkdir(month_dir,0777);
jaspreetsingh 0:f2467c077504 184 mkdir(date_dir,0777);
jaspreetsingh 0:f2467c077504 185 mkdir(hour_dir,0777);
FahdAnsary 9:7965c3bc3199 186 }
FahdAnsary 9:7965c3bc3199 187 else
FahdAnsary 9:7965c3bc3199 188 {
jaspreetsingh 0:f2467c077504 189 sprintf(filepath,"%s/%s%02d%02d%02d%02d%02d%02dErr%03d",hour_dir,sitename,year,month,date,hour,minute,second,gsmerr);
jaspreetsingh 0:f2467c077504 190 sprintf(filename,"%s%02d%02d%02d%02d%02d%02dErr%03d",sitename,year,month,date,hour,minute,second,gsmerr);
jaspreetsingh 0:f2467c077504 191 gsmerr++;
jaspreetsingh 0:f2467c077504 192 }
FahdAnsary 9:7965c3bc3199 193 }
FahdAnsary 9:7965c3bc3199 194 else
FahdAnsary 9:7965c3bc3199 195 {
jaspreetsingh 0:f2467c077504 196 sprintf(timestamp,timestampold);
FahdAnsary 12:0ab0a2578025 197 //pc.printf("\r\nTimestamp......%s\r\n",timestamp);
FahdAnsary 12:0ab0a2578025 198
FahdAnsary 12:0ab0a2578025 199 sprintf(filepath,"%s/%s%02d%02dErr%03d",hour_dir,sitename,minuteold,secondold,gsmerr);
FahdAnsary 12:0ab0a2578025 200 sprintf(filename,"%s%02d%02dErr%03d",sitename,minuteold,secondold,gsmerr);
jaspreetsingh 0:f2467c077504 201 gsmerr++;
jaspreetsingh 0:f2467c077504 202 }
jaspreetsingh 0:f2467c077504 203 }
jaspreetsingh 0:f2467c077504 204
jaspreetsingh 0:f2467c077504 205 //--------------------------------------------------------------------------------------------------//
jaspreetsingh 0:f2467c077504 206 // DC Detect //
jaspreetsingh 0:f2467c077504 207 //--------------------------------------------------------------------------------------------------//
jaspreetsingh 0:f2467c077504 208 void DC_Detection()
jaspreetsingh 0:f2467c077504 209 {
jaspreetsingh 0:f2467c077504 210 Timer t;
jaspreetsingh 0:f2467c077504 211 int j=0;
jaspreetsingh 7:3d5fd645c11d 212 ADC0_CFG2=ADC0_CFG2||0x10;
jaspreetsingh 0:f2467c077504 213 t.start();
FahdAnsary 9:7965c3bc3199 214 while(j<10)
FahdAnsary 9:7965c3bc3199 215 {
FahdAnsary 9:7965c3bc3199 216 if((int)(t.read()*50*freq*1000)%100 == 0)
FahdAnsary 9:7965c3bc3199 217 {
jaspreetsingh 0:f2467c077504 218 DC_Detect_data[j] = DC_Detect.read_u16();
jaspreetsingh 7:3d5fd645c11d 219 Temp_data[j] = TC1.read_u16();
jaspreetsingh 0:f2467c077504 220 ++j;
jaspreetsingh 0:f2467c077504 221 }
jaspreetsingh 0:f2467c077504 222 }
jaspreetsingh 0:f2467c077504 223 t.stop();
FahdAnsary 9:7965c3bc3199 224 //pc.printf("\r\nTemp Time Taken %f \n\r", t.read());
jaspreetsingh 0:f2467c077504 225 t.reset();
jaspreetsingh 0:f2467c077504 226 // pc.printf("Total Samples %d\r\n",j);
jaspreetsingh 0:f2467c077504 227 }
jaspreetsingh 0:f2467c077504 228
jaspreetsingh 0:f2467c077504 229 //--------------------------------------------------------------------------------------------------//
jaspreetsingh 0:f2467c077504 230 // AC-DC Sampling //
jaspreetsingh 0:f2467c077504 231 //--------------------------------------------------------------------------------------------------//
jaspreetsingh 0:f2467c077504 232 void calculate_ADC()
jaspreetsingh 0:f2467c077504 233 {
jaspreetsingh 0:f2467c077504 234 Timer t;
jaspreetsingh 0:f2467c077504 235 int j=0;
jaspreetsingh 0:f2467c077504 236 pc.printf("\n\rStarting Reading \n\r");
jaspreetsingh 0:f2467c077504 237 t.start();
FahdAnsary 9:7965c3bc3199 238 while(j<dataLength)
FahdAnsary 9:7965c3bc3199 239 {
FahdAnsary 9:7965c3bc3199 240 if((int)(t.read()*100*freq*1000)%100 == 0)
FahdAnsary 9:7965c3bc3199 241 {
jaspreetsingh 0:f2467c077504 242 ACdata[j] = AC_input.read_u16();
jaspreetsingh 0:f2467c077504 243 DCdata[j] = DC_input.read_u16();
jaspreetsingh 0:f2467c077504 244 ++j;
jaspreetsingh 0:f2467c077504 245 }
jaspreetsingh 0:f2467c077504 246 }
jaspreetsingh 0:f2467c077504 247 t.stop();
jaspreetsingh 0:f2467c077504 248 //pc.printf("Time Taken %f \n\r", t.read());
jaspreetsingh 0:f2467c077504 249 t.reset();
jaspreetsingh 0:f2467c077504 250 //pc.printf("Total Samples %d\r\n",j);
jaspreetsingh 0:f2467c077504 251 }
jaspreetsingh 0:f2467c077504 252
jaspreetsingh 0:f2467c077504 253 //--------------------------------------------------------------------------------------------------//
jaspreetsingh 0:f2467c077504 254 // Sampling Function //
jaspreetsingh 0:f2467c077504 255 //--------------------------------------------------------------------------------------------------//
jaspreetsingh 0:f2467c077504 256
jaspreetsingh 0:f2467c077504 257 void sampling()
jaspreetsingh 0:f2467c077504 258 {
jaspreetsingh 0:f2467c077504 259 pc.printf("\r\nSampling attempt");
jaspreetsingh 0:f2467c077504 260 calculate_ADC();
jaspreetsingh 0:f2467c077504 261 DC_Detection();
jaspreetsingh 0:f2467c077504 262 }
FahdAnsary 9:7965c3bc3199 263 //--------------------------------------------------------------------------------------------------//
FahdAnsary 9:7965c3bc3199 264 // FFT Function //
FahdAnsary 9:7965c3bc3199 265 //--------------------------------------------------------------------------------------------------//
jaspreetsingh 0:f2467c077504 266
jaspreetsingh 0:f2467c077504 267 void fft(short N, short start_index, short step, int loop)
jaspreetsingh 0:f2467c077504 268 {
FahdAnsary 9:7965c3bc3199 269 if(N==2048)
FahdAnsary 9:7965c3bc3199 270 {
jaspreetsingh 0:f2467c077504 271 float input_2048[2048];
FahdAnsary 9:7965c3bc3199 272 for (short i=0; i<2048; i++)
FahdAnsary 9:7965c3bc3199 273 {
jaspreetsingh 0:f2467c077504 274 input_2048[i]=float(fft_array[(start_index+i*step)]);
jaspreetsingh 0:f2467c077504 275 }
jaspreetsingh 0:f2467c077504 276 float output_4096[4096];
jaspreetsingh 0:f2467c077504 277 arm_rfft_instance_f32 SR;
jaspreetsingh 0:f2467c077504 278 arm_cfft_radix4_instance_f32 SR_CFFT;
jaspreetsingh 0:f2467c077504 279 arm_status status=arm_rfft_init_f32(&SR, &SR_CFFT, 2048, 0, 1);
jaspreetsingh 0:f2467c077504 280 arm_rfft_f32(&SR, input_2048, output_4096);
FahdAnsary 9:7965c3bc3199 281 for (short i=0; i<4096; i++)
FahdAnsary 9:7965c3bc3199 282 {
jaspreetsingh 0:f2467c077504 283 fft_array[start_index+i*step]=int(output_4096[i]);
jaspreetsingh 0:f2467c077504 284 }
jaspreetsingh 0:f2467c077504 285 return;
FahdAnsary 9:7965c3bc3199 286 }
FahdAnsary 9:7965c3bc3199 287 else
FahdAnsary 9:7965c3bc3199 288 {
jaspreetsingh 0:f2467c077504 289 fft(N/2, start_index, step*2,0);
jaspreetsingh 0:f2467c077504 290 fft(N/2, start_index+step, step*2,0);
jaspreetsingh 0:f2467c077504 291 float output_data1[2];
jaspreetsingh 0:f2467c077504 292 float output_data2[2];
jaspreetsingh 0:f2467c077504 293 float output_data3[2];
jaspreetsingh 0:f2467c077504 294 float output_data4[2];
jaspreetsingh 0:f2467c077504 295 output_data3[0]=fft_array[start_index];
jaspreetsingh 0:f2467c077504 296 output_data3[1]=fft_array[start_index+2*step];
jaspreetsingh 0:f2467c077504 297 output_data4[0]=fft_array[start_index+step];
jaspreetsingh 0:f2467c077504 298 output_data4[1]=fft_array[start_index+3*step];
jaspreetsingh 0:f2467c077504 299 fft_array[start_index]=output_data3[0]+output_data4[0];
jaspreetsingh 0:f2467c077504 300 fft_array[start_index+step]=output_data3[1]+output_data4[1];
FahdAnsary 9:7965c3bc3199 301 for(int i=1; i<N/2; i++)
FahdAnsary 9:7965c3bc3199 302 {
jaspreetsingh 0:f2467c077504 303 output_data1[0]=float(fft_array[start_index+4*(i)*step]);
jaspreetsingh 0:f2467c077504 304 output_data1[1]=float(fft_array[start_index+(4*(i)+2)*step]);
jaspreetsingh 0:f2467c077504 305 output_data2[0]=float(fft_array[start_index+(4*(i)+1)*step]);
jaspreetsingh 0:f2467c077504 306 output_data2[1]=float(fft_array[start_index+(4*(i)+3)*step]);
jaspreetsingh 0:f2467c077504 307 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 308 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 309 }
jaspreetsingh 0:f2467c077504 310 fft_array[start_index+N*step]=output_data3[0]-output_data4[0];
jaspreetsingh 0:f2467c077504 311 fft_array[start_index+(N+1)*step]=output_data3[1]-output_data4[1];
FahdAnsary 9:7965c3bc3199 312 if(loop==0)
FahdAnsary 9:7965c3bc3199 313 {
FahdAnsary 9:7965c3bc3199 314 for(int i=N/2+1; i<N; i++)
FahdAnsary 9:7965c3bc3199 315 {
jaspreetsingh 0:f2467c077504 316 fft_array[start_index+2*i*step]=fft_array[start_index+2*(N-i)*step];
jaspreetsingh 0:f2467c077504 317 fft_array[start_index+(2*i+1)*step]=-1*fft_array[start_index+(2*(N-i)+1)*step];
jaspreetsingh 0:f2467c077504 318 }
jaspreetsingh 0:f2467c077504 319 }
FahdAnsary 9:7965c3bc3199 320 if(loop==1)
FahdAnsary 9:7965c3bc3199 321 {
FahdAnsary 9:7965c3bc3199 322 for(short i=0; i<8193; i++)
FahdAnsary 9:7965c3bc3199 323 {
jaspreetsingh 0:f2467c077504 324 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 325 }
jaspreetsingh 0:f2467c077504 326 }
jaspreetsingh 0:f2467c077504 327 return;
jaspreetsingh 0:f2467c077504 328 }
jaspreetsingh 0:f2467c077504 329 }
FahdAnsary 9:7965c3bc3199 330 //--------------------------------------------------------------------------------------------------//
FahdAnsary 9:7965c3bc3199 331 // FFT Max Function //
FahdAnsary 9:7965c3bc3199 332 //--------------------------------------------------------------------------------------------------//
FahdAnsary 9:7965c3bc3199 333
jaspreetsingh 0:f2467c077504 334 void fft_max(int start_index, int number_count, int maximal_count, uint32_t* maximum_index, float* maximum_value)
jaspreetsingh 0:f2467c077504 335 {
jaspreetsingh 0:f2467c077504 336 float maximal_array[number_count];
FahdAnsary 9:7965c3bc3199 337 for (int i=0; i<number_count; i++)
FahdAnsary 9:7965c3bc3199 338 {
jaspreetsingh 0:f2467c077504 339 maximal_array[i]=float(fft_array[start_index+i]);
jaspreetsingh 0:f2467c077504 340 }
FahdAnsary 9:7965c3bc3199 341 for(int i=0; i<maximal_count; i++)
FahdAnsary 9:7965c3bc3199 342 {
jaspreetsingh 0:f2467c077504 343 arm_max_f32(maximal_array,number_count,&maximum_value[i],&maximum_index[i]);
jaspreetsingh 0:f2467c077504 344 maximal_array[maximum_index[i]]=0;
jaspreetsingh 0:f2467c077504 345 maximum_index[i]=start_index+maximum_index[i];
jaspreetsingh 0:f2467c077504 346 }
jaspreetsingh 0:f2467c077504 347 }
FahdAnsary 9:7965c3bc3199 348 //--------------------------------------------------------------------------------------------------//
FahdAnsary 9:7965c3bc3199 349 // FFT Array Prepare //
FahdAnsary 9:7965c3bc3199 350 //--------------------------------------------------------------------------------------------------//
jaspreetsingh 0:f2467c077504 351
jaspreetsingh 0:f2467c077504 352 void prepare_fft_array(int* start_index, int* points_count, int* maximas_required, int segments, int fft_type)
jaspreetsingh 0:f2467c077504 353 {
jaspreetsingh 0:f2467c077504 354 int max_points_count=0;
FahdAnsary 9:7965c3bc3199 355 for (int i=0; i<segments; i++)
FahdAnsary 9:7965c3bc3199 356 {
jaspreetsingh 0:f2467c077504 357 max_points_count=max_points_count+maximas_required[i];
jaspreetsingh 0:f2467c077504 358 }
jaspreetsingh 0:f2467c077504 359 uint32_t index[max_points_count];
jaspreetsingh 0:f2467c077504 360 float maxima[max_points_count];
jaspreetsingh 0:f2467c077504 361 int j=0;
FahdAnsary 9:7965c3bc3199 362 for (int i=0; i<segments; i++)
FahdAnsary 9:7965c3bc3199 363 {
jaspreetsingh 0:f2467c077504 364 fft_max(start_index[i],points_count[i],maximas_required[i],&index[j],&maxima[j]);
jaspreetsingh 0:f2467c077504 365 j=j+maximas_required[i];
jaspreetsingh 0:f2467c077504 366 }
jaspreetsingh 0:f2467c077504 367 FILE *fp = fopen(pathfft, "a");
FahdAnsary 9:7965c3bc3199 368 if(fp == NULL)
FahdAnsary 9:7965c3bc3199 369 {
jaspreetsingh 0:f2467c077504 370 pc.printf("Could not open file for write\n\r");
FahdAnsary 12:0ab0a2578025 371 mkdir("/sd/jas",0777);
jaspreetsingh 0:f2467c077504 372 //reset_mod();
FahdAnsary 9:7965c3bc3199 373 }
FahdAnsary 9:7965c3bc3199 374 else
FahdAnsary 9:7965c3bc3199 375 {
jaspreetsingh 0:f2467c077504 376 //fprintf(fp, "\r\n%s",timestamp);
FahdAnsary 9:7965c3bc3199 377 for(int i=0; i<max_points_count; i++)
FahdAnsary 9:7965c3bc3199 378 {
jaspreetsingh 8:12b4c521c033 379
FahdAnsary 9:7965c3bc3199 380 fprintf(fp,"\r\n%d %d",index[i], int(maxima[i]));
FahdAnsary 9:7965c3bc3199 381 //pc.printf("\r\n %d %d",index[i], int(maxima[i]));
jaspreetsingh 0:f2467c077504 382 }
jaspreetsingh 8:12b4c521c033 383 if(fft_type==0)
jaspreetsingh 8:12b4c521c033 384 {
jaspreetsingh 8:12b4c521c033 385 fprintf(fp,"\r\n\r\n");
jaspreetsingh 8:12b4c521c033 386 maxfreq= index[1];
jaspreetsingh 8:12b4c521c033 387 }
jaspreetsingh 0:f2467c077504 388 else fprintf(fp,"\r\nEOF");
jaspreetsingh 0:f2467c077504 389 fclose(fp);
jaspreetsingh 0:f2467c077504 390 }
jaspreetsingh 0:f2467c077504 391 }
FahdAnsary 9:7965c3bc3199 392 //--------------------------------------------------------------------------------------------------//
FahdAnsary 9:7965c3bc3199 393 // Remove File from Directory //
FahdAnsary 9:7965c3bc3199 394 //--------------------------------------------------------------------------------------------------//
jaspreetsingh 8:12b4c521c033 395
jaspreetsingh 3:726f275f04ac 396 void do_remove(const char *fsrc)
jaspreetsingh 3:726f275f04ac 397 {
jaspreetsingh 3:726f275f04ac 398 pc.printf("\r\n Deleting... \r\n");
jaspreetsingh 3:726f275f04ac 399 DIR *d = opendir(fsrc);
jaspreetsingh 4:668d7227d060 400 if(d==NULL)
jaspreetsingh 4:668d7227d060 401 {
jaspreetsingh 4:668d7227d060 402 pc.printf("\r\n NULL Condition\r\n");
jaspreetsingh 4:668d7227d060 403 return;
jaspreetsingh 4:668d7227d060 404 }
jaspreetsingh 4:668d7227d060 405 else
jaspreetsingh 4:668d7227d060 406 {
jaspreetsingh 4:668d7227d060 407 struct dirent *p;
jaspreetsingh 4:668d7227d060 408 char path[100] = {0};
FahdAnsary 9:7965c3bc3199 409 while((p = readdir(d)) != NULL)
FahdAnsary 9:7965c3bc3199 410 {
jaspreetsingh 3:726f275f04ac 411 strcpy(path, fsrc);
jaspreetsingh 3:726f275f04ac 412 strcat(path, "/");
jaspreetsingh 3:726f275f04ac 413 strcat(path, p->d_name);
jaspreetsingh 3:726f275f04ac 414 remove(path);
FahdAnsary 9:7965c3bc3199 415 }
jaspreetsingh 4:668d7227d060 416 }
jaspreetsingh 3:726f275f04ac 417 closedir(d);
jaspreetsingh 3:726f275f04ac 418 remove(fsrc);
jaspreetsingh 3:726f275f04ac 419 }
jaspreetsingh 0:f2467c077504 420
jaspreetsingh 0:f2467c077504 421 //--------------------------------------------------------------------------------------------------//
jaspreetsingh 0:f2467c077504 422 // Storage //
jaspreetsingh 0:f2467c077504 423 //--------------------------------------------------------------------------------------------------//
jaspreetsingh 0:f2467c077504 424 void store()
jaspreetsingh 0:f2467c077504 425 {
jaspreetsingh 0:f2467c077504 426 GetFileDir();
FahdAnsary 9:7965c3bc3199 427 // AC Sample storage
jaspreetsingh 0:f2467c077504 428 sprintf(filenameAC,"%sAC.txt",filename);
jaspreetsingh 0:f2467c077504 429 sprintf(pathAC,"%sAC.txt",filepath);
jaspreetsingh 7:3d5fd645c11d 430 //pc.printf("\r\nFilename-AC\t%s", pathAC);
jaspreetsingh 0:f2467c077504 431 FILE *fp = fopen(pathAC, "w");
FahdAnsary 12:0ab0a2578025 432
FahdAnsary 9:7965c3bc3199 433 if(fp == NULL)
FahdAnsary 9:7965c3bc3199 434 {
jaspreetsingh 7:3d5fd645c11d 435 //pc.printf("Could not open file for write\n\r");
jaspreetsingh 0:f2467c077504 436 //reset_mod();
FahdAnsary 9:7965c3bc3199 437 }
FahdAnsary 9:7965c3bc3199 438 else
FahdAnsary 9:7965c3bc3199 439 {
jaspreetsingh 0:f2467c077504 440 //pc.printf("attempting to save file\n\r");
FahdAnsary 9:7965c3bc3199 441 for(int k=0; k<dataLength; k++)
FahdAnsary 9:7965c3bc3199 442 {
jaspreetsingh 0:f2467c077504 443 fprintf(fp, "%d.", ACdata[k]);
jaspreetsingh 0:f2467c077504 444 }
jaspreetsingh 0:f2467c077504 445 fprintf(fp, "EOF");
jaspreetsingh 0:f2467c077504 446 fclose(fp);
jaspreetsingh 0:f2467c077504 447 }
FahdAnsary 9:7965c3bc3199 448 // DC Sample storage
jaspreetsingh 0:f2467c077504 449 sprintf(filenameDC,"%sDC.txt",filename);
jaspreetsingh 0:f2467c077504 450 sprintf(pathDC,"%sDC.txt",filepath);
jaspreetsingh 7:3d5fd645c11d 451 //pc.printf("\r\nFilename-DC\t%s", pathDC);
jaspreetsingh 0:f2467c077504 452 fp = fopen(pathDC, "w");
FahdAnsary 9:7965c3bc3199 453 if(fp == NULL)
FahdAnsary 9:7965c3bc3199 454 {
jaspreetsingh 0:f2467c077504 455 //pc.printf("Could not open file for write\n\r");
jaspreetsingh 0:f2467c077504 456 //reset_mod();
FahdAnsary 9:7965c3bc3199 457 }
FahdAnsary 9:7965c3bc3199 458 else
FahdAnsary 9:7965c3bc3199 459 {
FahdAnsary 9:7965c3bc3199 460 for(int k=0; k<dataLength; k++)
FahdAnsary 9:7965c3bc3199 461 {
jaspreetsingh 0:f2467c077504 462 fprintf(fp, "%d.", DCdata[k]);
jaspreetsingh 0:f2467c077504 463 }
jaspreetsingh 0:f2467c077504 464 fprintf(fp, "EOF");
jaspreetsingh 0:f2467c077504 465 fclose(fp);
jaspreetsingh 0:f2467c077504 466 }
FahdAnsary 9:7965c3bc3199 467 // DC Detect storage
jaspreetsingh 0:f2467c077504 468 sprintf(pathDCdetect,"%sData.txt",hour_dir);
FahdAnsary 12:0ab0a2578025 469 //pc.printf("\r\nFilename-DCD\t%s", pathDCdetect);
jaspreetsingh 0:f2467c077504 470 fp = fopen(pathDCdetect, "w");
FahdAnsary 9:7965c3bc3199 471 if(fp == NULL)
FahdAnsary 9:7965c3bc3199 472 {
jaspreetsingh 0:f2467c077504 473 //pc.printf("Could not open file for write\n\r");
jaspreetsingh 0:f2467c077504 474 //reset_mod();
FahdAnsary 9:7965c3bc3199 475 }
FahdAnsary 9:7965c3bc3199 476 else
FahdAnsary 9:7965c3bc3199 477 {
jaspreetsingh 0:f2467c077504 478 fprintf(fp, "\r\n%s",time_stamp);
FahdAnsary 9:7965c3bc3199 479 for(int k=0; k<10; k++)
FahdAnsary 9:7965c3bc3199 480 {
jaspreetsingh 0:f2467c077504 481 fprintf(fp, "\r\nDC-%d",DC_Detect_data[k]);
jaspreetsingh 0:f2467c077504 482 }
jaspreetsingh 0:f2467c077504 483 fclose(fp);
jaspreetsingh 0:f2467c077504 484 }
jaspreetsingh 0:f2467c077504 485
jaspreetsingh 0:f2467c077504 486 int avg_dc_detect=0, avg_temp=0;
FahdAnsary 9:7965c3bc3199 487 for(int i=0; i<10; i++)
FahdAnsary 9:7965c3bc3199 488 {
jaspreetsingh 0:f2467c077504 489 avg_dc_detect=avg_dc_detect+int(DC_Detect_data[i]);
jaspreetsingh 0:f2467c077504 490 avg_temp=avg_temp+int(Temp_data[i]);
jaspreetsingh 0:f2467c077504 491 }
jaspreetsingh 0:f2467c077504 492 avg_dc_detect=avg_dc_detect/10;
jaspreetsingh 0:f2467c077504 493 avg_temp=avg_temp/10;
FahdAnsary 9:7965c3bc3199 494 //FFT starts
jaspreetsingh 7:3d5fd645c11d 495 //pc.printf("\r\nfftstart");
jaspreetsingh 0:f2467c077504 496 //pc.printf("\r\nfftstage1");
jaspreetsingh 0:f2467c077504 497 sprintf(filenamefft,"%sft.txt",filename);
jaspreetsingh 8:12b4c521c033 498 //sprintf(ftp_timestamp,"%s",filename); // For FTP Timestamp
jaspreetsingh 0:f2467c077504 499 sprintf(pathfft,"%sft.txt",filepath);
jaspreetsingh 7:3d5fd645c11d 500 //pc.printf("\r\nFilename-FFT\t%s", pathfft);
jaspreetsingh 0:f2467c077504 501
jaspreetsingh 0:f2467c077504 502 int fft_segments=4;
jaspreetsingh 0:f2467c077504 503 int fft_start_index[4]= {0,760,1520,2280};
jaspreetsingh 0:f2467c077504 504 int fft_points_count[4]= {4,120,240,360};
jaspreetsingh 0:f2467c077504 505 int fft_maximas_required[4]= {1,20,8,8};
jaspreetsingh 7:3d5fd645c11d 506 float AC_rms_value=0;
jaspreetsingh 7:3d5fd645c11d 507 float AC_mean_value=0;
jaspreetsingh 7:3d5fd645c11d 508 float DC_rms_value=0;
jaspreetsingh 7:3d5fd645c11d 509 float DC_mean_value=0;
jaspreetsingh 7:3d5fd645c11d 510
FahdAnsary 9:7965c3bc3199 511 //AC fft
FahdAnsary 9:7965c3bc3199 512 for(int i=0; i<fft_points; i++)
FahdAnsary 9:7965c3bc3199 513 {
jaspreetsingh 0:f2467c077504 514 fft_array[i]=int(ACdata[i]);
jaspreetsingh 7:3d5fd645c11d 515 AC_mean_value=AC_mean_value+fft_array[i];
jaspreetsingh 0:f2467c077504 516 //pc.printf("%d %d %d\r\n", i, i+int(fft_points), fft_array[i]);
jaspreetsingh 0:f2467c077504 517 fft_array[(i+int(fft_points))]=0;
jaspreetsingh 0:f2467c077504 518 }
FahdAnsary 9:7965c3bc3199 519 //AC RMS
jaspreetsingh 7:3d5fd645c11d 520 AC_mean_value=AC_mean_value/fft_points;
FahdAnsary 9:7965c3bc3199 521 for(int i=0; i<fft_points; i++)
FahdAnsary 9:7965c3bc3199 522 {
jaspreetsingh 7:3d5fd645c11d 523 AC_rms_value=AC_rms_value+((AC_mean_value-fft_array[i])*(AC_mean_value-fft_array[i])/10000);
jaspreetsingh 7:3d5fd645c11d 524 }
jaspreetsingh 7:3d5fd645c11d 525
jaspreetsingh 7:3d5fd645c11d 526 fp = fopen(pathfft, "w");
FahdAnsary 12:0ab0a2578025 527 //pc.printf("\r\nopened path fft\r\n");
FahdAnsary 9:7965c3bc3199 528 if(fp == NULL)
FahdAnsary 9:7965c3bc3199 529 {
FahdAnsary 12:0ab0a2578025 530 //pc.printf("Could not open file for write pathfft\n\r");
jaspreetsingh 7:3d5fd645c11d 531 //reset_mod();
jaspreetsingh 7:3d5fd645c11d 532 }
FahdAnsary 9:7965c3bc3199 533 else
FahdAnsary 9:7965c3bc3199 534 {
FahdAnsary 9:7965c3bc3199 535 fprintf(fp, "%s",time_stamp);
FahdAnsary 9:7965c3bc3199 536 fprintf(fp, " %d",avg_dc_detect);
FahdAnsary 9:7965c3bc3199 537 fprintf(fp, " %d",avg_temp);
FahdAnsary 9:7965c3bc3199 538 fprintf(fp, " %.0f",AC_rms_value);
jaspreetsingh 7:3d5fd645c11d 539 fclose(fp);
jaspreetsingh 7:3d5fd645c11d 540 }
FahdAnsary 9:7965c3bc3199 541 fft(fft_points,0,1,1);
FahdAnsary 9:7965c3bc3199 542 maxfreq=0;
FahdAnsary 9:7965c3bc3199 543 prepare_fft_array(fft_start_index,fft_points_count,fft_maximas_required,fft_segments,0);
FahdAnsary 9:7965c3bc3199 544
FahdAnsary 9:7965c3bc3199 545 //TIME STAMP FILE WRITE FUNCTION
FahdAnsary 12:0ab0a2578025 546 if(gsmerr==0)
FahdAnsary 12:0ab0a2578025 547 {
FahdAnsary 12:0ab0a2578025 548
FahdAnsary 12:0ab0a2578025 549 sprintf(timestampname,"TS%s%02d%02d%02d%02d.txt",sitename,year,month,date,hour);
FahdAnsary 12:0ab0a2578025 550 sprintf(timestamppath,"/sd/%s",timestampname);
FahdAnsary 12:0ab0a2578025 551 }
FahdAnsary 12:0ab0a2578025 552 else
FahdAnsary 12:0ab0a2578025 553 {
FahdAnsary 12:0ab0a2578025 554
FahdAnsary 12:0ab0a2578025 555 sprintf(timestampname,"TS%sErr.txt",sitename);
FahdAnsary 12:0ab0a2578025 556 //pc.printf("\r\n%s",timestampname);
FahdAnsary 12:0ab0a2578025 557 sprintf(timestamppath,"/sd/%s",timestampname);
FahdAnsary 12:0ab0a2578025 558
FahdAnsary 12:0ab0a2578025 559 }
FahdAnsary 12:0ab0a2578025 560 //pc.printf("\r\n Timestampname is %s\r\n",timestampname);
FahdAnsary 9:7965c3bc3199 561 FILE *fp13 = fopen(timestamppath,"a");
FahdAnsary 9:7965c3bc3199 562
FahdAnsary 12:0ab0a2578025 563 if(fp == NULL)
FahdAnsary 12:0ab0a2578025 564 {
FahdAnsary 12:0ab0a2578025 565 //pc.printf("Could not open file for write pathfft\n\r");
FahdAnsary 12:0ab0a2578025 566 //reset_mod();
FahdAnsary 12:0ab0a2578025 567 }
FahdAnsary 12:0ab0a2578025 568 else
FahdAnsary 12:0ab0a2578025 569 {
FahdAnsary 12:0ab0a2578025 570 fprintf(fp13,"\r\n%02d%02d %d %.0f %d",minute,second,avg_dc_detect/100,AC_rms_value/100000,maxfreq);
FahdAnsary 12:0ab0a2578025 571 //pc.printf("Value is \r\n%02d%02d %d %.0f %d",minute,second,avg_dc_detect,AC_rms_value,maxfreq);
FahdAnsary 12:0ab0a2578025 572 fclose(fp13);
FahdAnsary 12:0ab0a2578025 573 }
jaspreetsingh 8:12b4c521c033 574 pc.printf("\r\nTimestamp.txt Storage Done\n\r");
FahdAnsary 9:7965c3bc3199 575
FahdAnsary 9:7965c3bc3199 576 //DC fft
FahdAnsary 9:7965c3bc3199 577 for(int i=0; i<fft_points; i++)
FahdAnsary 9:7965c3bc3199 578 {
jaspreetsingh 0:f2467c077504 579 fft_array[i]=int(DCdata[i]);
jaspreetsingh 7:3d5fd645c11d 580 DC_mean_value=DC_mean_value+fft_array[i];
jaspreetsingh 0:f2467c077504 581 //pc.printf("%d %d %d\r\n", i, i+int(fft_points), fft_array[i]);
jaspreetsingh 0:f2467c077504 582 fft_array[(i+int(fft_points))]=0;
jaspreetsingh 0:f2467c077504 583 }
FahdAnsary 9:7965c3bc3199 584 //DC RMS
jaspreetsingh 7:3d5fd645c11d 585 DC_mean_value=DC_mean_value/fft_points;
FahdAnsary 9:7965c3bc3199 586 for(int i=0; i<fft_points; i++)
FahdAnsary 9:7965c3bc3199 587 {
FahdAnsary 9:7965c3bc3199 588 DC_rms_value=DC_rms_value+((DC_mean_value-fft_array[i])*(DC_mean_value-fft_array[i])/10000);
jaspreetsingh 7:3d5fd645c11d 589 }
jaspreetsingh 7:3d5fd645c11d 590 fp = fopen(pathfft, "a");
FahdAnsary 9:7965c3bc3199 591 if(fp == NULL)
FahdAnsary 9:7965c3bc3199 592 {
jaspreetsingh 7:3d5fd645c11d 593 //pc.printf("Could not open file for write\n\r");
jaspreetsingh 7:3d5fd645c11d 594 //reset_mod();
jaspreetsingh 7:3d5fd645c11d 595 }
FahdAnsary 9:7965c3bc3199 596 else
FahdAnsary 9:7965c3bc3199 597 {
FahdAnsary 9:7965c3bc3199 598 fprintf(fp, "%.0f",DC_rms_value);
jaspreetsingh 7:3d5fd645c11d 599 fclose(fp);
jaspreetsingh 7:3d5fd645c11d 600 }
jaspreetsingh 7:3d5fd645c11d 601
jaspreetsingh 0:f2467c077504 602 fft(fft_points,0,1,1);
jaspreetsingh 0:f2467c077504 603 prepare_fft_array(fft_start_index,fft_points_count,fft_maximas_required,fft_segments,1);
jaspreetsingh 0:f2467c077504 604
jaspreetsingh 0:f2467c077504 605 }
jaspreetsingh 0:f2467c077504 606 //--------------------------------------------------------------------------------------------------//
jaspreetsingh 0:f2467c077504 607 // GSM Initialization //
jaspreetsingh 0:f2467c077504 608 //--------------------------------------------------------------------------------------------------//
jaspreetsingh 0:f2467c077504 609 void gsm_init()
jaspreetsingh 0:f2467c077504 610 {
jaspreetsingh 0:f2467c077504 611 int cnt = 0;
FahdAnsary 9:7965c3bc3199 612 while((sendATcommand("AT+CREG?", "+CREG: 1,1", 10,2) || sendATcommand("AT+CREG?", "+CREG: 1,5", 5,0)) == 0)
FahdAnsary 9:7965c3bc3199 613 {
FahdAnsary 9:7965c3bc3199 614 if(sendATcommand("AT+CREG=1", "+CREG:1", 5,0))
FahdAnsary 9:7965c3bc3199 615 {
jaspreetsingh 0:f2467c077504 616 pc.printf("creg is 1");
jaspreetsingh 0:f2467c077504 617 return;
FahdAnsary 9:7965c3bc3199 618 }
FahdAnsary 9:7965c3bc3199 619 else if(sendATcommand("AT+CREG=1", "+CREG:5", 5,0))
FahdAnsary 9:7965c3bc3199 620 {
jaspreetsingh 0:f2467c077504 621 pc.printf("creg is 5");
jaspreetsingh 0:f2467c077504 622 return;
FahdAnsary 9:7965c3bc3199 623 }
jaspreetsingh 0:f2467c077504 624 ++cnt;
FahdAnsary 9:7965c3bc3199 625 if(cnt > 5)
FahdAnsary 9:7965c3bc3199 626 {
jaspreetsingh 0:f2467c077504 627 pc.printf("GSM registration failed");
jaspreetsingh 0:f2467c077504 628 reset_mod();
jaspreetsingh 0:f2467c077504 629 return;
jaspreetsingh 0:f2467c077504 630 }
jaspreetsingh 0:f2467c077504 631 }
jaspreetsingh 0:f2467c077504 632 }
jaspreetsingh 0:f2467c077504 633 //--------------------------------------------------------------------------------------------------//
jaspreetsingh 0:f2467c077504 634 // FTP Connect function //
jaspreetsingh 0:f2467c077504 635 //--------------------------------------------------------------------------------------------------//
jaspreetsingh 0:f2467c077504 636 bool ftp_connect()
jaspreetsingh 0:f2467c077504 637 {
jaspreetsingh 0:f2467c077504 638 int ftp_close_attempt=0;
jaspreetsingh 0:f2467c077504 639 /*if(sendATcommand("AT+SAPBR=2,1", "+SAPBR: 1,3,\"0.0.0.0\"", 5,0)) {
jaspreetsingh 0:f2467c077504 640 } else {*/
FahdAnsary 9:7965c3bc3199 641 while(!sendATcommand("AT+SAPBR=2,1", "+SAPBR: 1,3,\"0.0.0.0\"", 5,0))
FahdAnsary 9:7965c3bc3199 642 {
jaspreetsingh 0:f2467c077504 643 sendATcommand("AT+SAPBR=0,1","OK",5,0);
jaspreetsingh 0:f2467c077504 644 ftp_close_attempt++;
jaspreetsingh 0:f2467c077504 645 //pc.printf("\r\nclose attempt %d\r\n", ftp_close_attempt);
FahdAnsary 9:7965c3bc3199 646 if(ftp_close_attempt>3)
FahdAnsary 9:7965c3bc3199 647 {
jaspreetsingh 0:f2467c077504 648 //pc.printf("\r\nunable to close bearer\r\n");
jaspreetsingh 0:f2467c077504 649 return 0;
jaspreetsingh 0:f2467c077504 650 }
jaspreetsingh 0:f2467c077504 651 }
jaspreetsingh 0:f2467c077504 652 int ftp_connect_attempt=0;
jaspreetsingh 0:f2467c077504 653 //}
FahdAnsary 9:7965c3bc3199 654 do
FahdAnsary 9:7965c3bc3199 655 {
jaspreetsingh 0:f2467c077504 656 sendATcommand("AT+SAPBR=1,1", "OK", 15,0);
jaspreetsingh 0:f2467c077504 657 //pc.printf("\r\nopen attempt %d\r\n",ftp_connect_attempt);
FahdAnsary 9:7965c3bc3199 658 if(ftp_connect_attempt>3)
FahdAnsary 9:7965c3bc3199 659 {
jaspreetsingh 0:f2467c077504 660 //pc.printf("\r\nunable to open bearer");
jaspreetsingh 0:f2467c077504 661 return 0;
FahdAnsary 9:7965c3bc3199 662 }
jaspreetsingh 0:f2467c077504 663 ftp_connect_attempt++;
FahdAnsary 9:7965c3bc3199 664 }
jaspreetsingh 0:f2467c077504 665 while(sendATcommand("AT+SAPBR=2,1", "+SAPBR: 1,3,\"0.0.0.0\"", 5,0));
jaspreetsingh 0:f2467c077504 666 wait(3);
FahdAnsary 9:7965c3bc3199 667 if(sendATcommand("AT+FTPTYPE=\"I\"", "OK", 5,0))
FahdAnsary 9:7965c3bc3199 668 {
FahdAnsary 9:7965c3bc3199 669 if(sendATcommand("AT+FTPSERV=\"ftp.ipage.com\"", "OK", 10,0))
FahdAnsary 9:7965c3bc3199 670 {
FahdAnsary 9:7965c3bc3199 671 if(sendATcommand("AT+FTPUN=\"hdwwrite\"", "OK\r", 10,0))
FahdAnsary 9:7965c3bc3199 672 {
FahdAnsary 9:7965c3bc3199 673 if(sendATcommand("AT+FTPPW=\"Ghdu@3i\"", "OK\r", 10,0)) return 1;
jaspreetsingh 0:f2467c077504 674 }
jaspreetsingh 0:f2467c077504 675 }
FahdAnsary 9:7965c3bc3199 676 }
jaspreetsingh 0:f2467c077504 677 return 0;
jaspreetsingh 0:f2467c077504 678 }
jaspreetsingh 0:f2467c077504 679
jaspreetsingh 0:f2467c077504 680 //--------------------------------------------------------------------------------------------------//
jaspreetsingh 0:f2467c077504 681 // FTP Send Function //
jaspreetsingh 0:f2467c077504 682 //--------------------------------------------------------------------------------------------------//
jaspreetsingh 0:f2467c077504 683
jaspreetsingh 0:f2467c077504 684 void ftp_put(int ftp_type) // For FTPGET Function
jaspreetsingh 0:f2467c077504 685 {
jaspreetsingh 0:f2467c077504 686
jaspreetsingh 0:f2467c077504 687 char ftpfilename[30]="";
jaspreetsingh 0:f2467c077504 688 char ftpfilepath[100]="";
jaspreetsingh 0:f2467c077504 689
jaspreetsingh 0:f2467c077504 690 if (ftp_type==0)
jaspreetsingh 0:f2467c077504 691 {
jaspreetsingh 0:f2467c077504 692 sprintf(ftpfilename,"%s",filenamefft);
jaspreetsingh 0:f2467c077504 693 sprintf(ftpfilepath,"%s",pathfft);
jaspreetsingh 0:f2467c077504 694 }
jaspreetsingh 0:f2467c077504 695 else if (ftp_type==1) // For FTPGET Function
jaspreetsingh 0:f2467c077504 696 {
jaspreetsingh 0:f2467c077504 697 pc.printf("Sending Requested file\r\n");
jaspreetsingh 0:f2467c077504 698
jaspreetsingh 0:f2467c077504 699 sprintf(ftpfilename,"%s",ftpget); // For Request of multiple file path logic refer abc.text
FahdAnsary 9:7965c3bc3199 700 sprintf(ftpfilepath,"%s",ftpget1);
jaspreetsingh 0:f2467c077504 701 }
jaspreetsingh 0:f2467c077504 702 else if (ftp_type==2)
jaspreetsingh 0:f2467c077504 703 {
jaspreetsingh 0:f2467c077504 704 // For Timestamp text file
jaspreetsingh 0:f2467c077504 705 sprintf(ftpfilename,"%s.txt",ftpget);
jaspreetsingh 0:f2467c077504 706 sprintf(ftpfilepath,"/sd/%s.txt",ftpget);
jaspreetsingh 0:f2467c077504 707 }
jaspreetsingh 0:f2467c077504 708
jaspreetsingh 0:f2467c077504 709 char command1[40];
jaspreetsingh 0:f2467c077504 710 char result1[20];
jaspreetsingh 0:f2467c077504 711 char command2 [100];
jaspreetsingh 0:f2467c077504 712 //char result2 [20];
jaspreetsingh 0:f2467c077504 713
jaspreetsingh 0:f2467c077504 714 sprintf(command1,"%s\"%s\"", "AT+FTPPUTNAME=", ftpfilename);
jaspreetsingh 0:f2467c077504 715 sprintf(result1,"%s", "OK");
jaspreetsingh 0:f2467c077504 716 pc.printf("ftpfilepath is \n\r %s \n\r",ftpfilepath);
jaspreetsingh 0:f2467c077504 717
jaspreetsingh 0:f2467c077504 718 //sd card
jaspreetsingh 0:f2467c077504 719 int char_cnt=0;
jaspreetsingh 0:f2467c077504 720 char file_data[1294];
jaspreetsingh 0:f2467c077504 721 FILE *fp8 = fopen(ftpfilepath, "r");
FahdAnsary 9:7965c3bc3199 722 if(fp8==NULL)
FahdAnsary 9:7965c3bc3199 723 {
jaspreetsingh 0:f2467c077504 724 pc.printf("\n\r NULL Condition\r\n");
jaspreetsingh 0:f2467c077504 725 return;
FahdAnsary 9:7965c3bc3199 726 }
FahdAnsary 9:7965c3bc3199 727 else
FahdAnsary 9:7965c3bc3199 728 {
FahdAnsary 9:7965c3bc3199 729 for(int i=0; i<1294; i++)
FahdAnsary 9:7965c3bc3199 730 {
jaspreetsingh 0:f2467c077504 731 file_data[i] = fgetc(fp8);
jaspreetsingh 0:f2467c077504 732 char_cnt= char_cnt++;
FahdAnsary 9:7965c3bc3199 733 if( feof(fp8) )
FahdAnsary 9:7965c3bc3199 734 {
jaspreetsingh 0:f2467c077504 735 break ;
jaspreetsingh 0:f2467c077504 736 }
jaspreetsingh 0:f2467c077504 737 }//size calculation loop ends
jaspreetsingh 0:f2467c077504 738 fclose(fp8);
jaspreetsingh 0:f2467c077504 739 }
FahdAnsary 9:7965c3bc3199 740 for(int putname_attempt=0; putname_attempt<2; putname_attempt++)
FahdAnsary 9:7965c3bc3199 741 {
jaspreetsingh 0:f2467c077504 742 //pc.printf("\r\nftp_put attempt\n\r");
jaspreetsingh 0:f2467c077504 743 // pc.printf("\r\nChar count %d\n\r",char_cnt);
FahdAnsary 9:7965c3bc3199 744 if(sendATcommand(command1,result1, 10,0))
FahdAnsary 9:7965c3bc3199 745 {
jaspreetsingh 5:11c455ebcc34 746 sprintf(command2,"%s/%s/\"", "AT+FTPPUTPATH=\"", ftpputpathname); // For FTPPUTPATHNAME Feature
jaspreetsingh 0:f2467c077504 747 //sprintf(result2,"%s", "OK");
jaspreetsingh 0:f2467c077504 748 sendATcommand(command2,"OK", 10,0);
FahdAnsary 9:7965c3bc3199 749 if((sendATcommand("AT+FTPPUT=1", "OK", 10,2))==2)
FahdAnsary 9:7965c3bc3199 750 {
jaspreetsingh 0:f2467c077504 751 //wait(8);
jaspreetsingh 0:f2467c077504 752 // pc.printf("in loop");
jaspreetsingh 0:f2467c077504 753 // pc.printf("\n\r %s",ftpfilepath);
jaspreetsingh 0:f2467c077504 754 /*FILE *fp9 = fopen(ftpfilepath, "r");
jaspreetsingh 0:f2467c077504 755 if(fp9==NULL)return;
jaspreetsingh 0:f2467c077504 756 else
jaspreetsingh 0:f2467c077504 757 {*/
jaspreetsingh 0:f2467c077504 758 int trialcount=0;
jaspreetsingh 0:f2467c077504 759 int allowedtrials=3;
jaspreetsingh 0:f2467c077504 760 char command[40];
jaspreetsingh 0:f2467c077504 761 char result[30];
jaspreetsingh 0:f2467c077504 762 sprintf(command,"%s%d", "AT+FTPPUT=2,",char_cnt);
jaspreetsingh 0:f2467c077504 763 sprintf(result,"%s%d", "+FTPPUT:2,",char_cnt);
FahdAnsary 9:7965c3bc3199 764 while(trialcount<allowedtrials)
FahdAnsary 9:7965c3bc3199 765 {
FahdAnsary 9:7965c3bc3199 766 if(sendATcommand(command,result, 10,0))
FahdAnsary 9:7965c3bc3199 767 {
FahdAnsary 9:7965c3bc3199 768 for(int i=0; i<char_cnt; i++)
FahdAnsary 9:7965c3bc3199 769 {
jaspreetsingh 0:f2467c077504 770 gsm.printf("%c", file_data[i]);
jaspreetsingh 0:f2467c077504 771 }
jaspreetsingh 0:f2467c077504 772 trialcount=allowedtrials+4;
jaspreetsingh 0:f2467c077504 773 wait(5);
jaspreetsingh 0:f2467c077504 774 } else trialcount++;
jaspreetsingh 0:f2467c077504 775 }
jaspreetsingh 0:f2467c077504 776 }
jaspreetsingh 0:f2467c077504 777 }
FahdAnsary 9:7965c3bc3199 778 for(int ftp_close_attempt=0; ftp_close_attempt<2; ftp_close_attempt++)
FahdAnsary 9:7965c3bc3199 779 {
jaspreetsingh 0:f2467c077504 780 //pc.printf("\r\nftp_close\r\n");
FahdAnsary 9:7965c3bc3199 781 if(sendATcommand("AT+FTPPUT=2,0", "OK", 5,0))
FahdAnsary 9:7965c3bc3199 782 {
jaspreetsingh 0:f2467c077504 783 ftp_close_attempt=6;
jaspreetsingh 0:f2467c077504 784 }
jaspreetsingh 0:f2467c077504 785 }
jaspreetsingh 0:f2467c077504 786 return;
jaspreetsingh 0:f2467c077504 787
jaspreetsingh 0:f2467c077504 788 }
jaspreetsingh 0:f2467c077504 789
jaspreetsingh 0:f2467c077504 790 }
jaspreetsingh 0:f2467c077504 791
jaspreetsingh 0:f2467c077504 792 //--------------------------------------------------------------------------------------------------//
jaspreetsingh 0:f2467c077504 793 // FTP GET FUNCTION //
jaspreetsingh 0:f2467c077504 794 //--------------------------------------------------------------------------------------------------//
jaspreetsingh 0:f2467c077504 795
jaspreetsingh 0:f2467c077504 796 void downloadFTP()
jaspreetsingh 0:f2467c077504 797
jaspreetsingh 0:f2467c077504 798 {
jaspreetsingh 0:f2467c077504 799 int x = 0;
jaspreetsingh 2:e5b9aefbcdeb 800
jaspreetsingh 0:f2467c077504 801 wait(10);
jaspreetsingh 0:f2467c077504 802 ftp_connect();
jaspreetsingh 0:f2467c077504 803
jaspreetsingh 0:f2467c077504 804 sendATcommand("AT+FTPGETNAME=\"Final.txt\"", "OK", 5,0);
jaspreetsingh 0:f2467c077504 805 sendATcommand("AT+FTPGETPATH=\"/\"", "OK", 5,0);
jaspreetsingh 0:f2467c077504 806
jaspreetsingh 0:f2467c077504 807 if (sendATcommand("AT+FTPGET=1\r", "+FTPGET:1,1", 20,0) == 1)
jaspreetsingh 0:f2467c077504 808 {
jaspreetsingh 0:f2467c077504 809 for(int ftp_get_attempt=0; ftp_get_attempt<2; ftp_get_attempt++) {
jaspreetsingh 0:f2467c077504 810 if (sendATcommand("AT+FTPGET=2,300", "+FTPGET:2,", 10,0) == 1)
jaspreetsingh 0:f2467c077504 811 {
jaspreetsingh 0:f2467c077504 812 int previous = time(NULL);
jaspreetsingh 0:f2467c077504 813 // this loop waits for the answer
FahdAnsary 9:7965c3bc3199 814 do
FahdAnsary 9:7965c3bc3199 815 {
jaspreetsingh 0:f2467c077504 816 if(gsm.readable() == 1)
jaspreetsingh 0:f2467c077504 817 {
jaspreetsingh 0:f2467c077504 818 // if there are data in the UART input buffer, reads it and checks for the asnwer
jaspreetsingh 0:f2467c077504 819 incoming_data[x] = gsm.getc();
jaspreetsingh 0:f2467c077504 820 x++;
jaspreetsingh 0:f2467c077504 821 }
jaspreetsingh 0:f2467c077504 822
FahdAnsary 9:7965c3bc3199 823 // Waits for the asnwer with time out
FahdAnsary 9:7965c3bc3199 824 }while((time(NULL) - previous) < 5);
jaspreetsingh 0:f2467c077504 825
jaspreetsingh 0:f2467c077504 826 pc.printf("Incoming_Data is %s\r\n",incoming_data);
jaspreetsingh 0:f2467c077504 827 sprintf(dest,"%s",incoming_data);
jaspreetsingh 0:f2467c077504 828 pc.printf("\r\n Download finished");
jaspreetsingh 4:668d7227d060 829 wait(15);
jaspreetsingh 5:11c455ebcc34 830
jaspreetsingh 0:f2467c077504 831 char *token;
jaspreetsingh 0:f2467c077504 832 token = strtok(dest, s);
jaspreetsingh 0:f2467c077504 833 token = strtok(NULL,s);
jaspreetsingh 0:f2467c077504 834 pc.printf("\r\nToken is %s\r\n",token);
jaspreetsingh 0:f2467c077504 835
jaspreetsingh 0:f2467c077504 836 //NO FTGET REQUIRED Case : 0
jaspreetsingh 0:f2467c077504 837 if(atoi(token)==NULL)
jaspreetsingh 0:f2467c077504 838 {
jaspreetsingh 0:f2467c077504 839 return;
jaspreetsingh 0:f2467c077504 840 }
jaspreetsingh 0:f2467c077504 841 //RESET THE MODULE Case : 1
jaspreetsingh 0:f2467c077504 842 else if(atoi(token)==1)
jaspreetsingh 0:f2467c077504 843 {
jaspreetsingh 0:f2467c077504 844 pc.printf("\r\nModule reset\r\n");
jaspreetsingh 0:f2467c077504 845 reset_mod();
jaspreetsingh 0:f2467c077504 846
jaspreetsingh 0:f2467c077504 847 }
jaspreetsingh 0:f2467c077504 848 //Request Particular Path File Case : 2
jaspreetsingh 0:f2467c077504 849 else if(atoi(token) == 2)
jaspreetsingh 0:f2467c077504 850 {
jaspreetsingh 0:f2467c077504 851 token = strtok(NULL,s);
jaspreetsingh 0:f2467c077504 852 sprintf(ftpget,"%s",token);
jaspreetsingh 0:f2467c077504 853 pc.printf("Ftpget is %s\r\n",ftpget);
jaspreetsingh 0:f2467c077504 854 token = strtok(NULL,s);
jaspreetsingh 0:f2467c077504 855 sprintf(ftpget1,"%s",token);
jaspreetsingh 0:f2467c077504 856 pc.printf("Ftpget1 is %s\r\n",ftpget1);
jaspreetsingh 0:f2467c077504 857 ftp_connect();
jaspreetsingh 0:f2467c077504 858 wait(5);
jaspreetsingh 0:f2467c077504 859 ftp_put(1);
jaspreetsingh 0:f2467c077504 860 }
jaspreetsingh 0:f2467c077504 861 //Request Timestamp File Case : 3
jaspreetsingh 0:f2467c077504 862 else if(atoi(token)==3)
jaspreetsingh 0:f2467c077504 863 {
jaspreetsingh 0:f2467c077504 864 pc.printf("\r\n Timestamp Sending\r\n");
jaspreetsingh 0:f2467c077504 865 token = strtok(NULL,s);
jaspreetsingh 0:f2467c077504 866 sprintf(ftpget,"%s",token);
jaspreetsingh 0:f2467c077504 867 pc.printf("Ftpget is %s\r\n",ftpget);
jaspreetsingh 0:f2467c077504 868 ftp_connect();
jaspreetsingh 0:f2467c077504 869 wait(5);
jaspreetsingh 0:f2467c077504 870 ftp_put(2);
jaspreetsingh 0:f2467c077504 871 }
jaspreetsingh 1:56e7680a6339 872 // Delete the particular Folder Case : 4
jaspreetsingh 0:f2467c077504 873 else if(atoi(token) ==4)
jaspreetsingh 0:f2467c077504 874 {
jaspreetsingh 0:f2467c077504 875 //FOR DELETING THE SELECTED FILE
jaspreetsingh 3:726f275f04ac 876 char removefile[100]="";
jaspreetsingh 1:56e7680a6339 877 token = strtok(NULL,s);
jaspreetsingh 3:726f275f04ac 878 sprintf(removefile,"%s",token);
jaspreetsingh 3:726f275f04ac 879 pc.printf("Folder to be removed is %s",removefile);
jaspreetsingh 3:726f275f04ac 880
jaspreetsingh 0:f2467c077504 881 if(removefile==NULL)
jaspreetsingh 0:f2467c077504 882 {
jaspreetsingh 0:f2467c077504 883 pc.printf("\r\n NULL Condition\r\n");
jaspreetsingh 0:f2467c077504 884 return;
jaspreetsingh 0:f2467c077504 885 }
jaspreetsingh 0:f2467c077504 886 else
jaspreetsingh 0:f2467c077504 887 {
jaspreetsingh 0:f2467c077504 888 pc.printf("\r\n Deleting requested file\r\n");
jaspreetsingh 5:11c455ebcc34 889 remove(removefile);
jaspreetsingh 0:f2467c077504 890 pc.printf("\r\n File Deleted\r\n");
jaspreetsingh 3:726f275f04ac 891 }
jaspreetsingh 0:f2467c077504 892 }
jaspreetsingh 2:e5b9aefbcdeb 893 /*
jaspreetsingh 0:f2467c077504 894 else if(atoi(token)==5)
jaspreetsingh 0:f2467c077504 895 {
jaspreetsingh 0:f2467c077504 896 pc.printf("\r\n Remote Configuration\r\n");
jaspreetsingh 0:f2467c077504 897 }
jaspreetsingh 2:e5b9aefbcdeb 898 // wait(5);
jaspreetsingh 2:e5b9aefbcdeb 899
jaspreetsingh 0:f2467c077504 900 FILE *fp1 = fopen("/sd/Query.txt","w");
jaspreetsingh 0:f2467c077504 901 fprintf(fp1,"%s",ftpget);
jaspreetsingh 0:f2467c077504 902 fclose(fp1);
jaspreetsingh 0:f2467c077504 903 */
jaspreetsingh 0:f2467c077504 904
jaspreetsingh 0:f2467c077504 905 }
jaspreetsingh 0:f2467c077504 906 else
jaspreetsingh 0:f2467c077504 907 {
jaspreetsingh 0:f2467c077504 908 pc.printf("Error getting the file");
jaspreetsingh 0:f2467c077504 909 }
jaspreetsingh 0:f2467c077504 910
jaspreetsingh 0:f2467c077504 911 ftp_get_attempt=6;
jaspreetsingh 0:f2467c077504 912 }
jaspreetsingh 0:f2467c077504 913
jaspreetsingh 0:f2467c077504 914 }
jaspreetsingh 0:f2467c077504 915 else
jaspreetsingh 0:f2467c077504 916 {
jaspreetsingh 0:f2467c077504 917 return;
jaspreetsingh 0:f2467c077504 918 }
jaspreetsingh 0:f2467c077504 919
jaspreetsingh 0:f2467c077504 920 }
jaspreetsingh 0:f2467c077504 921
jaspreetsingh 0:f2467c077504 922 void FTP_Fun()
jaspreetsingh 0:f2467c077504 923 {
jaspreetsingh 0:f2467c077504 924 /*tid6 = osThreadGetId();
jaspreetsingh 0:f2467c077504 925
jaspreetsingh 0:f2467c077504 926 while(true)
jaspreetsingh 0:f2467c077504 927 {
jaspreetsingh 0:f2467c077504 928 osSignalWait(0x1, osWaitForever);*/
FahdAnsary 9:7965c3bc3199 929 if(ftp_connect())
FahdAnsary 9:7965c3bc3199 930 {
jaspreetsingh 0:f2467c077504 931 ftp_put(0);
jaspreetsingh 0:f2467c077504 932 //downloadFTP(); // For FTPGET Function
jaspreetsingh 0:f2467c077504 933 }
jaspreetsingh 0:f2467c077504 934 return;
jaspreetsingh 0:f2467c077504 935 //}
jaspreetsingh 0:f2467c077504 936 }
jaspreetsingh 0:f2467c077504 937
jaspreetsingh 0:f2467c077504 938 //----------------------------------------------------- MAIN LOOP -----------------------------------------------------------
jaspreetsingh 0:f2467c077504 939
jaspreetsingh 0:f2467c077504 940 int main()
jaspreetsingh 0:f2467c077504 941 {
jaspreetsingh 0:f2467c077504 942
jaspreetsingh 0:f2467c077504 943 gsm_rst=0;
jaspreetsingh 0:f2467c077504 944 wait(1);
jaspreetsingh 0:f2467c077504 945 gsm_rst=1;
FahdAnsary 9:7965c3bc3199 946 wait(8);
jaspreetsingh 0:f2467c077504 947 gsm_init();
jaspreetsingh 0:f2467c077504 948 mkdir("/sd/jas",0777);
FahdAnsary 12:0ab0a2578025 949 int old_hour=100,loopcount=0;
jaspreetsingh 0:f2467c077504 950 pc.printf("\r\nHelloWorld\r\n");
jaspreetsingh 0:f2467c077504 951 sendATcommand("AT+CLTS=1\r", "OK", 15,2);
jaspreetsingh 0:f2467c077504 952 //wait(10);
jaspreetsingh 0:f2467c077504 953 GetFileDir();
jaspreetsingh 0:f2467c077504 954 FILE *fp = fopen("/sd/SiteInfo.txt","a");
FahdAnsary 9:7965c3bc3199 955 if(fp == NULL)
FahdAnsary 9:7965c3bc3199 956 {
jaspreetsingh 0:f2467c077504 957 FILE *fp = fopen("/sd/SiteInfo.txt","w");
jaspreetsingh 0:f2467c077504 958 fprintf(fp, "\r\n%s",time_stamp);
jaspreetsingh 0:f2467c077504 959
FahdAnsary 9:7965c3bc3199 960 }
FahdAnsary 9:7965c3bc3199 961 else
FahdAnsary 9:7965c3bc3199 962 {
jaspreetsingh 0:f2467c077504 963 fprintf(fp, "\r\n%s",time_stamp);
jaspreetsingh 0:f2467c077504 964 pc.printf("\r\n%s",time_stamp);
jaspreetsingh 0:f2467c077504 965 fclose(fp);
jaspreetsingh 0:f2467c077504 966 }
jaspreetsingh 0:f2467c077504 967 pc.printf("\r\n Timestamp saved");
FahdAnsary 9:7965c3bc3199 968
FahdAnsary 9:7965c3bc3199 969
FahdAnsary 9:7965c3bc3199 970 while(1)
FahdAnsary 9:7965c3bc3199 971 {
FahdAnsary 9:7965c3bc3199 972 pc.printf("\r\n%d\t%d\r\n",hour,old_hour);
lalitkumar 10:9184e2fb5974 973 sampling();
lalitkumar 10:9184e2fb5974 974 store();
lalitkumar 10:9184e2fb5974 975 FTP_Fun();
FahdAnsary 12:0ab0a2578025 976 if (old_hour!=100 && hour!=old_hour && hour<24)
FahdAnsary 9:7965c3bc3199 977 {
FahdAnsary 9:7965c3bc3199 978 pc.printf("\r\nhour changed");
FahdAnsary 9:7965c3bc3199 979 if(ftp_connect())
FahdAnsary 9:7965c3bc3199 980 {
FahdAnsary 9:7965c3bc3199 981 sprintf(filenamefft,"%s",timestampname_old);
FahdAnsary 9:7965c3bc3199 982 sprintf(pathfft,"%s",timestamppath_old);
FahdAnsary 9:7965c3bc3199 983 ftp_put(0);
FahdAnsary 9:7965c3bc3199 984 }
FahdAnsary 9:7965c3bc3199 985 downloadFTP(); // For FTPGET Function
FahdAnsary 9:7965c3bc3199 986 }
lalitkumar 10:9184e2fb5974 987 pc.printf("\r\n Complete Done");
FahdAnsary 9:7965c3bc3199 988 old_hour=hour;
FahdAnsary 9:7965c3bc3199 989 sprintf(timestampname_old,timestampname);
FahdAnsary 9:7965c3bc3199 990 sprintf(timestamppath_old,timestamppath);
FahdAnsary 12:0ab0a2578025 991 if(hour%2>0 || loopcount>120)
FahdAnsary 9:7965c3bc3199 992 {
FahdAnsary 12:0ab0a2578025 993 if((minute>3 && minute<6)||(loopcount>120))
FahdAnsary 9:7965c3bc3199 994 {
FahdAnsary 12:0ab0a2578025 995 loopcount=0;
FahdAnsary 9:7965c3bc3199 996 reset_mod();
FahdAnsary 9:7965c3bc3199 997 }
jaspreetsingh 0:f2467c077504 998 }
jaspreetsingh 0:f2467c077504 999 //wait(10);
jaspreetsingh 0:f2467c077504 1000 }
FahdAnsary 9:7965c3bc3199 1001
jaspreetsingh 0:f2467c077504 1002 }