Skip to content

Instantly share code, notes, and snippets.

@dj1711572002
Created January 11, 2021 06:47
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dj1711572002/117354e2cbe66b181037c64de19d93db to your computer and use it in GitHub Desktop.
Save dj1711572002/117354e2cbe66b181037c64de19d93db to your computer and use it in GitHub Desktop.
M5StickC/M5Atom NTRIP Recieved Data Packet Frame Viewer
 
 
/*
* NTRIP client for Arduino Ver. 1.0.0
* NTRIPClient Sample
* Request Source Table (Source Table is basestation list in NTRIP Caster)
* Request Reference Data
*
*
*/
//#include <ESP8266WiFi.h> //Need for ESP8266
#include<M5StickC.h>
#include <WiFi.h> //Need for ESP32
#include "NTRIPClient.h"
//#include"M5Stack.h";
const char* ssid = "****";//Wifi SSID
const char* password = "+++++++";//WiFi pass
char* host ="IP address";//NTRIP server IP
int httpPort =2101;//port 2101 is default port of NTRIP caster
char* mntpnt ="-----";// "ntrip caster's mountpoint";
char* user = "";//"ntripcaster's client user";
char* passwd ="";//"ntrip caster's client password";
NTRIPClient ntrip_c;
//---debug-----
int fFlag=0;//time measeure firstg flag
int frameNo=0;
char rtcmfd[2000];
char frmdata[250];
int n=0;
int k;
//----Grove Sending----
int i;
char Flagchr;
int sendFlag1=1;
int sendFlag2=0;
int cN;
int datasu=0;
int datasu_1=0;
char rtcmCh[520];
int t,t_1;//timer
int tc,tc_1;
void setup() {
M5.begin();
// put your setup code here, to run once:
Serial.begin(115200);
Serial1.begin(115200,SERIAL_8N1,25,21);//ATOM1-Atom2 EXT RX25 TX21*******(baudrate,config,RX,TX)*******ATOM1と接続線
//Serial2.begin(115200,SERIAL_8N1,22,33);//ATOM EXT RX22 TX33*******(baudrate,config,RX,TX)*******ESP32とF9Pを接続している線
Serial2.begin(115200,SERIAL_8N1,26,32);//ATOM EXT RX22 TX33*******(baudrate,config,RX,TX)*******M5Stack Grove接続している線
delay(10);
Serial.print("Connecting to ");
//M5.Lcd.print("Connecting to ");
Serial.println(ssid);
// M5.Lcd.print(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
// M5.Lcd.print(".");
}
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
Serial.println("Requesting SourceTable.");
if(ntrip_c.reqSrcTbl(host,httpPort)){
char buffer[512];
delay(5);
while(ntrip_c.available()){
ntrip_c.readLine(buffer,sizeof(buffer));
Serial.print(buffer);
//M5.Lcd.print(buffer);
}
}
else{
Serial.println("SourceTable request error");
//M5.Lcd.print("SourceTable request error");
}
Serial.print("Requesting SourceTable is OK\n");
//M5.Lcd.print("Requesting SourceTable is OK\n");
ntrip_c.stop(); //Need to call "stop" function for next request.
Serial.println("Requesting MountPoint's Raw data");
//M5.Lcd.print("Requesting MountPoint's Raw data");
if(!ntrip_c.reqRaw(host,httpPort,mntpnt,user,passwd)){
delay(15000);
ESP.restart();
}
Serial.println("Requesting MountPoint is OK");
// M5.Lcd.print("Requesting MountPoint's Raw data");
}
void loop() {
if (M5.BtnB.wasPressed())
{
Serial.print("ButtonB RESET!!");
ESP.restart();
}
// put your main code here, to run repeatedly:
while(ntrip_c.available()) {
if(fFlag==0)// Time Check
{
//Serial.printf("RTCM Rcv_Start_time=%d\n\r",millis());
}
char ch = ntrip_c.read();
//Serial2.print(ch);
//Serial.printf("%x,",ch);
rtcmfd[n%2000]=ch;//Input to rtcm data Array binary
n++;
fFlag=1;
}
if(ntrip_c.available()!=1)
{
if(fFlag==1)
{
Serial.println();
Serial.printf("===========Rcved Packet size n=%d,In Wait_time=%d\n\r",n,millis());
fFlag=0;
}
for(i=0;i<n;i++)
{
if(rtcmfd[i]==0xd3 && rtcmfd[i+1]==0x00 )
{
frameNo++;
Serial.printf(">>>>>>>>>>>FrameNo=%d,Message length[2] =%d\n\r",frameNo,rtcmfd[i+2]);
for (k=0;k<rtcmfd[i+2]+6;k++)
{
frmdata[k]=rtcmfd[k+i];
//Serial.printf("frmdata[%d]=%x,rtcmfd[%d]=%x\n\r",k,frmdata[k],k+i,rtcmfd[k+i]);
Serial.printf("%x,",frmdata[k]);
Serial2.write(frmdata[k]);
}
//Serial2.write(0x0d);// duplicated char
//Serial2.write(0x0a);// duplicated char
Serial.printf("\n\rFrameNo=%d,Framesize_k=%d,time=%d>>>>>>>>>>>>>\n\r",frameNo,k,millis());
}
}
frameNo=0;
n=0;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment