trevor1:
74, 125, 224, 72
rickkas7, thanks so much for your prompt reply. I did try running the example code verbatim as a starting point. I have since adjusted the code to have the IP 8.8.8.8 which I believe is the IPv4 address of googles servers. I tried the example code listed above with the address changed to:
byte server[] = { 8, 8, 8, 8 }; // Google
This did not work. I wasn't sure if the cell modem was appropriately initialized so I tried to run the TCP example code on top of the tracker-edgeV15 software for the Tracker One:
#include "Particle.h"
#include "tracker_config.h"
#include "tracker.h"
#include <fcntl.h>
SYSTEM_THREAD(ENABLED);
SYSTEM_MODE(SEMI_AUTOMATIC);
PRODUCT_ID(TRACKER_PRODUCT_ID);
PRODUCT_VERSION(TRACKER_PRODUCT_VERSION);
STARTUP(
Tracker::startup(););
SerialLogHandler logHandler(115200, LOG_LEVEL_TRACE, {
{"app.gps.nmea", LOG_LEVEL_INFO},
{"app.gps.ubx", LOG_LEVEL_INFO},
{"ncp.at", LOG_LEVEL_INFO},
{"net.ppp.client", LOG_LEVEL_INFO},
});
TCPClient client;
byte server[] = { 8, 8, 8, 8 }; // Google
void setupTCP()
{
Log.info("connecting...");
if (client.connect(server, 80))
{
Log.info("connected");
client.println("GET /search?q=unicorn HTTP/1.0");
client.println("Host: www.google.com");
client.println("Content-Length: 0");
client.println();
}
else
{
Log.info("connection failed");
}
}
void loopTCP()
{
if (client.available())
{
char c = client.read();
//Log.info(c);
}
if (!client.connected())
{
//Serial.println();
Log.info("disconnecting.");
client.stop();
for(;;);
}
}
void testFileOpen()
{
int fd = open("test.txt", O_RDWR | O_CREAT | O_TRUNC);
if (fd != -1)
{
Log.info("opened");
close(fd);
}
else
{
Log.info("not opened");
}
}
void setup()
{
waitFor(Serial.isConnected, 30000);
testFileOpen();
Tracker::instance().init();
}
void loop()
{
Tracker::instance().loop();
if(millis()>120000)
{
setupTCP();
loopTCP();
}
}
Here is the output log from this code (as much as my serial logger CoolTerm stores):
sh secure connection
0000003730 [comm.dtls] INFO: session has 0 uses
0000003738 [comm.dtls] INFO: (CMPL,RENEG,NO_SESS,ERR) restoreStatus=0
0000003739 [comm.dtls] INFO: out_ctr 0,1,0,0,0,0,3,41, next_coap_id=950
0000003739 [comm.dtls] INFO: restored session from persisted session data. next_msg_id=2384
0000003740 [comm.dtls] INFO: session cmd (CLS,DIS,MOV,LOD,SAV): 2
0000003756 [hal] TRACE: Cached ESP32 NCP firmware version: 7
0000003956 [hal] TRACE: Cached ESP32 NCP firmware version: 7
0000003968 [comm.protocol.handshake] INFO: Skipping HELLO message
0000003971 [comm.protocol] INFO: Checksum has not changed; not sending application DESCRIBE
0000003971 [comm.protocol] INFO: Checksum has not changed; not sending subscriptions
0000004329 [comm.dtls] INFO: session cmd (CLS,DIS,MOV,LOD,SAV): 4
0000004329 [comm.protocol] TRACE: Reply recieved: type=2, code=0
0000004330 [comm.protocol] TRACE: message id 2385 complete with code 0.00
0000004330 [comm.protocol] TRACE: rcv'd message type=13
0000004531 [comm.protocol] TRACE: Reply recieved: type=2, code=0
0000004531 [comm.protocol] TRACE: message id 2386 complete with code 0.00
0000004532 [comm.protocol] TRACE: rcv'd message type=13
0000004548 [comm.protocol] TRACE: Reply recieved: type=2, code=0
0000004548 [comm.protocol] TRACE: message id 2387 complete with code 0.00
0000004549 [comm.protocol] TRACE: rcv'd message type=13
0000004649 [system] INFO: Cloud connected
0000004720 [app.gps.ubx] INFO: enable PUBX-POSITION
0000004727 [app.gps.ubx] INFO: enable PUBX-SVSTATUS
0000004730 [app.gps.ubx] INFO: enable PUBX-TIME
0000004754 [app.gps.ubx] INFO: enable GPS
0000004754 [app.gps.ubx] INFO: enable QZSS
0000004754 [app.gps.ubx] INFO: enable SBAS
0000004754 [app.gps.ubx] INFO: enable Galileo
0000004755 [app.gps.ubx] INFO: enable BeiDou
0000004755 [app.gps.ubx] INFO: enable GLONASS
0000004758 [app.gps.ubx] INFO: set to power management mode 0
0000004761 [app.gps.ubx] INFO: set dynamic platform model to 0
0000004764 [app] TRACE: evaluatePublish first
0000004765 [app] TRACE: waiting for stable GNSS lock for triggers
0000004767 [app] INFO: cloud sent: {"cmd":"sync","time":1636123842,"hash":"78B454AB23887B369800A1766B21C878"}
0000004768 [app] TRACE: evaluatePublish first
0000004768 [app] TRACE: waiting for stable GNSS lock for triggers
0000005008 [comm.protocol] TRACE: Reply recieved: type=2, code=0
0000005008 [comm.protocol] TRACE: message id 2388 complete with code 0.00
0000005010 [comm.protocol] TRACE: rcv'd message type=13
0000005574 [comm.protocol] TRACE: rcv'd message type=8
0000005768 [app] TRACE: evaluatePublish first
0000005768 [app] TRACE: waiting for stable GNSS lock for triggers
0000006768 [app] TRACE: evaluatePublish first
0000006768 [app] TRACE: waiting for stable GNSS lock for triggers
0000007768 [app] TRACE: evaluatePublish first
0000007768 [app] TRACE: waiting for stable GNSS lock for triggers
0000008768 [app] TRACE: evaluatePublish first
0000008768 [app] TRACE: waiting for stable GNSS lock for triggers
0000009768 [app] TRACE: evaluatePublish first
0000009768 [app] TRACE: publishing from triggers
0000009768 [app] INFO: publishing now...
0000009770 [app] TRACE: extending execution
0000009790 [system.nm] TRACE: Request to power on the interface
0000010109 [hal] ERROR: Not found response
0000010129 [hal] ERROR: CMD0 response error, expect 0x1, response 0
0000010130 [hal] ERROR: Please restart slave and test again,error code:264
0000012193 [ncp.esp32.at] TRACE: > AT
0000012195 [ncp.esp32.at] TRACE: < OK
0000013196 [ncp.esp32.client] TRACE: NCP ready to accept AT commands
0000013198 [ncp.esp32.at] TRACE: > AT+MVER
0000013200 [ncp.esp32.at] TRACE: < 7
0000013200 [ncp.esp32.at] TRACE: < OK
0000013202 [ncp.esp32.at] TRACE: > AT+GETMAC=0
0000013205 [ncp.esp32.at] TRACE: < +GETMAC: "30:ae:a4:ac:3d:04"
0000013205 [ncp.esp32.at] TRACE: < OK
0000013208 [ncp.esp32.at] TRACE: > AT+CMUX=0
0000013210 [ncp.esp32.at] TRACE: < OK
0000013211 [ncp.esp32.mux] INFO: Starting GSM07.10 muxer
0000013211 [ncp.esp32.mux] INFO: Openning mux channel 0
0000013212 [ncp.esp32.mux] INFO: GSM07.10 muxer thread started
0000013219 [ncp.esp32.mux] INFO: Openning mux channel 1
0000013230 [ncp.esp32.at] TRACE: > AT
0000013239 [ncp.esp32.at] TRACE: < OK
0000013243 [ncp.esp32.at] TRACE: > AT+CWDHCP=0,3
0000013250 [ncp.esp32.at] TRACE: < OK
0000013250 [ncp.esp32.client] TRACE: NCP state changed: 1
0000013250 [system.nm] TRACE: Interface 5 power state changed: 2
0000013255 [ncp.esp32.at] TRACE: > AT+CWLAP
0000015367 [ncp.esp32.at] TRACE: < +CWLAP:(0,"Orange TV.b",-53,"fa:8f:ca:78:23:d3",6)
0000015368 [ncp.esp32.at] TRACE: < +CWLAP:(3,"Vita-Corp",-54,"74:ac:b9:e0:ec:bb",11)
0000015369 [ncp.esp32.at] TRACE: < +CWLAP:(3,"Vita-Guest",-57,"76:ac:b9:90:ec:bb",11)
0000015370 [ncp.esp32.at] TRACE: < +CWLAP:(3,"Vita-Corp",-62,"74:ac:b9:e0:ea:3c",11)
0000015372 [ncp.esp32.at] TRACE: < +CWLAP:(3,"Vita-Guest",-63,"76:ac:b9:90:ea:3c",11)
0000015376 [ncp.esp32.at] TRACE: < +CWLAP:(3,"Vita-Corp",-65,"74:ac:b9:e0:ed:72",11)
0000015377 [ncp.esp32.at] TRACE: < +CWLAP:(3,"Vita-Guest",-66,"76:ac:b9:90:ed:72",11)
0000015378 [ncp.esp32.at] TRACE: < +CWLAP:(3,"LUND",-69,"e0:cb:bc:88:a7:6e",1)
0000015380 [ncp.esp32.at] TRACE: < +CWLAP:(0,"Chromecast - Blueberry.m",-70,"fa:8f:ca:59:53:ef",6)
0000015381 [ncp.esp32.at] TRACE: < +CWLAP:(3,"",-71,"fc:ec:da:ff:49:3b",1)
0000015382 [ncp.esp32.at] TRACE: < +CWLAP:(0,"Derek M Office.b",-71,"fa:8f:ca:90:4b:25",6)
0000015386 [ncp.esp32.at] TRACE: < +CWLAP:(5,"",-73,"de:cb:bc:88:a7:6e",1)
0000015388 [ncp.esp32.at] TRACE: < +CWLAP:(3,"Stargate",-74,"f6:9f:c2:6c:94:13",6)
0000015389 [ncp.esp32.at] TRACE: < +CWLAP:(0,"Chromecast - Plum.b",-75,"fa:8f:ca:91:f8:d5",6)
0000015391 [ncp.esp32.at] TRACE: < +CWLAP:(3,"",-75,"fe:ec:da:17:0b:93",6)
0000015392 [ncp.esp32.at] TRACE: < +CWLAP:(3,"",-75,"82:83:c2:d3:a1:fd",11)
0000015393 [ncp.esp32.at] TRACE: < +CWLAP:(5,"corp-wifi",-75,"fc:ec:da:ff:60:55",11)
0000015395 [ncp.esp32.at] TRACE: < +CWLAP:(0,"UID Wi-Fi_IoT",-75,"fe:ec:da:9f:60:55",11)
0000015396 [ncp.esp32.at] TRACE: < +CWLAP:(3,"",-75,"fe:ec:da:af:60:55",11)
0000015397 [ncp.esp32.at] TRACE: < +CWLAP:(3,"DDS extreme",-75,"74:83:c2:d3:a1:fd",11)
0000015399 [ncp.esp32.at] TRACE: < +CWLAP:(3,"",-76,"fc:ec:da:77:0b:93",6)
0000015403 [ncp.esp32.at] TRACE: < +CWLAP:(3,"",-79,"06:18:d6:a0:55:47",1)
0000015404 [ncp.esp32.at] TRACE: < +CWLAP:(5,"corp-wifi",-79,"04:18:d6:a0:55:47",1)
0000015405 [ncp.esp32.at] TRACE: < +CWLAP:(3,"pkasemir corp1009_IoT",-81,"f6:9f:c2:0a:f8:fc",1)
0000015407 [ncp.esp32.at] TRACE: < +CWLAP:(3,"",-81,"fa:9f:c2:0a:f8:fc",1)
0000015408 [ncp.esp32.at] TRACE: < +CWLAP:(0,"pkasemir guest 6",-81,"f0:9f:c2:0a:f8:fc",1)
0000015409 [ncp.esp32.at] TRACE: < +CWLAP:(3,"pkasemir-lan100",-82,"74:ac:b9:a4:77:d5",1)
0000015410 [ncp.esp32.at] TRACE: < +CWLAP:(3,"",-82,"fa:9f:c2:a4:ca:93",6)
0000015411 [ncp.esp32.at] TRACE: < +CWLAP:(3,"",-83,"76:ac:b9:94:77:d5",1)
0000015413 [ncp.esp32.at] TRACE: < +CWLAP:(3,"",-83,"74:ac:b9:53:e1:b2",1)
0000015417 [ncp.esp32.at] TRACE: < +CWLAP:(0,"pkasemir guest 'm'",-83,"f0:9f:c2:a4:ca:93",6)
0000015418 [ncp.esp32.at] TRACE: < +CWLAP:(3,"pkasemir corp1009_IoT",-83,"b6:fb:e4:90:f7:40",11)
0000015419 [ncp.esp32.at] TRACE: < +CWLAP:(3,"",-84,"12:9f:c2:6e:a9:17",1)
0000015421 [ncp.esp32.at] TRACE: < +CWLAP:(3,"FieldFOXm",-84,"f2:9f:c2:6e:a9:17",1)
0000015422 [ncp.esp32.at] TRACE: < +CWLAP:(3,"NETGEAR52",-84,"9c:3d:cf:14:85:5c",3)
0000015423 [ncp.esp32.at] TRACE: < +CWLAP:(3,"CENN. REALTY ADVISORS",-84,"ac:84:c6:a0:87:6b",9)
0000015424 [ncp.esp32.at] TRACE: < +CWLAP:(3,"",-85,"b6:fb:e4:a0:f7:40",11)
0000015426 [ncp.esp32.at] TRACE: < +CWLAP:(3,"FLATIRONS-Guest_EXT",-90,"28:80:88:e2:4f:5d",11)
0000015427 [ncp.esp32.at] TRACE: < +CWLAP:(0,"assetsense-guest",-92,"5a:ef:68:a3:95:63",2)
0000015429 [ncp.esp32.at] TRACE: < +CWLAP:(3,"ARLO_VMB_4731864147",-93,"a4:11:62:6f:a7:00",6)
0000015431 [ncp.esp32.at] TRACE: < OK
0000016435 [app] INFO: {"cmd":"loc","time":1636123847,"loc":{"lck":1,"time":1584835205,"lat":39.92010117,"lon":-105.11060333,"alt":1660.463,"hd":20.35,"spd":0.00,"h_acc":3.000,"hdop~
0000016437 [app] INFO: cloud sent: {"cmd":"loc","time":1636123847,"loc":{"lck":1,"time":1584835205,"lat":39.92010117,"lon":-105.11060333,"alt":1660.463,"hd":20.35,"spd":0.00,"h_acc"~
0000016439 [app] TRACE: published and transitioning to EXECUTE
0000016445 [system.nm] TRACE: Request to power off the interface
0000016446 [ncp.esp32.mux] INFO: Stopping GSM07.10 muxer
0000016446 [ncp.esp32.mux] INFO: Gracefully stopping GSM07.10 muxer
0000016447 [ncp.esp32.mux] INFO: Closing all muxed channels
0000016447 [ncp.esp32.mux] INFO: Closing mux channel 1
0000016447 [ncp.esp32.mux] INFO: Muxed channel 2 already closed
0000016448 [ncp.esp32.mux] INFO: Muxed channel 3 already closed
0000016449 [ncp.esp32.mux] INFO: Muxed channel 4 already closed
0000017068 [comm.protocol] TRACE: Reply recieved: type=2, code=0
0000017069 [comm.protocol] TRACE: message id 2389 complete with code 0.00
0000017070 [comm.protocol] TRACE: rcv'd message type=13
0000017719 [ncp.esp32.mux] INFO: Sending CLD (multiplexer close down)
0000017727 [ncp.esp32.mux] INFO: Received response to CLD or timed out, exiting multiplexed mode
0000017727 [ncp.esp32.mux] INFO: GSM07.10 muxer thread exiting
0000017728 [ncp.esp32.mux] INFO: GSM07.10 muxer stopped
0000017729 [system.nm] TRACE: Interface 5 power state changed: 1
0000017729 [ncp.esp32.client] TRACE: Deinit modem serial.
0000017730 [system.nm] TRACE: Interface 5 power state changed: 3
0000017730 [system.nm] TRACE: Interface 5 power state changed: 1
0000017731 [ncp.esp32.client] TRACE: NCP state changed: 0
0000017731 [ncp.esp32.client] TRACE: Deinit modem serial.
0000028000 [app] INFO: location cb publish 16 timeout
0000120001 [app] INFO: connecting...
0000138251 [app] INFO: connection failed
0000138252 [app] INFO: disconnecting.
Do you have any suggestions for getting the TCP connection to work with the Tracker one? My overall goal is to perform an operation similar to that described by CanCon_ENG as described here: Best way to update local device with Particle - #3 by rickkas7
Thanks so much for your help and support!
trevor1