From 401e399df673823131e3e21fb2b36c39c01f9bdc Mon Sep 17 00:00:00 2001 From: Sebastian Loh Lindholm Date: Tue, 9 Mar 2021 14:29:03 +0100 Subject: [PATCH 1/7] Updated to message structure 2 from pitipo. --- core/inc/util.h | 2 +- core/src/timecontrol.c | 132 ++++++++++++++++++++++++----------------- 2 files changed, 80 insertions(+), 54 deletions(-) diff --git a/core/inc/util.h b/core/inc/util.h index 032dd395a..8ead0ce26 100644 --- a/core/inc/util.h +++ b/core/inc/util.h @@ -95,7 +95,7 @@ extern "C"{ #define MAX_ADAPTIVE_SYNC_POINTS 512 #define USE_LOCAL_USER_CONTROL 0 -#define LOCAL_USER_CONTROL_IP "192.168.0.7" +#define LOCAL_USER_CONTROL_IP "192.168.0.18" #define USE_TEST_HOST 0 #define TESTHOST_IP LOCAL_USER_CONTROL_IP #define TESTSERVER_IP LOCAL_USER_CONTROL_IP diff --git a/core/src/timecontrol.c b/core/src/timecontrol.c index 6cb70051a..2d3bde6bf 100644 --- a/core/src/timecontrol.c +++ b/core/src/timecontrol.c @@ -34,9 +34,9 @@ #define TIME_CONTROL_HOSTNAME_BUFFER_SIZE 20 -#define TIME_CONTROL_RECEIVE_BUFFER_SIZE 54 +#define TIME_CONTROL_RECEIVE_BUFFER_SIZE 80 #define TIME_CONTROL_TASK_PERIOD_MS 1 -#define TIME_INTERVAL_NUMBER_BYTES 4 +#define INIT_PITIPO_MESSAGE_LENGTH 14 #define REPLY_TIMEOUT_S 3 #define SLEEP_TIME_GPS_CONNECTED_S 0 @@ -58,6 +58,32 @@ #define TC_SLEEP_TIME_NONEMPTY_MQ_S 0 #define TC_SLEEP_TIME_NONEMPTY_MQ_NS 0 +#define Status_index 0 +#define Length_index 2 +#define Id_index 5 +#define MessageCode_index 7 +#define MessageVersion_index 8 +#define Year_index 9 +#define Month_index 11 +#define DayOfMonth_index 12 +#define Hour_index 13 +#define Minute_index 14 +#define Second_index 15 +#define Millisecond_index 16 +#define Microsecond_index 18 +#define SecondCounter_index 20 +#define GPSMilliseconds_index 24 +#define GPSMinutes_index 32 +#define GPSWeek_index 36 +#define GPSSOW_index 38 +#define GPSSOD_index 42 +#define ETSI_index 46 +#define Latitude_index 54 +#define Longitude_index 58 +#define FixQuality_index 62 +#define SatelliteCount_index 63 + + /*------------------------------------------------------------ -- Function declarations. ------------------------------------------------------------*/ @@ -97,8 +123,7 @@ void timecontrol_task(TimeType * GPSTime, GSDType * GSD, LOG_LEVEL logLevel) { C8 TimeBuffer[TIME_CONTROL_RECEIVE_BUFFER_SIZE]; C8 LogBuffer[LOG_BUFFER_LENGTH]; I32 ReceivedNewData, i; - C8 SendData[TIME_INTERVAL_NUMBER_BYTES] = { 0, 0, 3, 0xe8 }; - //C8 SendData[4] = {0, 0, 0, 1}; + C8 PitipSetupMessage[INIT_PITIPO_MESSAGE_LENGTH] = {0, 0, 0, 0xA, 0, 0, 0, 0x17, 1, 1, 0, 0, 3, 0xE8}; struct timespec sleep_time, ref_time; C8 MqRecvBuffer[MBUS_MAX_DATALEN]; struct timeval tv, ExecTime; @@ -146,7 +171,7 @@ void timecontrol_task(TimeType * GPSTime, GSDType * GSD, LOG_LEVEL logLevel) { if (TimeControlCreateTimeChannel(ServerIPC8, ServerPortU16, &SocketfdI32, &time_addr)) { LogMessage(LOG_LEVEL_INFO, "Using time server reference"); - TimeControlSendUDPData(&SocketfdI32, &time_addr, SendData, TIME_INTERVAL_NUMBER_BYTES, 0); + TimeControlSendUDPData(&SocketfdI32, &time_addr, PitipSetupMessage, INIT_PITIPO_MESSAGE_LENGTH, 0); GPSTime->isGPSenabled = 1; } else { @@ -269,11 +294,11 @@ void timecontrol_task(TimeType * GPSTime, GSDType * GSD, LOG_LEVEL logLevel) { if (GSD->ExitU8 == 1) { if (GPSTime->isGPSenabled) { - SendData[0] = 0; - SendData[1] = 0; - SendData[2] = 0; - SendData[3] = 0; - TimeControlSendUDPData(&SocketfdI32, &time_addr, SendData, TIME_INTERVAL_NUMBER_BYTES, 0); + PitipSetupMessage[10] = 0; + PitipSetupMessage[11] = 0; + PitipSetupMessage[12] = 0; + PitipSetupMessage[13] = 0; + TimeControlSendUDPData(&SocketfdI32, &time_addr, PitipSetupMessage, INIT_PITIPO_MESSAGE_LENGTH, 0); } iExit = 1; (void)iCommClose(); @@ -319,7 +344,8 @@ static int TimeControlCreateTimeChannel(const char *name, const uint32_t port, i struct sockaddr_in *addr) { int result; struct hostent *object; - C8 packetIntervalMs[TIME_INTERVAL_NUMBER_BYTES] = { 0, 0, 0, 100 }; // Make server send with this interval while waiting for first reply + //C8 packetIntervalMs[INIT_PITIPO_MESSAGE_LENGTH] = { 0, 0, 0, 100 }; // Make server send with this interval while waiting for first reply + C8 packetIntervalMs[INIT_PITIPO_MESSAGE_LENGTH] = {0, 0, 0, 0xA, 0, 0, 0, 0x17, 1, 1, 0, 0, 0, 100}; C8 timeBuffer[TIME_CONTROL_RECEIVE_BUFFER_SIZE]; int receivedNewData = 0; struct timeval timeout = { REPLY_TIMEOUT_S, 0 }; @@ -361,7 +387,7 @@ static int TimeControlCreateTimeChannel(const char *name, const uint32_t port, i // Check for existence of remote server LogMessage(LOG_LEVEL_INFO, "Awaiting reply from time server..."); // Set send interval to be as short as possible to minimise wait for reply - TimeControlSendUDPData(sockfd, addr, packetIntervalMs, TIME_INTERVAL_NUMBER_BYTES, 0); + TimeControlSendUDPData(sockfd, addr, packetIntervalMs, INIT_PITIPO_MESSAGE_LENGTH, 0); // Set time to stop waiting for reply gettimeofday(&tEnd, NULL); @@ -371,7 +397,7 @@ static int TimeControlCreateTimeChannel(const char *name, const uint32_t port, i gettimeofday(&tCurr, NULL); TimeControlRecvTime(sockfd, timeBuffer, TIME_CONTROL_RECEIVE_BUFFER_SIZE, &receivedNewData); if (receivedNewData) { - TimeControlDecodeTimeBuffer(&tempGPSTime, timeBuffer, 0); + TimeControlDecodeTimeBuffer(&tempGPSTime, timeBuffer, 1); switch (tempGPSTime.FixQualityU8) { case FIX_QUALITY_NONE: LogMessage(LOG_LEVEL_WARNING, "Received reply from time server: no satellite fix"); @@ -497,54 +523,54 @@ static void TimeControlRecvTime(int *sockfd, C8 * buffer, int length, int *recei return; } + + static void TimeControlDecodeTimeBuffer(TimeType * GPSTime, C8 * TimeBuffer, C8 debug) { struct timeval tv; gettimeofday(&tv, NULL); - GPSTime->ProtocolVersionU8 = TimeBuffer[0]; - GPSTime->YearU16 = ((U16) TimeBuffer[1]) << 8 | TimeBuffer[2]; - GPSTime->MonthU8 = TimeBuffer[3]; - GPSTime->DayU8 = TimeBuffer[4]; - GPSTime->HourU8 = TimeBuffer[5]; - GPSTime->MinuteU8 = TimeBuffer[6]; - GPSTime->SecondU8 = TimeBuffer[7]; - GPSTime->MillisecondU16 = ((U16) TimeBuffer[8]) << 8 | TimeBuffer[9]; - GPSTime->MicroSecondU16 = 0; + GPSTime->ProtocolVersionU8 = TimeBuffer[MessageVersion_index]; + GPSTime->YearU16 = ((U16) TimeBuffer[Year_index]) << 8 | TimeBuffer[Year_index+1]; + GPSTime->MonthU8 = TimeBuffer[Month_index]; + GPSTime->DayU8 = TimeBuffer[DayOfMonth_index]; + GPSTime->HourU8 = TimeBuffer[Hour_index]; + GPSTime->MinuteU8 = TimeBuffer[Minute_index]; + GPSTime->SecondU8 = TimeBuffer[Second_index]; + GPSTime->MillisecondU16 = ((U16) TimeBuffer[Millisecond_index]) << 8 | TimeBuffer[Millisecond_index+1]; + GPSTime->MicroSecondU16 = ((U16) TimeBuffer[Microsecond_index]) << 8 | TimeBuffer[Microsecond_index+1]; GPSTime->SecondCounterU32 = - ((U32) TimeBuffer[10]) << 24 | ((U32) TimeBuffer[11]) << 16 | ((U32) TimeBuffer[12]) << 8 | - TimeBuffer[13]; + ((U32) TimeBuffer[SecondCounter_index]) << 24 | ((U32) TimeBuffer[SecondCounter_index+1]) << 16 | + ((U32) TimeBuffer[SecondCounter_index+2]) << 8 | TimeBuffer[SecondCounter_index+3]; GPSTime->GPSMillisecondsU64 = - ((U64) TimeBuffer[14]) << 56 | ((U64) TimeBuffer[15]) << 48 | ((U64) TimeBuffer[16]) << 40 | ((U64) - TimeBuffer - [17]) << - 32 | ((U64) TimeBuffer[18]) << 24 | ((U64) TimeBuffer[19]) << 16 | ((U64) TimeBuffer[20]) << 8 | - TimeBuffer[21]; + ((U64) TimeBuffer[GPSMilliseconds_index]) << 56 | ((U64) TimeBuffer[GPSMilliseconds_index+1]) << 48 | + ((U64) TimeBuffer[GPSMilliseconds_index+2]) << 40 | ((U64)TimeBuffer[GPSMilliseconds_index+3]) <<32 | + ((U64) TimeBuffer[GPSMilliseconds_index+4]) << 24 | ((U64) TimeBuffer[GPSMilliseconds_index+5]) << 16 | + ((U64) TimeBuffer[GPSMilliseconds_index+6]) << 8 | TimeBuffer[GPSMilliseconds_index+7]; GPSTime->GPSMillisecondsU64 += MS_LEAP_SEC_DIFF_UTC_GPS; GPSTime->GPSMinutesU32 = - ((U32) TimeBuffer[22]) << 24 | ((U32) TimeBuffer[23]) << 16 | ((U32) TimeBuffer[24]) << 8 | - TimeBuffer[25]; - GPSTime->GPSWeekU16 = ((U16) TimeBuffer[26]) << 8 | TimeBuffer[27]; + ((U32) TimeBuffer[GPSMinutes_index]) << 24 | ((U32) TimeBuffer[GPSMinutes_index+1]) << 16 | + ((U32) TimeBuffer[GPSMinutes_index+2]) << 8 | TimeBuffer[GPSMinutes_index+3]; + GPSTime->GPSWeekU16 = ((U16) TimeBuffer[GPSWeek_index]) << 8 | TimeBuffer[GPSWeek_index+1]; GPSTime->GPSSecondsOfWeekU32 = - ((U32) TimeBuffer[28]) << 24 | ((U32) TimeBuffer[29]) << 16 | ((U32) TimeBuffer[30]) << 8 | - TimeBuffer[31] + MS_LEAP_SEC_DIFF_UTC_GPS / 1000; + ((U32) TimeBuffer[GPSSOW_index]) << 24 | ((U32) TimeBuffer[GPSSOW_index+1]) << 16 | + ((U32) TimeBuffer[GPSSOW_index+2]) << 8 | TimeBuffer[GPSSOW_index+3] + MS_LEAP_SEC_DIFF_UTC_GPS / 1000; GPSTime->GPSSecondsOfDayU32 = - ((U32) TimeBuffer[32]) << 24 | ((U32) TimeBuffer[33]) << 16 | ((U32) TimeBuffer[34]) << 8 | - TimeBuffer[35]; + ((U32) TimeBuffer[GPSSOD_index]) << 24 | ((U32) TimeBuffer[GPSSOD_index+1]) << 16 | + ((U32) TimeBuffer[GPSSOD_index+2]) << 8 | TimeBuffer[GPSSOD_index+3]; GPSTime->ETSIMillisecondsU64 = - ((U64) TimeBuffer[36]) << 56 | ((U64) TimeBuffer[37]) << 48 | ((U64) TimeBuffer[38]) << 40 | ((U64) - TimeBuffer - [39]) << - 32 | ((U64) TimeBuffer[40]) << 24 | ((U64) TimeBuffer[41]) << 16 | ((U64) TimeBuffer[42]) << 8 | - TimeBuffer[43]; + ((U64) TimeBuffer[ETSI_index]) << 56 | ((U64) TimeBuffer[ETSI_index+1]) << 48 | + ((U64) TimeBuffer[ETSI_index+2]) << 40 | ((U64)TimeBuffer[ETSI_index+3]) << 32 | + ((U64) TimeBuffer[ETSI_index+4]) << 24 | ((U64) TimeBuffer[ETSI_index+5]) << 16 | + ((U64) TimeBuffer[ETSI_index+6]) << 8 | TimeBuffer[ETSI_index+7]; GPSTime->LatitudeU32 = - ((U32) TimeBuffer[44]) << 24 | ((U32) TimeBuffer[45]) << 16 | ((U32) TimeBuffer[46]) << 8 | - TimeBuffer[47]; + ((U32) TimeBuffer[Latitude_index]) << 24 | ((U32) TimeBuffer[Latitude_index+1]) << 16 | + ((U32) TimeBuffer[Latitude_index+2]) << 8 | TimeBuffer[Latitude_index+3]; GPSTime->LongitudeU32 = - ((U32) TimeBuffer[48]) << 24 | ((U32) TimeBuffer[49]) << 16 | ((U32) TimeBuffer[50]) << 8 | - TimeBuffer[51]; - GPSTime->FixQualityU8 = TimeBuffer[52]; - GPSTime->NSatellitesU8 = TimeBuffer[53]; + ((U32) TimeBuffer[Longitude_index]) << 24 | ((U32) TimeBuffer[Longitude_index+1]) << 16 | + ((U32) TimeBuffer[Longitude_index+2]) << 8 | TimeBuffer[Longitude_index+3]; + GPSTime->FixQualityU8 = TimeBuffer[FixQuality_index]; + GPSTime->NSatellitesU8 = TimeBuffer[SatelliteCount_index]; gettimeofday(&tv, NULL); @@ -557,23 +583,23 @@ static void TimeControlDecodeTimeBuffer(TimeType * GPSTime, C8 * TimeBuffer, C8 //LogPrintBytes(TimeBuffer,0,TIME_CONTROL_RECEIVE_BUFFER_SIZE); //LogPrint("ProtocolVersionU8: %d", GPSTime->ProtocolVersionU8); LogPrint("YearU16: %d", GPSTime->YearU16); - LogPrint("MonthU8: %d - %d", GPSTime->MonthU8, TimeBuffer[3]); + LogPrint("MonthU8: %d", GPSTime->MonthU8); LogPrint("DayU8: %d", GPSTime->DayU8); LogPrint("Time: %d:%d:%d", GPSTime->HourU8, GPSTime->MinuteU8, GPSTime->SecondU8); //LogPrint("MinuteU8: %d", GPSTime->MinuteU8); //LogPrint("SecondU8: %d", GPSTime->SecondU8); //LogPrint("MillisecondU16: %d", GPSTime->MillisecondU16); - //LogPrint("SecondCounterU32: %d", GPSTime->SecondCounterU32); - //LogPrint("GPSMillisecondsU64: %ld", GPSTime->GPSMillisecondsU64); + LogPrint("SecondCounterU32: %d - %d", GPSTime->SecondCounterU32, SecondCounter_index); + LogPrint("GPSMillisecondsU64: %ld", GPSTime->GPSMillisecondsU64); //LogPrint("GPSMinutesU32: %d", GPSTime->GPSMinutesU32); //LogPrint("GPSWeekU16: %d", GPSTime->GPSWeekU16); - //LogPrint("GPSSecondsOfWeekU32: %d", GPSTime->GPSSecondsOfWeekU32); + LogPrint("GPSSecondsOfWeekU32: %d", GPSTime->GPSSecondsOfWeekU32); //LogPrint("GPSSecondsOfDayU32: %d", GPSTime->GPSSecondsOfDayU32); //LogPrint("ETSIMillisecondsU64: %ld", GPSTime->ETSIMillisecondsU64); //LogPrint("LatitudeU32: %d", GPSTime->LatitudeU32); //LogPrint("LongitudeU32: %d", GPSTime->LongitudeU32); //LogPrint("LocalMillisecondU16: %d", GPSTime->LocalMillisecondU16); - //LogPrint("FixQualityU8: %d", GPSTime->FixQualityU8); - //LogPrint("NSatellitesU8: %d", GPSTime->NSatellitesU8); + LogPrint("FixQualityU8: %d", GPSTime->FixQualityU8); + LogPrint("NSatellitesU8: %d", GPSTime->NSatellitesU8); } } From 26a9c42a9b550283eb0c631bfe5d5c9a4f5fc2c1 Mon Sep 17 00:00:00 2001 From: Sebastian Loh Lindholm Date: Tue, 9 Mar 2021 16:26:24 +0100 Subject: [PATCH 2/7] Rename array, change debug flag. --- core/src/timecontrol.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/core/src/timecontrol.c b/core/src/timecontrol.c index 2d3bde6bf..4ea0f0e89 100644 --- a/core/src/timecontrol.c +++ b/core/src/timecontrol.c @@ -123,7 +123,7 @@ void timecontrol_task(TimeType * GPSTime, GSDType * GSD, LOG_LEVEL logLevel) { C8 TimeBuffer[TIME_CONTROL_RECEIVE_BUFFER_SIZE]; C8 LogBuffer[LOG_BUFFER_LENGTH]; I32 ReceivedNewData, i; - C8 PitipSetupMessage[INIT_PITIPO_MESSAGE_LENGTH] = {0, 0, 0, 0xA, 0, 0, 0, 0x17, 1, 1, 0, 0, 3, 0xE8}; + C8 PitipoSetupMessage[INIT_PITIPO_MESSAGE_LENGTH] = {0, 0, 0, 0xA, 0, 0, 0, 0x17, 1, 1, 0, 0, 3, 0xE8}; struct timespec sleep_time, ref_time; C8 MqRecvBuffer[MBUS_MAX_DATALEN]; struct timeval tv, ExecTime; @@ -171,7 +171,7 @@ void timecontrol_task(TimeType * GPSTime, GSDType * GSD, LOG_LEVEL logLevel) { if (TimeControlCreateTimeChannel(ServerIPC8, ServerPortU16, &SocketfdI32, &time_addr)) { LogMessage(LOG_LEVEL_INFO, "Using time server reference"); - TimeControlSendUDPData(&SocketfdI32, &time_addr, PitipSetupMessage, INIT_PITIPO_MESSAGE_LENGTH, 0); + TimeControlSendUDPData(&SocketfdI32, &time_addr, PitipoSetupMessage, INIT_PITIPO_MESSAGE_LENGTH, 0); GPSTime->isGPSenabled = 1; } else { @@ -294,11 +294,11 @@ void timecontrol_task(TimeType * GPSTime, GSDType * GSD, LOG_LEVEL logLevel) { if (GSD->ExitU8 == 1) { if (GPSTime->isGPSenabled) { - PitipSetupMessage[10] = 0; - PitipSetupMessage[11] = 0; - PitipSetupMessage[12] = 0; - PitipSetupMessage[13] = 0; - TimeControlSendUDPData(&SocketfdI32, &time_addr, PitipSetupMessage, INIT_PITIPO_MESSAGE_LENGTH, 0); + PitipoSetupMessage[10] = 0; + PitipoSetupMessage[11] = 0; + PitipoSetupMessage[12] = 0; + PitipoSetupMessage[13] = 0; + TimeControlSendUDPData(&SocketfdI32, &time_addr, PitipoSetupMessage, INIT_PITIPO_MESSAGE_LENGTH, 0); } iExit = 1; (void)iCommClose(); @@ -397,7 +397,7 @@ static int TimeControlCreateTimeChannel(const char *name, const uint32_t port, i gettimeofday(&tCurr, NULL); TimeControlRecvTime(sockfd, timeBuffer, TIME_CONTROL_RECEIVE_BUFFER_SIZE, &receivedNewData); if (receivedNewData) { - TimeControlDecodeTimeBuffer(&tempGPSTime, timeBuffer, 1); + TimeControlDecodeTimeBuffer(&tempGPSTime, timeBuffer, 0); switch (tempGPSTime.FixQualityU8) { case FIX_QUALITY_NONE: LogMessage(LOG_LEVEL_WARNING, "Received reply from time server: no satellite fix"); From f824ea07cb24ff8f247fac7a2c6a46fef7937495 Mon Sep 17 00:00:00 2001 From: Sebastian Loh Lindholm Date: Tue, 9 Mar 2021 23:05:22 +0100 Subject: [PATCH 3/7] Changed define names. --- core/src/timecontrol.c | 114 ++++++++++++++++++++--------------------- 1 file changed, 57 insertions(+), 57 deletions(-) diff --git a/core/src/timecontrol.c b/core/src/timecontrol.c index 4ea0f0e89..706d2239e 100644 --- a/core/src/timecontrol.c +++ b/core/src/timecontrol.c @@ -58,30 +58,30 @@ #define TC_SLEEP_TIME_NONEMPTY_MQ_S 0 #define TC_SLEEP_TIME_NONEMPTY_MQ_NS 0 -#define Status_index 0 -#define Length_index 2 -#define Id_index 5 -#define MessageCode_index 7 -#define MessageVersion_index 8 -#define Year_index 9 -#define Month_index 11 -#define DayOfMonth_index 12 -#define Hour_index 13 -#define Minute_index 14 -#define Second_index 15 -#define Millisecond_index 16 -#define Microsecond_index 18 -#define SecondCounter_index 20 -#define GPSMilliseconds_index 24 -#define GPSMinutes_index 32 -#define GPSWeek_index 36 -#define GPSSOW_index 38 -#define GPSSOD_index 42 -#define ETSI_index 46 -#define Latitude_index 54 -#define Longitude_index 58 -#define FixQuality_index 62 -#define SatelliteCount_index 63 +#define PROTO2_STATUS_INDEX 0 +#define PROTO2_LENGTH_INDEX 2 +#define PROTO2_ID_INDEX 5 +#define PROTO2_MESSAGE_CODE_INDEX 7 +#define PROTO2_MESSAGE_VERSION_INDEX 8 +#define PROTO2_YEAR_INDEX 9 +#define PROTO2_MONTH_INDEX 11 +#define PROTO2_DAYOFMONTH_INDEX 12 +#define PROTO2_HOUR_INDEX 13 +#define PROTO2_MINUTE_INDEX 14 +#define PROTO2_SECOND_INDEX 15 +#define PROTO2_MILLISECOND_INDEX 16 +#define PROTO2_MICROSECOND_INDEX 18 +#define PROTO2_SECOND_COUNTER_INDEX 20 +#define PROTO2_GPS_MILLISECONDS_INDEX 24 +#define PROTO2_GPS_MINUTES_INDEX 32 +#define PROTO2_GPS_WEEK_INDEX 36 +#define PROTO2_GPSSOW_INDEX 38 +#define PROTO2_GPSSOD_INDEX 42 +#define PROTO2_ETSI_INDEX 46 +#define PROTO2_LATITUDE_INDEX 54 +#define PROTO2_LONGITUDE_INDEX 58 +#define PROTO2_FIX_QUALITY_INDEX 62 +#define PROTO2_SATELLITE_COUNT_INDEX 63 /*------------------------------------------------------------ @@ -530,47 +530,47 @@ static void TimeControlDecodeTimeBuffer(TimeType * GPSTime, C8 * TimeBuffer, C8 gettimeofday(&tv, NULL); - GPSTime->ProtocolVersionU8 = TimeBuffer[MessageVersion_index]; - GPSTime->YearU16 = ((U16) TimeBuffer[Year_index]) << 8 | TimeBuffer[Year_index+1]; - GPSTime->MonthU8 = TimeBuffer[Month_index]; - GPSTime->DayU8 = TimeBuffer[DayOfMonth_index]; - GPSTime->HourU8 = TimeBuffer[Hour_index]; - GPSTime->MinuteU8 = TimeBuffer[Minute_index]; - GPSTime->SecondU8 = TimeBuffer[Second_index]; - GPSTime->MillisecondU16 = ((U16) TimeBuffer[Millisecond_index]) << 8 | TimeBuffer[Millisecond_index+1]; - GPSTime->MicroSecondU16 = ((U16) TimeBuffer[Microsecond_index]) << 8 | TimeBuffer[Microsecond_index+1]; + GPSTime->ProtocolVersionU8 = TimeBuffer[PROTO2_MESSAGE_VERSION_INDEX]; + GPSTime->YearU16 = ((U16) TimeBuffer[PROTO2_YEAR_INDEX]) << 8 | TimeBuffer[PROTO2_YEAR_INDEX+1]; + GPSTime->MonthU8 = TimeBuffer[PROTO2_MONTH_INDEX]; + GPSTime->DayU8 = TimeBuffer[PROTO2_DAYOFMONTH_INDEX]; + GPSTime->HourU8 = TimeBuffer[PROTO2_HOUR_INDEX]; + GPSTime->MinuteU8 = TimeBuffer[PROTO2_MINUTE_INDEX]; + GPSTime->SecondU8 = TimeBuffer[PROTO2_SECOND_INDEX]; + GPSTime->MillisecondU16 = ((U16) TimeBuffer[PROTO2_MILLISECOND_INDEX]) << 8 | TimeBuffer[PROTO2_MILLISECOND_INDEX+1]; + GPSTime->MicroSecondU16 = ((U16) TimeBuffer[PROTO2_MICROSECOND_INDEX]) << 8 | TimeBuffer[PROTO2_MICROSECOND_INDEX+1]; GPSTime->SecondCounterU32 = - ((U32) TimeBuffer[SecondCounter_index]) << 24 | ((U32) TimeBuffer[SecondCounter_index+1]) << 16 | - ((U32) TimeBuffer[SecondCounter_index+2]) << 8 | TimeBuffer[SecondCounter_index+3]; + ((U32) TimeBuffer[PROTO2_SECOND_COUNTER_INDEX]) << 24 | ((U32) TimeBuffer[PROTO2_SECOND_COUNTER_INDEX+1]) << 16 | + ((U32) TimeBuffer[PROTO2_SECOND_COUNTER_INDEX+2]) << 8 | TimeBuffer[PROTO2_SECOND_COUNTER_INDEX+3]; GPSTime->GPSMillisecondsU64 = - ((U64) TimeBuffer[GPSMilliseconds_index]) << 56 | ((U64) TimeBuffer[GPSMilliseconds_index+1]) << 48 | - ((U64) TimeBuffer[GPSMilliseconds_index+2]) << 40 | ((U64)TimeBuffer[GPSMilliseconds_index+3]) <<32 | - ((U64) TimeBuffer[GPSMilliseconds_index+4]) << 24 | ((U64) TimeBuffer[GPSMilliseconds_index+5]) << 16 | - ((U64) TimeBuffer[GPSMilliseconds_index+6]) << 8 | TimeBuffer[GPSMilliseconds_index+7]; + ((U64) TimeBuffer[PROTO2_GPS_MILLISECONDS_INDEX]) << 56 | ((U64) TimeBuffer[PROTO2_GPS_MILLISECONDS_INDEX+1]) << 48 | + ((U64) TimeBuffer[PROTO2_GPS_MILLISECONDS_INDEX+2]) << 40 | ((U64)TimeBuffer[PROTO2_GPS_MILLISECONDS_INDEX+3]) <<32 | + ((U64) TimeBuffer[PROTO2_GPS_MILLISECONDS_INDEX+4]) << 24 | ((U64) TimeBuffer[PROTO2_GPS_MILLISECONDS_INDEX+5]) << 16 | + ((U64) TimeBuffer[PROTO2_GPS_MILLISECONDS_INDEX+6]) << 8 | TimeBuffer[PROTO2_GPS_MILLISECONDS_INDEX+7]; GPSTime->GPSMillisecondsU64 += MS_LEAP_SEC_DIFF_UTC_GPS; GPSTime->GPSMinutesU32 = - ((U32) TimeBuffer[GPSMinutes_index]) << 24 | ((U32) TimeBuffer[GPSMinutes_index+1]) << 16 | - ((U32) TimeBuffer[GPSMinutes_index+2]) << 8 | TimeBuffer[GPSMinutes_index+3]; - GPSTime->GPSWeekU16 = ((U16) TimeBuffer[GPSWeek_index]) << 8 | TimeBuffer[GPSWeek_index+1]; + ((U32) TimeBuffer[PROTO2_GPS_MINUTES_INDEX]) << 24 | ((U32) TimeBuffer[PROTO2_GPS_MINUTES_INDEX+1]) << 16 | + ((U32) TimeBuffer[PROTO2_GPS_MINUTES_INDEX+2]) << 8 | TimeBuffer[PROTO2_GPS_MINUTES_INDEX+3]; + GPSTime->GPSWeekU16 = ((U16) TimeBuffer[PROTO2_GPS_WEEK_INDEX]) << 8 | TimeBuffer[PROTO2_GPS_WEEK_INDEX+1]; GPSTime->GPSSecondsOfWeekU32 = - ((U32) TimeBuffer[GPSSOW_index]) << 24 | ((U32) TimeBuffer[GPSSOW_index+1]) << 16 | - ((U32) TimeBuffer[GPSSOW_index+2]) << 8 | TimeBuffer[GPSSOW_index+3] + MS_LEAP_SEC_DIFF_UTC_GPS / 1000; + ((U32) TimeBuffer[PROTO2_GPSSOW_INDEX]) << 24 | ((U32) TimeBuffer[PROTO2_GPSSOW_INDEX+1]) << 16 | + ((U32) TimeBuffer[PROTO2_GPSSOW_INDEX+2]) << 8 | TimeBuffer[PROTO2_GPSSOW_INDEX+3] + MS_LEAP_SEC_DIFF_UTC_GPS / 1000; GPSTime->GPSSecondsOfDayU32 = - ((U32) TimeBuffer[GPSSOD_index]) << 24 | ((U32) TimeBuffer[GPSSOD_index+1]) << 16 | - ((U32) TimeBuffer[GPSSOD_index+2]) << 8 | TimeBuffer[GPSSOD_index+3]; + ((U32) TimeBuffer[PROTO2_GPSSOD_INDEX]) << 24 | ((U32) TimeBuffer[PROTO2_GPSSOD_INDEX+1]) << 16 | + ((U32) TimeBuffer[PROTO2_GPSSOD_INDEX+2]) << 8 | TimeBuffer[PROTO2_GPSSOD_INDEX+3]; GPSTime->ETSIMillisecondsU64 = - ((U64) TimeBuffer[ETSI_index]) << 56 | ((U64) TimeBuffer[ETSI_index+1]) << 48 | - ((U64) TimeBuffer[ETSI_index+2]) << 40 | ((U64)TimeBuffer[ETSI_index+3]) << 32 | - ((U64) TimeBuffer[ETSI_index+4]) << 24 | ((U64) TimeBuffer[ETSI_index+5]) << 16 | - ((U64) TimeBuffer[ETSI_index+6]) << 8 | TimeBuffer[ETSI_index+7]; + ((U64) TimeBuffer[PROTO2_ETSI_INDEX]) << 56 | ((U64) TimeBuffer[PROTO2_ETSI_INDEX+1]) << 48 | + ((U64) TimeBuffer[PROTO2_ETSI_INDEX+2]) << 40 | ((U64)TimeBuffer[PROTO2_ETSI_INDEX+3]) << 32 | + ((U64) TimeBuffer[PROTO2_ETSI_INDEX+4]) << 24 | ((U64) TimeBuffer[PROTO2_ETSI_INDEX+5]) << 16 | + ((U64) TimeBuffer[PROTO2_ETSI_INDEX+6]) << 8 | TimeBuffer[PROTO2_ETSI_INDEX+7]; GPSTime->LatitudeU32 = - ((U32) TimeBuffer[Latitude_index]) << 24 | ((U32) TimeBuffer[Latitude_index+1]) << 16 | - ((U32) TimeBuffer[Latitude_index+2]) << 8 | TimeBuffer[Latitude_index+3]; + ((U32) TimeBuffer[PROTO2_LATITUDE_INDEX]) << 24 | ((U32) TimeBuffer[PROTO2_LATITUDE_INDEX+1]) << 16 | + ((U32) TimeBuffer[PROTO2_LATITUDE_INDEX+2]) << 8 | TimeBuffer[PROTO2_LATITUDE_INDEX+3]; GPSTime->LongitudeU32 = - ((U32) TimeBuffer[Longitude_index]) << 24 | ((U32) TimeBuffer[Longitude_index+1]) << 16 | - ((U32) TimeBuffer[Longitude_index+2]) << 8 | TimeBuffer[Longitude_index+3]; - GPSTime->FixQualityU8 = TimeBuffer[FixQuality_index]; - GPSTime->NSatellitesU8 = TimeBuffer[SatelliteCount_index]; + ((U32) TimeBuffer[PROTO2_LONGITUDE_INDEX]) << 24 | ((U32) TimeBuffer[PROTO2_LONGITUDE_INDEX+1]) << 16 | + ((U32) TimeBuffer[PROTO2_LONGITUDE_INDEX+2]) << 8 | TimeBuffer[PROTO2_LONGITUDE_INDEX+3]; + GPSTime->FixQualityU8 = TimeBuffer[PROTO2_FIX_QUALITY_INDEX]; + GPSTime->NSatellitesU8 = TimeBuffer[PROTO2_SATELLITE_COUNT_INDEX]; gettimeofday(&tv, NULL); @@ -589,7 +589,7 @@ static void TimeControlDecodeTimeBuffer(TimeType * GPSTime, C8 * TimeBuffer, C8 //LogPrint("MinuteU8: %d", GPSTime->MinuteU8); //LogPrint("SecondU8: %d", GPSTime->SecondU8); //LogPrint("MillisecondU16: %d", GPSTime->MillisecondU16); - LogPrint("SecondCounterU32: %d - %d", GPSTime->SecondCounterU32, SecondCounter_index); + LogPrint("SecondCounterU32: %d", GPSTime->SecondCounterU32); LogPrint("GPSMillisecondsU64: %ld", GPSTime->GPSMillisecondsU64); //LogPrint("GPSMinutesU32: %d", GPSTime->GPSMinutesU32); //LogPrint("GPSWeekU16: %d", GPSTime->GPSWeekU16); From 91a27ad25824ebcdf2f7cbaac3793f130605d0c0 Mon Sep 17 00:00:00 2001 From: Sebastian Loh Lindholm Date: Wed, 10 Mar 2021 09:53:53 +0100 Subject: [PATCH 4/7] Added defines of content in init message to pitipo. --- core/src/timecontrol.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/core/src/timecontrol.c b/core/src/timecontrol.c index 706d2239e..baf81c0f6 100644 --- a/core/src/timecontrol.c +++ b/core/src/timecontrol.c @@ -83,6 +83,13 @@ #define PROTO2_FIX_QUALITY_INDEX 62 #define PROTO2_SATELLITE_COUNT_INDEX 63 +#define PROTO2_INIT_MESSAGE_LENGTH 10 +#define PROTO2_INIT_TIME_FEED_MESSAGE_CODE 0x17 +#define PROTO2_INIT_TIME_FEED_ACTIVE 1 +#define PROTO2_INIT_TIME_FEED_DEACTIVATE 0 +#define PROTO2_INIT_TIME_FEED_USE_PERIOD_IN_FILE 0 +#define PROTO2_INIT_TIME_FEED_USE_PERIOD_IN_MESSAGE 1 + /*------------------------------------------------------------ -- Function declarations. @@ -123,7 +130,10 @@ void timecontrol_task(TimeType * GPSTime, GSDType * GSD, LOG_LEVEL logLevel) { C8 TimeBuffer[TIME_CONTROL_RECEIVE_BUFFER_SIZE]; C8 LogBuffer[LOG_BUFFER_LENGTH]; I32 ReceivedNewData, i; - C8 PitipoSetupMessage[INIT_PITIPO_MESSAGE_LENGTH] = {0, 0, 0, 0xA, 0, 0, 0, 0x17, 1, 1, 0, 0, 3, 0xE8}; + C8 PitipoSetupMessage[INIT_PITIPO_MESSAGE_LENGTH] = {0, 0, 0, PROTO2_INIT_MESSAGE_LENGTH, + 0, 0, 0, PROTO2_INIT_TIME_FEED_MESSAGE_CODE, + PROTO2_INIT_TIME_FEED_ACTIVE, PROTO2_INIT_TIME_FEED_USE_PERIOD_IN_MESSAGE, + 0, 0, 3, 0xE8}; struct timespec sleep_time, ref_time; C8 MqRecvBuffer[MBUS_MAX_DATALEN]; struct timeval tv, ExecTime; @@ -294,6 +304,9 @@ void timecontrol_task(TimeType * GPSTime, GSDType * GSD, LOG_LEVEL logLevel) { if (GSD->ExitU8 == 1) { if (GPSTime->isGPSenabled) { + + PitipoSetupMessage[8] = PROTO2_INIT_TIME_FEED_DEACTIVATE; + PitipoSetupMessage[9] = PROTO2_INIT_TIME_FEED_USE_PERIOD_IN_MESSAGE; PitipoSetupMessage[10] = 0; PitipoSetupMessage[11] = 0; PitipoSetupMessage[12] = 0; From 194cdae0f28de2aa2f749af99f9825e787aced7d Mon Sep 17 00:00:00 2001 From: Sebastian Loh Lindholm Date: Wed, 10 Mar 2021 10:04:56 +0100 Subject: [PATCH 5/7] Time feed interval is defined as an define in top of file. --- core/src/timecontrol.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/core/src/timecontrol.c b/core/src/timecontrol.c index baf81c0f6..b259fbba0 100644 --- a/core/src/timecontrol.c +++ b/core/src/timecontrol.c @@ -89,6 +89,7 @@ #define PROTO2_INIT_TIME_FEED_DEACTIVATE 0 #define PROTO2_INIT_TIME_FEED_USE_PERIOD_IN_FILE 0 #define PROTO2_INIT_TIME_FEED_USE_PERIOD_IN_MESSAGE 1 +#define PROTO2_INIT_TIME_FEED_INTERVAL 1000 /*------------------------------------------------------------ @@ -133,7 +134,8 @@ void timecontrol_task(TimeType * GPSTime, GSDType * GSD, LOG_LEVEL logLevel) { C8 PitipoSetupMessage[INIT_PITIPO_MESSAGE_LENGTH] = {0, 0, 0, PROTO2_INIT_MESSAGE_LENGTH, 0, 0, 0, PROTO2_INIT_TIME_FEED_MESSAGE_CODE, PROTO2_INIT_TIME_FEED_ACTIVE, PROTO2_INIT_TIME_FEED_USE_PERIOD_IN_MESSAGE, - 0, 0, 3, 0xE8}; + 0, 0, (uint8_t)(PROTO2_INIT_TIME_FEED_INTERVAL>>8), + (uint8_t)PROTO2_INIT_TIME_FEED_INTERVAL}; struct timespec sleep_time, ref_time; C8 MqRecvBuffer[MBUS_MAX_DATALEN]; struct timeval tv, ExecTime; @@ -307,8 +309,6 @@ void timecontrol_task(TimeType * GPSTime, GSDType * GSD, LOG_LEVEL logLevel) { PitipoSetupMessage[8] = PROTO2_INIT_TIME_FEED_DEACTIVATE; PitipoSetupMessage[9] = PROTO2_INIT_TIME_FEED_USE_PERIOD_IN_MESSAGE; - PitipoSetupMessage[10] = 0; - PitipoSetupMessage[11] = 0; PitipoSetupMessage[12] = 0; PitipoSetupMessage[13] = 0; TimeControlSendUDPData(&SocketfdI32, &time_addr, PitipoSetupMessage, INIT_PITIPO_MESSAGE_LENGTH, 0); From c70de02dcb246b04f32dfc19c0825494f2719d95 Mon Sep 17 00:00:00 2001 From: Sebastian Loh Lindholm Date: Wed, 10 Mar 2021 10:10:27 +0100 Subject: [PATCH 6/7] Define name changed. --- core/src/timecontrol.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/core/src/timecontrol.c b/core/src/timecontrol.c index b259fbba0..255f75d4c 100644 --- a/core/src/timecontrol.c +++ b/core/src/timecontrol.c @@ -83,13 +83,13 @@ #define PROTO2_FIX_QUALITY_INDEX 62 #define PROTO2_SATELLITE_COUNT_INDEX 63 -#define PROTO2_INIT_MESSAGE_LENGTH 10 -#define PROTO2_INIT_TIME_FEED_MESSAGE_CODE 0x17 -#define PROTO2_INIT_TIME_FEED_ACTIVE 1 -#define PROTO2_INIT_TIME_FEED_DEACTIVATE 0 -#define PROTO2_INIT_TIME_FEED_USE_PERIOD_IN_FILE 0 -#define PROTO2_INIT_TIME_FEED_USE_PERIOD_IN_MESSAGE 1 -#define PROTO2_INIT_TIME_FEED_INTERVAL 1000 +#define PROTO2_SETUP_MESSAGE_LENGTH 10 +#define PROTO2_SETUP_TIME_FEED_MESSAGE_CODE 0x17 +#define PROTO2_SETUP_TIME_FEED_ACTIVE 1 +#define PROTO2_SETUP_TIME_FEED_DEACTIVATE 0 +#define PROTO2_SETUP_TIME_FEED_USE_PERIOD_IN_FILE 0 +#define PROTO2_SETUP_TIME_FEED_USE_PERIOD_IN_MESSAGE 1 +#define PROTO2_SETUP_TIME_FEED_INTERVAL 1000 /*------------------------------------------------------------ @@ -131,11 +131,11 @@ void timecontrol_task(TimeType * GPSTime, GSDType * GSD, LOG_LEVEL logLevel) { C8 TimeBuffer[TIME_CONTROL_RECEIVE_BUFFER_SIZE]; C8 LogBuffer[LOG_BUFFER_LENGTH]; I32 ReceivedNewData, i; - C8 PitipoSetupMessage[INIT_PITIPO_MESSAGE_LENGTH] = {0, 0, 0, PROTO2_INIT_MESSAGE_LENGTH, - 0, 0, 0, PROTO2_INIT_TIME_FEED_MESSAGE_CODE, - PROTO2_INIT_TIME_FEED_ACTIVE, PROTO2_INIT_TIME_FEED_USE_PERIOD_IN_MESSAGE, - 0, 0, (uint8_t)(PROTO2_INIT_TIME_FEED_INTERVAL>>8), - (uint8_t)PROTO2_INIT_TIME_FEED_INTERVAL}; + C8 PitipoSetupMessage[INIT_PITIPO_MESSAGE_LENGTH] = {0, 0, 0, PROTO2_SETUP_MESSAGE_LENGTH, + 0, 0, 0, PROTO2_SETUP_TIME_FEED_MESSAGE_CODE, + PROTO2_SETUP_TIME_FEED_ACTIVE, PROTO2_SETUP_TIME_FEED_USE_PERIOD_IN_MESSAGE, + 0, 0, (uint8_t)(PROTO2_SETUP_TIME_FEED_INTERVAL>>8), + (uint8_t)PROTO2_SETUP_TIME_FEED_INTERVAL}; struct timespec sleep_time, ref_time; C8 MqRecvBuffer[MBUS_MAX_DATALEN]; struct timeval tv, ExecTime; @@ -307,8 +307,8 @@ void timecontrol_task(TimeType * GPSTime, GSDType * GSD, LOG_LEVEL logLevel) { if (GSD->ExitU8 == 1) { if (GPSTime->isGPSenabled) { - PitipoSetupMessage[8] = PROTO2_INIT_TIME_FEED_DEACTIVATE; - PitipoSetupMessage[9] = PROTO2_INIT_TIME_FEED_USE_PERIOD_IN_MESSAGE; + PitipoSetupMessage[8] = PROTO2_SETUP_TIME_FEED_DEACTIVATE; + PitipoSetupMessage[9] = PROTO2_SETUP_TIME_FEED_USE_PERIOD_IN_MESSAGE; PitipoSetupMessage[12] = 0; PitipoSetupMessage[13] = 0; TimeControlSendUDPData(&SocketfdI32, &time_addr, PitipoSetupMessage, INIT_PITIPO_MESSAGE_LENGTH, 0); From 5661f73b690df9cd093c36d7bc563bb544389260 Mon Sep 17 00:00:00 2001 From: Sebastian Loh Lindholm Date: Wed, 10 Mar 2021 11:03:45 +0100 Subject: [PATCH 7/7] Variable name change. --- core/src/timecontrol.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/core/src/timecontrol.c b/core/src/timecontrol.c index 255f75d4c..79c701556 100644 --- a/core/src/timecontrol.c +++ b/core/src/timecontrol.c @@ -36,7 +36,7 @@ #define TIME_CONTROL_HOSTNAME_BUFFER_SIZE 20 #define TIME_CONTROL_RECEIVE_BUFFER_SIZE 80 #define TIME_CONTROL_TASK_PERIOD_MS 1 -#define INIT_PITIPO_MESSAGE_LENGTH 14 +#define TIME_CONTROL_TX_BUFFER_SIZE 14 #define REPLY_TIMEOUT_S 3 #define SLEEP_TIME_GPS_CONNECTED_S 0 @@ -90,6 +90,7 @@ #define PROTO2_SETUP_TIME_FEED_USE_PERIOD_IN_FILE 0 #define PROTO2_SETUP_TIME_FEED_USE_PERIOD_IN_MESSAGE 1 #define PROTO2_SETUP_TIME_FEED_INTERVAL 1000 +#define PROTO2_SETUP_TIME_FEED_INTERVAL_FAST 100 /*------------------------------------------------------------ @@ -131,7 +132,7 @@ void timecontrol_task(TimeType * GPSTime, GSDType * GSD, LOG_LEVEL logLevel) { C8 TimeBuffer[TIME_CONTROL_RECEIVE_BUFFER_SIZE]; C8 LogBuffer[LOG_BUFFER_LENGTH]; I32 ReceivedNewData, i; - C8 PitipoSetupMessage[INIT_PITIPO_MESSAGE_LENGTH] = {0, 0, 0, PROTO2_SETUP_MESSAGE_LENGTH, + C8 PitipoSetupMessage[TIME_CONTROL_TX_BUFFER_SIZE] = {0, 0, 0, PROTO2_SETUP_MESSAGE_LENGTH, 0, 0, 0, PROTO2_SETUP_TIME_FEED_MESSAGE_CODE, PROTO2_SETUP_TIME_FEED_ACTIVE, PROTO2_SETUP_TIME_FEED_USE_PERIOD_IN_MESSAGE, 0, 0, (uint8_t)(PROTO2_SETUP_TIME_FEED_INTERVAL>>8), @@ -183,7 +184,7 @@ void timecontrol_task(TimeType * GPSTime, GSDType * GSD, LOG_LEVEL logLevel) { if (TimeControlCreateTimeChannel(ServerIPC8, ServerPortU16, &SocketfdI32, &time_addr)) { LogMessage(LOG_LEVEL_INFO, "Using time server reference"); - TimeControlSendUDPData(&SocketfdI32, &time_addr, PitipoSetupMessage, INIT_PITIPO_MESSAGE_LENGTH, 0); + TimeControlSendUDPData(&SocketfdI32, &time_addr, PitipoSetupMessage, TIME_CONTROL_TX_BUFFER_SIZE, 0); GPSTime->isGPSenabled = 1; } else { @@ -311,7 +312,7 @@ void timecontrol_task(TimeType * GPSTime, GSDType * GSD, LOG_LEVEL logLevel) { PitipoSetupMessage[9] = PROTO2_SETUP_TIME_FEED_USE_PERIOD_IN_MESSAGE; PitipoSetupMessage[12] = 0; PitipoSetupMessage[13] = 0; - TimeControlSendUDPData(&SocketfdI32, &time_addr, PitipoSetupMessage, INIT_PITIPO_MESSAGE_LENGTH, 0); + TimeControlSendUDPData(&SocketfdI32, &time_addr, PitipoSetupMessage, TIME_CONTROL_TX_BUFFER_SIZE, 0); } iExit = 1; (void)iCommClose(); @@ -357,8 +358,12 @@ static int TimeControlCreateTimeChannel(const char *name, const uint32_t port, i struct sockaddr_in *addr) { int result; struct hostent *object; - //C8 packetIntervalMs[INIT_PITIPO_MESSAGE_LENGTH] = { 0, 0, 0, 100 }; // Make server send with this interval while waiting for first reply - C8 packetIntervalMs[INIT_PITIPO_MESSAGE_LENGTH] = {0, 0, 0, 0xA, 0, 0, 0, 0x17, 1, 1, 0, 0, 0, 100}; + + C8 packetIntervalMs[TIME_CONTROL_TX_BUFFER_SIZE] = {0, 0, 0, PROTO2_SETUP_MESSAGE_LENGTH, + 0, 0, 0, PROTO2_SETUP_TIME_FEED_MESSAGE_CODE, + PROTO2_SETUP_TIME_FEED_ACTIVE, PROTO2_SETUP_TIME_FEED_USE_PERIOD_IN_MESSAGE, + 0, 0, (uint8_t)(PROTO2_SETUP_TIME_FEED_INTERVAL_FAST>>8), + (uint8_t)PROTO2_SETUP_TIME_FEED_INTERVAL_FAST}; C8 timeBuffer[TIME_CONTROL_RECEIVE_BUFFER_SIZE]; int receivedNewData = 0; struct timeval timeout = { REPLY_TIMEOUT_S, 0 }; @@ -400,7 +405,7 @@ static int TimeControlCreateTimeChannel(const char *name, const uint32_t port, i // Check for existence of remote server LogMessage(LOG_LEVEL_INFO, "Awaiting reply from time server..."); // Set send interval to be as short as possible to minimise wait for reply - TimeControlSendUDPData(sockfd, addr, packetIntervalMs, INIT_PITIPO_MESSAGE_LENGTH, 0); + TimeControlSendUDPData(sockfd, addr, packetIntervalMs, TIME_CONTROL_TX_BUFFER_SIZE, 0); // Set time to stop waiting for reply gettimeofday(&tEnd, NULL);