@@ -31,25 +31,54 @@ GNSS_Mosaic.ino
31
31
// ----------------------------------------
32
32
void menuLogMosaic ()
33
33
{
34
+ if (!present.mosaicMicroSd ) // This may be needed for the G5 P3 ?
35
+ return ;
36
+
34
37
bool applyChanges = false ;
35
38
36
39
while (1 )
37
40
{
38
41
systemPrintln ();
39
42
systemPrintln (" Menu: Logging" );
43
+ systemPrintln ();
40
44
41
45
char sdCardSizeChar[20 ];
42
46
String cardSize;
43
- stringHumanReadableSize (cardSize, sdCardSize );
47
+ stringHumanReadableSize (cardSize, mosaicSdCardSize );
44
48
cardSize.toCharArray (sdCardSizeChar, sizeof (sdCardSizeChar));
45
49
char sdFreeSpaceChar[20 ];
46
50
String freeSpace;
47
- stringHumanReadableSize (freeSpace, sdFreeSpace );
51
+ stringHumanReadableSize (freeSpace, mosaicSdFreeSpace );
48
52
freeSpace.toCharArray (sdFreeSpaceChar, sizeof (sdFreeSpaceChar));
49
53
54
+ // On Facet mosaic, the SD is connected directly to the X5 and is accessible
55
+ // On Facet Flex X5, the internal mosaic SD card is not accessible
50
56
char myString[70 ];
51
- snprintf (myString, sizeof (myString), " SD card size: %s / Free space: %s" , sdCardSizeChar, sdFreeSpaceChar);
57
+ snprintf (myString, sizeof (myString), " Mosaic SD card size: %s / Free space: %s" , sdCardSizeChar, sdFreeSpaceChar);
52
58
systemPrintln (myString);
59
+ systemPrintln ();
60
+
61
+ if (settings.enableSD && online.microSD )
62
+ {
63
+ char sdCardSizeChar[20 ];
64
+ String cardSize;
65
+ stringHumanReadableSize (cardSize, sdCardSize);
66
+ cardSize.toCharArray (sdCardSizeChar, sizeof (sdCardSizeChar));
67
+ char sdFreeSpaceChar[20 ];
68
+ String freeSpace;
69
+ stringHumanReadableSize (freeSpace, sdFreeSpace);
70
+ freeSpace.toCharArray (sdFreeSpaceChar, sizeof (sdFreeSpaceChar));
71
+
72
+ char myString[70 ];
73
+ snprintf (myString, sizeof (myString), " Accessible SD card size: %s / Free space: %s" , sdCardSizeChar, sdFreeSpaceChar);
74
+ systemPrintln (myString);
75
+
76
+ if (online.logging )
77
+ {
78
+ systemPrintf (" Accessible SD current log file name: %s\r\n " , logFileName);
79
+ }
80
+ systemPrintln ();
81
+ }
53
82
54
83
systemPrint (" 1) Log NMEA to microSD: " );
55
84
if (settings.enableLogging == true )
@@ -2651,6 +2680,9 @@ void GNSS_MOSAIC::storeBlock4014(SEMP_PARSE_STATE *parse)
2651
2680
// ----------------------------------------
2652
2681
void GNSS_MOSAIC::storeBlock4059 (SEMP_PARSE_STATE *parse)
2653
2682
{
2683
+ if (!present.mosaicMicroSd )
2684
+ return ;
2685
+
2654
2686
if (sempSbfGetU1 (parse, 14 ) < 1 ) // Check N is at least 1
2655
2687
return ;
2656
2688
@@ -2670,9 +2702,15 @@ void GNSS_MOSAIC::storeBlock4059(SEMP_PARSE_STATE *parse)
2670
2702
2671
2703
uint64_t diskUsage = (diskUsageMSB * 4294967296 ) + diskUsageLSB;
2672
2704
2673
- sdCardSize = diskSizeMB * 1048576 ; // Convert to bytes
2705
+ mosaicSdCardSize = diskSizeMB * 1048576 ; // Convert to bytes
2674
2706
2675
- sdFreeSpace = sdCardSize - diskUsage;
2707
+ mosaicSdFreeSpace = mosaicSdCardSize - diskUsage;
2708
+
2709
+ if (!present.microSd ) // Overwrite - if this is the only SD card
2710
+ {
2711
+ sdCardSize = mosaicSdCardSize;
2712
+ sdFreeSpace = mosaicSdFreeSpace;
2713
+ }
2676
2714
2677
2715
_diskStatusSeen = true ;
2678
2716
}
0 commit comments