Created
May 2, 2021 17:06
-
-
Save dj1711572002/7c57404d6ddb0b356c50d04bc15ab404 to your computer and use it in GitHub Desktop.
M5StickC_NTRIP_RecivedData_Frame_Viewer_02.ino
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* 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 = "SSID";//Wifi SSID | |
const char* password = "Pass";//WiFi pass | |
char* host ="IP address";;//NTRIP server IP | |
int httpPort =2101;//port 2101 is default port of NTRIP caster | |
char* mntpnt ="mount point";// "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]; | |
uint8_t 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,32,33);//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"); | |
char ggac[]={"$GNGGA,124733.13,3612.27759,N,13756.95161,E,4,12,0.80,608.5,M,36.7,M,0.1,0000*6C\r\n"};//Matsumoto Sample | |
if(!ntrip_c.reqRaw(host,httpPort,mntpnt,user,passwd,ggac)){ | |
// 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.write(ch);//Direct Send binary Groove | |
Serial.print(ch,HEX); | |
Serial.print(","); | |
//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[%d] =%d\n\r",frameNo,frameNo,rtcmfd[i+2]); | |
for (k=0;k<rtcmfd[i+2]+6;k++) | |
{ | |
frmdata[k]=(uint8_t)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