Edit2: With our units when they start up we have a "System Startup in Progress. Please wait." message in startup. If the system does not see the proper files/commands and the message does not go away the unit auto-reboots in approximately 5 minutes. Perhaps something similar is happening on your unit?
Hi,
I haven't got a reboot problem, my unit goes in suspend /standby mode, radio and backlight turned off, and it happens after 30 minutes. When it happens, I have to extract the display, insert it again and then it wakes up, and then I have to press the src button to wakes up the radio again. When it wakes up, IGO is still running in background, so it is not a reboot but a suspend / standby event.
About the builtin navigation software, it starts a process called "HMIManager.exe", it is the Main program and it is located in My Flash Disk\PRG0. HMIManager.exe starts navi.exe, tel.exe, voice.exe etc.
If this process is not in ram (I tried to change the name of IGO exe in HMIManager.exe, the device not starts, goes in a freeze mode).
So if I want to use IGO, I have to resolve the issue of suspend mode after 30 minutes, but I don't know how, I'm trying to write C code and this evening I'll try the following code where I force a power requirement for backlight and I try to simulate a mouse move,but I suspect there is some hidden process started by NandFlash that suspends the device if HMIManager is not in ram, or something like it:
#include <stdio.h>
#include <windows.h>
#include <commctrl.h>
#include <winbase.h>
#include <pm.h>
#define POWER_NAME (DWORD)(0x00000001)
#define D0 0
#define POWER_STATE_ON (DWORD)(0x00010000) // on state
#define POWER_FORCE (DWORD)(0x00001000)
int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow)
{
SetPowerRequirement(L"BKL1:", D0, POWER_NAME, NULL, 0);
HANDLE hevReloadActivityTimeouts = OpenEvent(EVENT_ALL_ACCESS, FALSE,L"PowerManager/ReloadActivityTimeouts");
if (hevReloadActivityTimeouts)
{
SetEvent(hevReloadActivityTimeouts);
CloseHandle(hevReloadActivityTimeouts);
}
while(TRUE) {
mouse_event(MOUSEEVENTF_MOVE, 100, 0, 0, 0);
SetPowerRequirement(L"BKL1:", D0, POWER_NAME, NULL, 0);
SystemIdleTimerReset();
SetSystemPowerState(NULL, POWER_STATE_ON, POWER_FORCE);
Sleep(5000);
}
return 0;
}