Configuration manager with DCF in object 0x1F22 rewritten almost from scratch.
1. The boot-up message from a device starts a verification of entries
2. If all entries matches the node is started
3. If an entry differs the whole dcf is written and a save is done
4. A reset is send to the node
5. If several boot-up are received at the same time they will be managed one
by one thus only one free sdo client is needed for the whole process.
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h>
#include <errno.h>
#include "console.h"
void showhelp(void) {
printf("\nCanFestival kernel test example console\n\n");
printf("start - start example\n");
printf("stop - stop example\n");
printf("quit - quit console\n");
printf("\n");
}
int main(int argc,char *argv[])
{
int canf_ktest_dev, cmd;
char command[10];
char device_path[20] = "/dev/";
// create absolute path name for device
strcat (device_path, DEVICE_NAME);
canf_ktest_dev = open (device_path, O_WRONLY);
if (canf_ktest_dev == -1) {
perror ("Opening device");
return 1;
}
showhelp();
while (1) {
printf("> ");
scanf ("%s", &command);
if (strcmp(command,"start") == 0)
cmd = CMD_START;
else if (strcmp(command,"stop") == 0)
cmd = CMD_STOP;
else if (strcmp(command,"quit") == 0)
break;
else {
printf("Bad command\n");
continue;
}
write(canf_ktest_dev, &cmd, sizeof(cmd));
}
close(canf_ktest_dev);
return 0;
}