Hello,
I'm trying to link a CR350 and a "fasttrack/wavecom like" modem (ercogener 325e, it's the very same).
I've set my modem first with a direct link on my laptop with these parameters :
AT+CPIN? --->>> ("READY", pin is deactivated)
AT+IPR=115200
AT+IFC=0,0
Then I save the profile :
AT+W
And so I've enter this on DevConfig Utility on the PPP page :
Modem dial string : AT+CGDCONT=1,"IP","fipbouygtel.com";ATD*99***1#
Modem dial response : CONNECT
And finally I've made a program that I'll put below.
So after a time (1-2 min) I eventually get an IP but this IP doesn't stay and it's unpingable. As I saw some time on the PPP window "ppp state: user interrupt" I suspect something in my program that try 2 access at the same time or my loop are wrong, can you please help me ? Here my prog, I just let the connexion + update a DynDNS service (commented for now), and some light measure :
'2024-08-07
'general
Public BattV
Public PTemp_C
Public TimeOffset="NAN"
Public PingMe
', TraceMessage As String * 100
Public myIP As String *15
'Public Dest As String *300, LastRx_Secs As Long
Public MessageSLOW As String *40
'maj heure
Dim rTime(9)
Alias rTime(1)= Time_Year
Alias rTime(2)= Time_Month
Alias rTime(3)= Time_DayOfMonth
Alias rTime(4)= Time_HourOfDay
Alias rTime(5)= Time_Minutes
Alias rTime(6)= Time_Seconds
Alias rTime(7)= Time_Microseconds
Alias rTime(8)= Time_DayOfWeek
Alias rTime(9)= Time_DayOfYear
Units BattV=Volts
Units PTemp_C=Deg C
'----------MODEM parametres
Const Modem_baud = 115200
Const Modem_port = COMRS232
Const Modem_return = CHR(13)
Const Modem_ok = CHR(10)&"OK"
'Public TelecomFlag As Boolean
Public TelecomStartTime = 5 'UTC
Public TelecomStopTime = 22 'UTC
'----------MODEM parametres
'----------DynDNS parametres
Dim Socket
Dim SocketResponse As String * 200
Dim pppInfo(9) As String *32
Dim UDDNScont = 0
Const dyndnshostname="cr300-labo.dyndns.info"
Const dyndnsauth="thepassword"
'Const SocketGetRequest="GET /nic/update?hostname="+dyndnshostname+"&myip=ipaddress&wildcard=NOCHG&mx=NOCHG&backmx=NOCHG HTTP/1.0"+CHR(13)+CHR(10)
'Const SocketGetRequest="GET /nic/update?hostname="+dyndnshostname+"&myip="+myIP+CHR(13)+CHR(10)
Const SocketGetRequest="GET /nic/update?hostname="+dyndnshostname+"&myip="
'----------DynDNS parametres
'---------MODEM sous-routine
Sub ModemON 'démarrage modem
SW12 (SW12_1,1 )
Delay(1,30,sec)
SerialOpen(Modem_port,Modem_baud,0,20000,0,0,0)
SerialOut (COMRS232,"AT+CGATT=1" & Modem_return,Modem_ok,3,200)
SerialOut (COMRS232,"AT+CGDCONT=1,'IP','fipbouygtel.com'" & Modem_return,Modem_ok,3,200)
SerialOut (COMRS232,"AT+CGACT=1,1" & Modem_return,Modem_ok,3,200)
SerialOut (COMRS232,"ATD*99***1#" & Modem_return,Modem_ok,3,200)
'If myIP="" OR myIP="0.0.0.0"
myIP=PPPOpen
'EndIf
Delay(1,10,sec)
EndSub
Sub ModemOFF 'arret modem
PPPClose
SerialOpen(Modem_port,Modem_baud,0,20000,100)
SerialOut(Modem_port,"AT+CFUN=0" & Modem_return,Modem_ok,3,200)
Delay(1,5,sec)
SerialOut(Modem_port,"AT+CPWROFF" & Modem_return,Modem_ok,3,200)
Delay(1,10,sec)
SerialClose(Modem_port)
SW12 (SW12_1,0 )
Delay(1,10,sec
EndSub
Sub UpdateDDNS 'maj du DynDNS
Socket=TCPOpen("members.dyndns.org",80,8245)
If Socket<>0 Then
SerialOut(Socket,SocketGetRequest+myIP+CHR(13)+CHR(10),"",0,0)
SerialOut(Socket,"Host: members.dyndns.org "+CHR(13)+CHR(10),"",0,0)
SerialOut(Socket,"Authorization: Basic "+dyndnsauth+CHR(13)+CHR(10),"",0,0)
SerialOut(Socket,"User-Agent: Company - Device - Version Number"+CHR(13)+CHR(10),"",0,0)
SerialOut(Socket,CHR(13)+CHR(10),"",0,0)
SerialIn(SocketResponse,Socket,1000,"",200)
SplitStr (pppInfo,SocketResponse,CHR(13)+CHR(10),9,5)
UDDNScont = UDDNScont+1
EndIf
EndSub
DataTable(soh,True,-1)
DataInterval(0,1,Min,10)
Minimum(1,BattV,IEEE4,False,False)
Average(1,PTemp_C,IEEE4,False)
EndTable
'---------MODEM sous-routine
'Main Program
BeginProg
'Main Scan
Scan(10,Sec,1,0)
Battery(BattV)
PanelTemp(PTemp_C,4000)
Calltable soh
NextScan
'---------MODEM slowsequence
SlowSequence
Scan(1, Min, 3, 0)
If BattV >=11.25 Then
RealTime (rTime)
If Time_HourOfDay >= TelecomStartTime AND Time_HourOfDay <= TelecomStopTime Then
ModemON
PingMe=PingIP ("www.google.com",10000,1)
TimeOffset = NetworkTimeProtocol ("145.238.203.14",0,1000)
If myIP<>"" OR myIP="0.0.0.0" Then
'UpdateDDNS
MessageSLOW="ModemON et ping OK"
Else
MessageSLOW="ModemON mais pas de ping"
myIP=""
'ModemON
EndIf
Else
'IPTrace (TraceMessage)
MessageSLOW="Batt low et/ou horaire nuit"
EndIf
Else
ModemOFF
MessageSLOW="Batt low"
EndIf
Next Scan
EndSequence
'---------MODEM slowsequence
EndProg