\n <\/td>\n | #include<\/span> "<\/span>application.h"<\/span><\/span><\/td>\n <\/tr>\n \n <\/td>\n | \n<\/td>\n <\/tr>\n | \n <\/td>\n | SYSTEM_MODE<\/span>(SEMI_AUTOMATIC);<\/td>\n <\/tr>\n \n <\/td>\n | SYSTEM_THREAD<\/span>(ENABLED);<\/td>\n <\/tr>\n \n <\/td>\n | \n<\/td>\n <\/tr>\n | \n <\/td>\n | STARTUP<\/span>(prepare());<\/td>\n <\/tr>\n \n <\/td>\n | \n<\/td>\n <\/tr>\n | \n <\/td>\n | \n<\/td>\n <\/tr>\n | \n <\/td>\n | \n<\/td>\n <\/tr>\n | \n <\/td>\n | void<\/span> prepare<\/span>() {<\/td>\n <\/tr>\n \n <\/td>\n | \n<\/td>\n <\/tr>\n | \n <\/td>\n | //<\/span> Set the prefix so we can't lose it<\/span><\/td>\n <\/tr>\n \n <\/td>\n | System.set<\/span>(SYSTEM_CONFIG_SOFTAP_PREFIX, "<\/span>Smart"<\/span><\/span>);<\/td>\n <\/tr>\n \n <\/td>\n | \n<\/td>\n <\/tr>\n | \n <\/td>\n | }<\/td>\n <\/tr>\n | \n <\/td>\n | \n<\/td>\n <\/tr>\n | \n <\/td>\n | bool<\/span> boolStartConnect = false<\/span>;<\/td>\n <\/tr>\n \n <\/td>\n | \n<\/td>\n <\/tr>\n | \n <\/td>\n | void<\/span> timer_10sec_connect<\/span>() {<\/td>\n <\/tr>\n \n <\/td>\n | \n<\/td>\n <\/tr>\n | \n <\/td>\n | //<\/span>WiFi.listen(true); // go to listen mode<\/span><\/td>\n <\/tr>\n \n <\/td>\n | \n<\/td>\n <\/tr>\n | \n <\/td>\n | //<\/span>Serial.println("in 10sec timer going to do connect()");<\/span><\/td>\n <\/tr>\n \n <\/td>\n | Particle.connect<\/span>();<\/td>\n <\/tr>\n \n <\/td>\n | boolStartConnect = true<\/span>;<\/td>\n <\/tr>\n \n <\/td>\n | }<\/td>\n <\/tr>\n | \n <\/td>\n | Timer timerParticleConnect<\/span>(10000<\/span>, timer_10sec_connect, true<\/span>); //<\/span> one shot timer for connectivity<\/span><\/td>\n <\/tr>\n \n <\/td>\n | \n<\/td>\n <\/tr>\n | \n <\/td>\n | byte mac[6<\/span>];<\/td>\n <\/tr>\n \n <\/td>\n | char<\/span> strVersion[32<\/span>];<\/td>\n <\/tr>\n \n <\/td>\n | String sV<\/span> = "<\/span>20171230-1400-01"<\/span><\/span>;<\/td>\n <\/tr>\n \n <\/td>\n | \n<\/td>\n <\/tr>\n | \n <\/td>\n | void<\/span> setup<\/span>() {<\/td>\n <\/tr>\n \n <\/td>\n | \n<\/td>\n <\/tr>\n | \n <\/td>\n | delay<\/span> (3000<\/span>);<\/td>\n <\/tr>\n \n <\/td>\n | //<\/span> Start serial at 9600 baud<\/span><\/td>\n <\/tr>\n \n <\/td>\n | Serial.begin<\/span>(9600<\/span>);<\/td>\n <\/tr>\n \n <\/td>\n | Serial1.begin<\/span>(115200<\/span>); //<\/span> BT module<\/span><\/td>\n <\/tr>\n \n <\/td>\n | \n<\/td>\n <\/tr>\n | \n <\/td>\n | //<\/span> Update version as property functions can't be in global scope<\/span><\/td>\n <\/tr>\n \n <\/td>\n | sV<\/span>.concat<\/span>("<\/span>_"<\/span><\/span>);<\/td>\n <\/tr>\n \n <\/td>\n | sV<\/span>.concat<\/span>(System.version<\/span>());<\/td>\n <\/tr>\n \n <\/td>\n | sV<\/span>.toCharArray<\/span>(strVersion, 32<\/span>);<\/td>\n <\/tr>\n \n <\/td>\n | \n<\/td>\n <\/tr>\n | \n <\/td>\n | //<\/span> Spark read/write variables<\/span><\/td>\n <\/tr>\n \n <\/td>\n | Particle.variable<\/span>("<\/span>version"<\/span><\/span>, strVersion, STRING);<\/td>\n <\/tr>\n \n <\/td>\n | \n<\/td>\n <\/tr>\n | \n <\/td>\n | \n<\/td>\n <\/tr>\n | \n <\/td>\n | Particle.function<\/span>("<\/span>reset"<\/span><\/span>, callReset);<\/td>\n <\/tr>\n \n <\/td>\n | Serial.println<\/span>("<\/span>start of setup 0 functions"<\/span><\/span>);<\/td>\n <\/tr>\n \n <\/td>\n | \n<\/td>\n <\/tr>\n | \n <\/td>\n | \n<\/td>\n <\/tr>\n | \n <\/td>\n | //<\/span>delay(500);<\/span><\/td>\n <\/tr>\n \n <\/td>\n | //<\/span>WiFi.connect();<\/span><\/td>\n <\/tr>\n \n <\/td>\n | \n<\/td>\n <\/tr>\n | \n <\/td>\n | //<\/span>Particle.connect();<\/span><\/td>\n <\/tr>\n \n <\/td>\n | Serial.println<\/span>("<\/span>start of setup 1 connect"<\/span><\/span>);<\/td>\n <\/tr>\n \n <\/td>\n | \n<\/td>\n <\/tr>\n | \n <\/td>\n | //<\/span>delay(2000);<\/span><\/td>\n <\/tr>\n \n <\/td>\n | \n<\/td>\n <\/tr>\n | \n <\/td>\n | timerParticleConnect.start<\/span>(); //<\/span> just in case<\/span><\/td>\n <\/tr>\n \n <\/td>\n | \n<\/td>\n <\/tr>\n | \n <\/td>\n | WiFi.macAddress<\/span>(mac); //<\/span> Save the particle mac address<\/span><\/td>\n <\/tr>\n \n <\/td>\n | \n<\/td>\n <\/tr>\n | \n <\/td>\n | Serial.println<\/span>("<\/span>start of setup 1 wifi"<\/span><\/span>);<\/td>\n <\/tr>\n \n <\/td>\n | \n<\/td>\n <\/tr>\n | \n <\/td>\n | \n<\/td>\n <\/tr>\n | \n <\/td>\n | }<\/td>\n <\/tr>\n | \n <\/td>\n | \n<\/td>\n <\/tr>\n | \n <\/td>\n | \n<\/td>\n <\/tr>\n | \n <\/td>\n | int<\/span> callReset<\/span>(String nonsenseArg){<\/td>\n <\/tr>\n \n <\/td>\n | \n<\/td>\n <\/tr>\n | \n <\/td>\n | Serial.println<\/span>("<\/span>Going to reset device now due to cloud function call!"<\/span><\/span>);<\/td>\n <\/tr>\n \n <\/td>\n | Particle.publish<\/span>("<\/span>info"<\/span><\/span>, "<\/span>Going to reset device now due to cloud function call!"<\/span><\/span>, 60<\/span>, PRIVATE);<\/td>\n <\/tr>\n \n <\/td>\n | \n<\/td>\n <\/tr>\n | \n <\/td>\n | delay<\/span>(2000<\/span>); //<\/span> 2 seconds<\/span><\/td>\n <\/tr>\n \n <\/td>\n | \n<\/td>\n <\/tr>\n | \n <\/td>\n | System.reset<\/span>();<\/td>\n <\/tr>\n \n <\/td>\n | \n<\/td>\n <\/tr>\n | \n <\/td>\n | return<\/span> 1<\/span>;<\/td>\n <\/tr>\n \n <\/td>\n | \n<\/td>\n <\/tr>\n | \n <\/td>\n | }<\/td>\n <\/tr>\n | \n <\/td>\n | \n<\/td>\n <\/tr>\n | \n <\/td>\n | void<\/span> loop<\/span>() {<\/td>\n <\/tr>\n \n <\/td>\n | \n<\/td>\n <\/tr>\n | \n <\/td>\n | }<\/td>\n <\/tr>\n <\/table>\n<\/div>\n\n\n <\/div>\n\n <\/div>\n<\/div>\n\n <\/div>\n | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |