[Advantage X7500, MDA Ameo ROM Development] eaglesteve:
GSensor Explained

GSensor and SKKV GSEN explained

Since my post # 11, I have done more testing and come up with a more complete understanding on sensors, auto-rotate, Gsensor, bubble-level/calibration related applications.

When you first install the Sogarth base ROM, there following three services will be installed:

- GSensor Service (AP11)

- HTC Sensor Service (Athena)(SEN1: )

- HTC Sensor Service (SEN0: )

The first item, GSensor Service, appears to be the overall control, which could not be stopped. That leaves us to only have to understand what the second and third items, HTC Sensor Service with almost identifcal name but each controlling a specific behaviour of our device.

The HTC Sensor Service (Athena)(SEN1: ) is the service that must be active for the device to auto-rotate with HTC's own software (i.e, without the help of third party software such as the GSensor from SKKV). If you disable or stop this service, then auto-rotate will also be disabled (unless you use the approach will I'll explain later).

The HTC Sensor Service (SEN0: ) on the other hand, is not needed for auto-rotate to work. However, it is needed for applications such as the Bubble Level, Calibrator (not sure of the name, but I think you know which one), and GSensor SKKV to work. If you try to start BubbleLevel with the HTC Sensor Service disabled or stopped, then you will not get the measurement at the top right hand corner (instead you will see the word "NaN" degree). If you try to use the SKKV GSEN program without this service running, you will get the "Cannot conect to GSensor(3)" message. These third party softwares does NOT require the HTC Sensor Service (Athena)(SEN1: ) to be active.

Therefore, the procedure for improving performance depends on what you want to achieve: Let's cover a few scenarios.

1) If all that you're interested is to be able to run the BubbleLevel program and to play GSensor controlled game but you do not want auto-rotate to slow down the system, then you should Disable HTC Sensor Service (Athena)(SEN1: ).

2)If all that you want is the auto-rotate, but nothing else, and you do not mind auto-rotate working in all applications, then you should enable HTC Sensor Service (Athena)(SEN1: ) but disable HTC Sensor Service (SEN0: )

3) If you want to automatically blank the screen by placing the device face down then regardless of whether you want auto-rotate to work globally, not at all, or just for specific applications), then you should also disable Sensor Service (Athena)(SEN1: ) but enable HTC Sensor Service (SEN0: ).

SKKV GSenCFG allows you to say what you want to do. For example:

- do you want to enable or disable the FaceDownScreenOff function?Enter #fdscreenoff(1) to enable, and #fdscreenoff(0) to disable. Note that this blanking of screen gives an illusion that the device has been switched off, but it isn't. If you're connected via active sync, and you place it face down, the screen will blank but active sync connection will stay alive. So it is not the same as switching off the device.

- do you want to list the program to be included or excluded from auto-rotate? If auto-rotate is to EXCLUDE those listed in the config file, then enter #onlyfor(0). If auto-rotate is to only work for those in the config file, then enter #onlyfor(1) in the configuration file.

- To list the program in the configuration file, first start that program, then start GSENCFG and if you click Edit/Select Window Name, you will easily recognise the window name. Just click on that for the line to be inserted into the configuration file.

- specify how fast you want the blanking /rotation to work in the #timeout(nnn) line. The smaller the number the faster the device will rotate. I tried #timeout(50) and had good result. You might want to experiement with this yourself

Hope this makes the whole concept crystal clear. Note that I have made some edit on post 11 to correct some earlier misinformation.

Finally, I have a piece of bad new: The above is true only for the Sogarth Base ROM. The vanilla does does not seem to allow my BubbleLevel to run at all. Irus, you might want to look into this.