forked from speed-dreams/speed-dreams-code
Merge pull request 'Fix missing drivers from driver selection menu' (#47) from fix-missing-drivers into main
Reviewed-on: speed-dreams/speed-dreams-code#47
This commit is contained in:
commit
db4a4fe858
5 changed files with 127 additions and 51 deletions
|
@ -1 +1 @@
|
||||||
Subproject commit 3d26571ada10cd68944896fad39fd68b71c67abd
|
Subproject commit b1cc506c221e5a83a676b0116dbb71f55fb8f9ba
|
|
@ -82,11 +82,22 @@ extern "C" int moduleWelcome(const tModWelcomeIn * welcomeIn,
|
||||||
// Save module name and loadDir, and determine module XML file pathname.
|
// Save module name and loadDir, and determine module XML file pathname.
|
||||||
setRobotName(welcomeIn->name);
|
setRobotName(welcomeIn->name);
|
||||||
|
|
||||||
// Filehandle for robot's xml-file
|
|
||||||
void* pRobotSettings = GfParmReadFileLocal(pathBuffer, GFPARM_RMODE_STD);
|
|
||||||
|
|
||||||
PLogDANDROID = GfLogger::instance("DANDROID");
|
PLogDANDROID = GfLogger::instance("DANDROID");
|
||||||
|
|
||||||
|
std::string dirstr = std::string(GfLocalDir()) + "drivers/dandroid";
|
||||||
|
const char *dir = dirstr.c_str();
|
||||||
|
|
||||||
|
if (GfDirCreate(dir) != GF_DIR_CREATED)
|
||||||
|
{
|
||||||
|
PLogDANDROID->error("GfDirCreate %s failed\n", dir);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
int ret = 0;
|
||||||
|
// Filehandle for robot's xml-file
|
||||||
|
void* pRobotSettings = GfParmReadFileLocal(pathBuffer,
|
||||||
|
GFPARM_RMODE_STD | GFPARM_RMODE_CREAT);
|
||||||
|
|
||||||
// Loop over all possible drivers, clear all buffers,
|
// Loop over all possible drivers, clear all buffers,
|
||||||
// save defined driver names and descriptions.
|
// save defined driver names and descriptions.
|
||||||
driver.clear();
|
driver.clear();
|
||||||
|
@ -94,22 +105,15 @@ extern "C" int moduleWelcome(const tModWelcomeIn * welcomeIn,
|
||||||
|
|
||||||
if (pRobotSettings) // robot settings XML could be read
|
if (pRobotSettings) // robot settings XML could be read
|
||||||
{
|
{
|
||||||
char SectionBuffer[BUFSIZE];
|
|
||||||
snprintf(SectionBuffer, BUFSIZE, "%s/%s/%d", ROB_SECT_ROBOTS, ROB_LIST_INDEX, 0);
|
|
||||||
|
|
||||||
// Try to get first driver from index 0
|
|
||||||
string sDriverName = GfParmGetStrNC(pRobotSettings,
|
|
||||||
SectionBuffer,
|
|
||||||
ROB_ATTR_NAME,
|
|
||||||
const_cast<char*>(sUndefined));
|
|
||||||
|
|
||||||
int n = GfParmGetEltNb(pRobotSettings, ROB_SECT_ROBOTS "/" ROB_LIST_INDEX);
|
int n = GfParmGetEltNb(pRobotSettings, ROB_SECT_ROBOTS "/" ROB_LIST_INDEX);
|
||||||
|
|
||||||
for (int i = 0; i < n; i++)
|
for (int i = 0; i < n; i++)
|
||||||
{
|
{
|
||||||
|
char SectionBuffer[BUFSIZE];
|
||||||
|
|
||||||
snprintf(SectionBuffer, BUFSIZE, "%s/%s/%d", ROB_SECT_ROBOTS, ROB_LIST_INDEX, i);
|
snprintf(SectionBuffer, BUFSIZE, "%s/%s/%d", ROB_SECT_ROBOTS, ROB_LIST_INDEX, i);
|
||||||
|
|
||||||
sDriverName = GfParmGetStr(pRobotSettings, SectionBuffer,
|
std::string sDriverName = GfParmGetStr(pRobotSettings, SectionBuffer,
|
||||||
ROB_ATTR_NAME, sUndefined);
|
ROB_ATTR_NAME, sUndefined);
|
||||||
|
|
||||||
string sDriverDesc = GfParmGetStr(pRobotSettings, SectionBuffer,
|
string sDriverDesc = GfParmGetStr(pRobotSettings, SectionBuffer,
|
||||||
|
@ -118,6 +122,12 @@ extern "C" int moduleWelcome(const tModWelcomeIn * welcomeIn,
|
||||||
driver.push_back(TDriver(i));
|
driver.push_back(TDriver(i));
|
||||||
} // for i
|
} // for i
|
||||||
|
|
||||||
|
if (GfParmWriteFile(nullptr, pRobotSettings, "dandroid"))
|
||||||
|
{
|
||||||
|
PLogDANDROID->error("GfParmWriteFile failed\n");
|
||||||
|
ret = -1;
|
||||||
|
}
|
||||||
|
|
||||||
GfParmReleaseHandle(pRobotSettings);
|
GfParmReleaseHandle(pRobotSettings);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -128,7 +138,7 @@ extern "C" int moduleWelcome(const tModWelcomeIn * welcomeIn,
|
||||||
// Set max nb of interfaces to return.
|
// Set max nb of interfaces to return.
|
||||||
welcomeOut->maxNbItf = driver.size();
|
welcomeOut->maxNbItf = driver.size();
|
||||||
|
|
||||||
return 0;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Module entry point (new fixed name scheme).
|
// Module entry point (new fixed name scheme).
|
||||||
|
@ -167,18 +177,24 @@ extern "C" int moduleTerminate()
|
||||||
// Module entry point
|
// Module entry point
|
||||||
extern "C" int dandroid(tModInfo * modInfo)
|
extern "C" int dandroid(tModInfo * modInfo)
|
||||||
{
|
{
|
||||||
|
std::string dirstr = std::string(GfLocalDir()) + "drivers/dandroid";
|
||||||
|
const char *dir = dirstr.c_str();
|
||||||
|
|
||||||
|
if (GfDirCreate(dir) != GF_DIR_CREATED)
|
||||||
|
return -1;
|
||||||
|
|
||||||
driver.clear();
|
driver.clear();
|
||||||
Drivers.clear();
|
Drivers.clear();
|
||||||
nameBuffer = "dandroid";
|
nameBuffer = "dandroid";
|
||||||
|
|
||||||
// Filehandle for robot's xml-file
|
// Filehandle for robot's xml-file
|
||||||
void* pRobotSettings = GfParmReadFileLocal("drivers/dandroid/dandroid.xml",
|
void* pRobotSettings = GfParmReadFileLocal("drivers/dandroid/dandroid.xml",
|
||||||
GFPARM_RMODE_STD);
|
GFPARM_RMODE_STD | GFPARM_RMODE_CREAT);
|
||||||
|
|
||||||
if (pRobotSettings)
|
if (pRobotSettings)
|
||||||
{ // Let's look what we have to provide here
|
{ // Let's look what we have to provide here
|
||||||
char SectionBuffer[BUFSIZE];
|
char SectionBuffer[BUFSIZE];
|
||||||
int n = GfParmGetEltNb(pRobotSettings, ROB_SECT_ROBOTS);
|
int ret = 0, n = GfParmGetEltNb(pRobotSettings, ROB_SECT_ROBOTS);
|
||||||
|
|
||||||
for (int i = 0; i < n; i++)
|
for (int i = 0; i < n; i++)
|
||||||
{
|
{
|
||||||
|
@ -188,7 +204,14 @@ extern "C" int dandroid(tModInfo * modInfo)
|
||||||
Drivers.push_back(make_pair(sDriverName, sDriverDesc));
|
Drivers.push_back(make_pair(sDriverName, sDriverDesc));
|
||||||
driver.push_back(TDriver(i));
|
driver.push_back(TDriver(i));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (GfParmWriteFile(nullptr, pRobotSettings, "usr"))
|
||||||
|
ret = -1;
|
||||||
|
|
||||||
GfParmReleaseHandle(pRobotSettings);
|
GfParmReleaseHandle(pRobotSettings);
|
||||||
|
|
||||||
|
if (ret)
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
return moduleInitialize(modInfo);
|
return moduleInitialize(modInfo);
|
||||||
|
|
|
@ -122,23 +122,24 @@ extern "C" int moduleWelcome(const tModWelcomeIn* welcomeIn, tModWelcomeOut* wel
|
||||||
{
|
{
|
||||||
// Save module name and loadDir, and determine module XML file pathname.
|
// Save module name and loadDir, and determine module XML file pathname.
|
||||||
setRobotName(welcomeIn->name);
|
setRobotName(welcomeIn->name);
|
||||||
|
|
||||||
// Filehandle for robot's xml-file
|
|
||||||
void *pRobotSettings = GfParmReadFileLocal(pathBuffer, GFPARM_RMODE_STD);
|
|
||||||
|
|
||||||
PLogSHADOW = GfLogger::instance("SHADOW");
|
PLogSHADOW = GfLogger::instance("SHADOW");
|
||||||
|
|
||||||
|
std::string dirstr = std::string(GfLocalDir()) + "drivers/shadow";
|
||||||
|
const char *dir = dirstr.c_str();
|
||||||
|
|
||||||
|
if (GfDirCreate(dir) != GF_DIR_CREATED)
|
||||||
|
{
|
||||||
|
PLogSHADOW->error("GfDirCreate %s failed\n", dir);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
int ret = 0;
|
||||||
|
// Filehandle for robot's xml-file
|
||||||
|
void *pRobotSettings = GfParmReadFileLocal(pathBuffer,
|
||||||
|
GFPARM_RMODE_STD | GFPARM_RMODE_CREAT);
|
||||||
|
|
||||||
if (pRobotSettings) // robot settings XML could be read
|
if (pRobotSettings) // robot settings XML could be read
|
||||||
{
|
{
|
||||||
char SectionBuffer[BUFSIZE];
|
|
||||||
snprintf(SectionBuffer, BUFSIZE, "%s/%s/%d", ROB_SECT_ROBOTS, ROB_LIST_INDEX, 0);
|
|
||||||
|
|
||||||
// Try to get first driver from index 0
|
|
||||||
string sDriverName = GfParmGetStrNC(pRobotSettings,
|
|
||||||
SectionBuffer,
|
|
||||||
ROB_ATTR_NAME,
|
|
||||||
const_cast<char*>(sUndefined));
|
|
||||||
|
|
||||||
// Loop over all possible drivers, clear all buffers,
|
// Loop over all possible drivers, clear all buffers,
|
||||||
// save defined driver names and descriptions.
|
// save defined driver names and descriptions.
|
||||||
Drivers.clear();
|
Drivers.clear();
|
||||||
|
@ -147,9 +148,11 @@ extern "C" int moduleWelcome(const tModWelcomeIn* welcomeIn, tModWelcomeOut* wel
|
||||||
|
|
||||||
for (int i = 0; i < n; i++)
|
for (int i = 0; i < n; i++)
|
||||||
{
|
{
|
||||||
|
char SectionBuffer[BUFSIZE];
|
||||||
|
|
||||||
snprintf(SectionBuffer, BUFSIZE, "%s/%s/%d", ROB_SECT_ROBOTS, ROB_LIST_INDEX, i);
|
snprintf(SectionBuffer, BUFSIZE, "%s/%s/%d", ROB_SECT_ROBOTS, ROB_LIST_INDEX, i);
|
||||||
|
|
||||||
sDriverName = GfParmGetStr(pRobotSettings, SectionBuffer,
|
std::string sDriverName = GfParmGetStr(pRobotSettings, SectionBuffer,
|
||||||
ROB_ATTR_NAME, sUndefined);
|
ROB_ATTR_NAME, sUndefined);
|
||||||
|
|
||||||
// This driver is defined in robot's xml-file
|
// This driver is defined in robot's xml-file
|
||||||
|
@ -158,6 +161,12 @@ extern "C" int moduleWelcome(const tModWelcomeIn* welcomeIn, tModWelcomeOut* wel
|
||||||
Drivers.push_back(make_pair(sDriverName, sDriverDesc));
|
Drivers.push_back(make_pair(sDriverName, sDriverDesc));
|
||||||
} // for i
|
} // for i
|
||||||
|
|
||||||
|
if (GfParmWriteFile(nullptr, pRobotSettings, "shadow"))
|
||||||
|
{
|
||||||
|
PLogSHADOW->error("GfParmWriteFile failed\n");
|
||||||
|
ret = -1;
|
||||||
|
}
|
||||||
|
|
||||||
GfParmReleaseHandle(pRobotSettings);
|
GfParmReleaseHandle(pRobotSettings);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -169,7 +178,7 @@ extern "C" int moduleWelcome(const tModWelcomeIn* welcomeIn, tModWelcomeOut* wel
|
||||||
// Set max nb of interfaces to return.
|
// Set max nb of interfaces to return.
|
||||||
welcomeOut->maxNbItf = Drivers.size();
|
welcomeOut->maxNbItf = Drivers.size();
|
||||||
|
|
||||||
return 0;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Module entry point (new fixed name scheme).
|
// Module entry point (new fixed name scheme).
|
||||||
|
@ -210,12 +219,13 @@ extern "C" int shadow(tModInfo *modInfo)
|
||||||
nameBuffer = "shadow";
|
nameBuffer = "shadow";
|
||||||
|
|
||||||
// Filehandle for robot's xml-file
|
// Filehandle for robot's xml-file
|
||||||
void *pRobotSettings = GfParmReadFileLocal(pathBuffer, GFPARM_RMODE_STD);
|
void *pRobotSettings = GfParmReadFileLocal(pathBuffer,
|
||||||
|
GFPARM_RMODE_STD | GFPARM_RMODE_CREAT);
|
||||||
|
|
||||||
if (pRobotSettings)
|
if (pRobotSettings)
|
||||||
{ // Let's look what we have to provide here
|
{ // Let's look what we have to provide here
|
||||||
char SectionBuffer[BUFSIZE];
|
char SectionBuffer[BUFSIZE];
|
||||||
int n = GfParmGetEltNb(pRobotSettings, ROB_SECT_ROBOTS);
|
int ret = 0, n = GfParmGetEltNb(pRobotSettings, ROB_SECT_ROBOTS);
|
||||||
|
|
||||||
for (int i = 0; i < n; i++)
|
for (int i = 0; i < n; i++)
|
||||||
{
|
{
|
||||||
|
@ -224,7 +234,14 @@ extern "C" int shadow(tModInfo *modInfo)
|
||||||
std::string sDriverDesc = GfParmGetStr(pRobotSettings, SectionBuffer, ROB_ATTR_DESC, "");
|
std::string sDriverDesc = GfParmGetStr(pRobotSettings, SectionBuffer, ROB_ATTR_DESC, "");
|
||||||
Drivers.push_back(make_pair(sDriverName, sDriverDesc));
|
Drivers.push_back(make_pair(sDriverName, sDriverDesc));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (GfParmWriteFile(nullptr, pRobotSettings, "shadow"))
|
||||||
|
ret = -1;
|
||||||
|
|
||||||
GfParmReleaseHandle(pRobotSettings);
|
GfParmReleaseHandle(pRobotSettings);
|
||||||
|
|
||||||
|
if (ret)
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
return moduleInitialize(modInfo);
|
return moduleInitialize(modInfo);
|
||||||
|
|
|
@ -263,13 +263,19 @@ void* GetFileHandle(const char* RobotName)
|
||||||
snprintf(BufPathXMLRel, BUFSIZE, // Robot's xml-filename
|
snprintf(BufPathXMLRel, BUFSIZE, // Robot's xml-filename
|
||||||
"drivers/%s/%s.xml",RobotName,RobotName);// relative to installation
|
"drivers/%s/%s.xml",RobotName,RobotName);// relative to installation
|
||||||
|
|
||||||
|
std::string dirstr = std::string(GfLocalDir()) + "drivers" + RobotName;
|
||||||
|
const char *dir = dirstr.c_str();
|
||||||
|
|
||||||
|
if (GfDirCreate(dir) != GF_DIR_CREATED)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
// Test local installation path
|
// Test local installation path
|
||||||
snprintf(BufPathXML, BUFSIZE, "%s%s",
|
snprintf(BufPathXML, BUFSIZE, "%s%s",
|
||||||
GetLocalDir(), RobPathXMLRel);
|
GetLocalDir(), RobPathXMLRel);
|
||||||
snprintf(BufPathDir, BUFSIZE, "%s%s",
|
snprintf(BufPathDir, BUFSIZE, "%s%s",
|
||||||
GetLocalDir(), RobPathDirRel);
|
GetLocalDir(), RobPathDirRel);
|
||||||
RobotSettings = GfParmReadFile
|
RobotSettings = GfParmReadFile
|
||||||
(RobPathXML, GFPARM_RMODE_STD );
|
(RobPathXML, GFPARM_RMODE_STD | GFPARM_RMODE_CREAT);
|
||||||
|
|
||||||
if (!RobotSettings)
|
if (!RobotSettings)
|
||||||
{
|
{
|
||||||
|
@ -281,6 +287,13 @@ void* GetFileHandle(const char* RobotName)
|
||||||
RobotSettings = GfParmReadFile
|
RobotSettings = GfParmReadFile
|
||||||
(RobPathXML, GFPARM_RMODE_STD );
|
(RobPathXML, GFPARM_RMODE_STD );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (GfParmWriteFile(nullptr, RobotSettings, "simplix"))
|
||||||
|
{
|
||||||
|
GfParmReleaseHandle(RobotSettings);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
return RobotSettings;
|
return RobotSettings;
|
||||||
}
|
}
|
||||||
//==========================================================================*
|
//==========================================================================*
|
||||||
|
|
|
@ -93,22 +93,24 @@ extern "C" int moduleWelcome(const tModWelcomeIn* welcomeIn,
|
||||||
// Save module name and loadDir, and determine module XML file pathname.
|
// Save module name and loadDir, and determine module XML file pathname.
|
||||||
setRobotName(welcomeIn->name);
|
setRobotName(welcomeIn->name);
|
||||||
|
|
||||||
// Filehandle for robot's xml-file
|
|
||||||
void *pRobotSettings = GfParmReadFileLocal(pathBuffer, GFPARM_RMODE_STD);
|
|
||||||
|
|
||||||
PLogUSR = GfLogger::instance("USR");
|
PLogUSR = GfLogger::instance("USR");
|
||||||
|
|
||||||
|
std::string dirstr = std::string(GfLocalDir()) + "drivers/usr";
|
||||||
|
const char *dir = dirstr.c_str();
|
||||||
|
|
||||||
|
if (GfDirCreate(dir) != GF_DIR_CREATED)
|
||||||
|
{
|
||||||
|
PLogUSR->error("GfDirCreate %s failed\n", dir);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Filehandle for robot's xml-file
|
||||||
|
int ret = 0;
|
||||||
|
void *pRobotSettings = GfParmReadFileLocal(pathBuffer,
|
||||||
|
GFPARM_RMODE_STD | GFPARM_RMODE_CREAT);
|
||||||
|
|
||||||
if (pRobotSettings) // robot settings XML could be read
|
if (pRobotSettings) // robot settings XML could be read
|
||||||
{
|
{
|
||||||
char SectionBuffer[BUFSIZE];
|
|
||||||
snprintf(SectionBuffer, BUFSIZE, "%s/%s/%d", ROB_SECT_ROBOTS, ROB_LIST_INDEX, 0);
|
|
||||||
|
|
||||||
// Try to get first driver from index 0
|
|
||||||
string sDriverName = GfParmGetStrNC(pRobotSettings,
|
|
||||||
SectionBuffer,
|
|
||||||
ROB_ATTR_NAME,
|
|
||||||
const_cast<char*>(sUndefined));
|
|
||||||
|
|
||||||
// Loop over all possible drivers, clear all buffers,
|
// Loop over all possible drivers, clear all buffers,
|
||||||
// save defined driver names and descriptions.
|
// save defined driver names and descriptions.
|
||||||
Drivers.clear();
|
Drivers.clear();
|
||||||
|
@ -117,9 +119,11 @@ extern "C" int moduleWelcome(const tModWelcomeIn* welcomeIn,
|
||||||
|
|
||||||
for (int i = 0; i < n; i++)
|
for (int i = 0; i < n; i++)
|
||||||
{
|
{
|
||||||
|
char SectionBuffer[BUFSIZE];
|
||||||
|
|
||||||
snprintf(SectionBuffer, BUFSIZE, "%s/%s/%d", ROB_SECT_ROBOTS, ROB_LIST_INDEX, i);
|
snprintf(SectionBuffer, BUFSIZE, "%s/%s/%d", ROB_SECT_ROBOTS, ROB_LIST_INDEX, i);
|
||||||
|
|
||||||
sDriverName = GfParmGetStr(pRobotSettings, SectionBuffer,
|
std::string sDriverName = GfParmGetStr(pRobotSettings, SectionBuffer,
|
||||||
ROB_ATTR_NAME, sUndefined);
|
ROB_ATTR_NAME, sUndefined);
|
||||||
|
|
||||||
// This driver is defined in robot's xml-file
|
// This driver is defined in robot's xml-file
|
||||||
|
@ -128,6 +132,12 @@ extern "C" int moduleWelcome(const tModWelcomeIn* welcomeIn,
|
||||||
Drivers.push_back(make_pair(sDriverName, sDriverDesc));
|
Drivers.push_back(make_pair(sDriverName, sDriverDesc));
|
||||||
} // for i
|
} // for i
|
||||||
|
|
||||||
|
if (GfParmWriteFile(nullptr, pRobotSettings, "usr"))
|
||||||
|
{
|
||||||
|
PLogUSR->error("GfDirCreate %s failed\n", dir);
|
||||||
|
ret = -1;
|
||||||
|
}
|
||||||
|
|
||||||
GfParmReleaseHandle(pRobotSettings);
|
GfParmReleaseHandle(pRobotSettings);
|
||||||
}
|
}
|
||||||
else // if robot settings XML could not be read
|
else // if robot settings XML could not be read
|
||||||
|
@ -139,7 +149,7 @@ extern "C" int moduleWelcome(const tModWelcomeIn* welcomeIn,
|
||||||
// Set max nb of interfaces to return.
|
// Set max nb of interfaces to return.
|
||||||
welcomeOut->maxNbItf = Drivers.size();
|
welcomeOut->maxNbItf = Drivers.size();
|
||||||
|
|
||||||
return 0;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Module entry point (new fixed name scheme).
|
// Module entry point (new fixed name scheme).
|
||||||
|
@ -175,17 +185,24 @@ extern "C" int moduleTerminate()
|
||||||
// Module entry point
|
// Module entry point
|
||||||
extern "C" int usr(tModInfo *modInfo)
|
extern "C" int usr(tModInfo *modInfo)
|
||||||
{
|
{
|
||||||
|
std::string dirstr = std::string(GfLocalDir()) + "drivers/usr";
|
||||||
|
const char *dir = dirstr.c_str();
|
||||||
|
|
||||||
|
if (GfDirCreate(dir) != GF_DIR_CREATED)
|
||||||
|
return -1;
|
||||||
|
|
||||||
Drivers.clear();
|
Drivers.clear();
|
||||||
pathBuffer = "drivers/usr/usr.xml";
|
pathBuffer = "drivers/usr/usr.xml";
|
||||||
nameBuffer = "usr";
|
nameBuffer = "usr";
|
||||||
|
|
||||||
// Filehandle for robot's xml-file
|
// Filehandle for robot's xml-file
|
||||||
void *pRobotSettings = GfParmReadFileLocal(pathBuffer, GFPARM_RMODE_STD);
|
void *pRobotSettings = GfParmReadFileLocal(pathBuffer,
|
||||||
|
GFPARM_RMODE_STD | GFPARM_RMODE_CREAT);
|
||||||
|
|
||||||
if (pRobotSettings) // Let's look what we have to provide here
|
if (pRobotSettings) // Let's look what we have to provide here
|
||||||
{
|
{
|
||||||
char SectionBuffer[BUFSIZE];
|
char SectionBuffer[BUFSIZE];
|
||||||
int n = GfParmGetEltNb(pRobotSettings, ROB_SECT_ROBOTS);
|
int ret = 0, n = GfParmGetEltNb(pRobotSettings, ROB_SECT_ROBOTS);
|
||||||
|
|
||||||
for (int i = 0; i < n; i++)
|
for (int i = 0; i < n; i++)
|
||||||
{
|
{
|
||||||
|
@ -195,7 +212,13 @@ extern "C" int usr(tModInfo *modInfo)
|
||||||
Drivers.push_back(make_pair(sDriverName, sDriverDesc));
|
Drivers.push_back(make_pair(sDriverName, sDriverDesc));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (GfParmWriteFile(nullptr, pRobotSettings, "usr"))
|
||||||
|
ret = -1;
|
||||||
|
|
||||||
GfParmReleaseHandle(pRobotSettings);
|
GfParmReleaseHandle(pRobotSettings);
|
||||||
|
|
||||||
|
if (ret)
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
return moduleInitialize(modInfo);
|
return moduleInitialize(modInfo);
|
||||||
|
|
Loading…
Reference in a new issue