|
@@ -39,6 +39,9 @@
|
|
#define _INTERNAL_EMMC_PART01 "mmcblk0p1"
|
|
#define _INTERNAL_EMMC_PART01 "mmcblk0p1"
|
|
#define _INTERNAL_EMMC_PART02 "mmcblk0p2"
|
|
#define _INTERNAL_EMMC_PART02 "mmcblk0p2"
|
|
|
|
|
|
|
|
+#define _BASEBOARD_PATH "/tmp/BASEBOARD"
|
|
|
|
+#define _DISPLAY_SIG_TIVA "DISPLAY001"
|
|
|
|
+
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
static char* _GetNextLine(char *psz, const char **ppszKey, const char **ppszValue)
|
|
static char* _GetNextLine(char *psz, const char **ppszKey, const char **ppszValue)
|
|
@@ -149,6 +152,53 @@ bool CSysInfo::GetBootInfo(bool &bootFromEMMC)
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+/////////////////////////////////////////////////////////////////////////////
|
|
|
|
+//
|
|
|
|
+// tmp/BASEBOARD TIVA Sonstiges
|
|
|
|
+// DISPLAY001 Ja Standarddisplays
|
|
|
|
+// DISPLAY002_DI4 Nein Display mit 4 D/I
|
|
|
|
+// DISPLAY002_RS485 Nein Display mir RS485
|
|
|
|
+// GFA_RF_CAPE Nein Transponder
|
|
|
|
+//
|
|
|
|
+
|
|
|
|
+GfATargetTypes CSysInfo::GetTargetType(char *pszTargetType, size_t nCChTargetType)
|
|
|
|
+{
|
|
|
|
+ GfATargetTypes tt = GTT_NoGfATarget;
|
|
|
|
+ int nLenSig = strlen(_DISPLAY_SIG_TIVA);
|
|
|
|
+ int fd = open(_BASEBOARD_PATH, O_RDONLY);
|
|
|
|
+
|
|
|
|
+ if(pszTargetType && (nCChTargetType > 0))
|
|
|
|
+ *pszTargetType = '\0';
|
|
|
|
+
|
|
|
|
+ if(fd >= 0)
|
|
|
|
+ {
|
|
|
|
+ char szDisp[256];
|
|
|
|
+ memset(szDisp, 0, sizeof(szDisp));
|
|
|
|
+ int ret = read(fd, szDisp, sizeof(szDisp) - 1);
|
|
|
|
+
|
|
|
|
+ if(ret > 0)
|
|
|
|
+ {
|
|
|
|
+ char *pzzEnd = &szDisp[ret - 1];
|
|
|
|
+
|
|
|
|
+ while((ret > 0) && isspace((uint8_t)*pzzEnd))
|
|
|
|
+ {
|
|
|
|
+ *pzzEnd-- = '\0';
|
|
|
|
+ --ret;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if((ret == nLenSig) && !strcmp(szDisp, _DISPLAY_SIG_TIVA))
|
|
|
|
+ tt = GTT_GfATargetWithTiva;
|
|
|
|
+ else
|
|
|
|
+ tt = GTT_GfATargetNoTiva;
|
|
|
|
+
|
|
|
|
+ if(pszTargetType && (nCChTargetType > (size_t)ret))
|
|
|
|
+ strcpy(pszTargetType, szDisp);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return tt;
|
|
|
|
+}
|
|
|
|
+
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// https://github.com/torvalds/linux/blob/master/Documentation/filesystems/proc.rst
|
|
// https://github.com/torvalds/linux/blob/master/Documentation/filesystems/proc.rst
|
|
|
|
|
|
@@ -217,3 +267,13 @@ bool CSysInfo::Update(void)
|
|
|
|
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+/////////////////////////////////////////////////////////////////////////////
|
|
|
|
+/////////////////////////////////////////////////////////////////////////////
|
|
|
|
+/////////////////////////////////////////////////////////////////////////////
|
|
|
|
+//
|
|
|
|
+
|
|
|
|
+extern "C" GfATargetTypes GfAIpcGetTargetType(char *pszTargetType, size_t nCChTargetType)
|
|
|
|
+{
|
|
|
|
+ return CSysInfo::GetTargetType(pszTargetType, nCChTargetType);
|
|
|
|
+}
|