WMC v2.3 wiki
Product Overview
Using
OSS API*
Advanced
Resources
Product Overview
Using
OSS API*
Advanced
Resources
This is an old revision of the document!
La Wirma Road HD est vraiment superbe.
Ce serait bien d'ajouter à ce paragraphe une brève description ainsi qu'un ou deux cas d'utilisation.
We have developed wirmaaudio script in order to help you to use the audio functionalities of the Wirma Road-HD.
[root@WirmaV3_05FFFF /root]# wirmaaudio [command] [argument]
command list :
argument list :
The output resolution is 1280×768 24-bit color. The connector is a DVI-I in order to use analog or digital signals.
Recommanded by Innes :
[root@WirmaV3_05000007 /root]# cd /usr/root [root@WirmaV3_05000007 root]# HOME=/root DISPLAY=:0.0 /usr/bin/playzilla/playzilla
The composition must be copied (for instance by FTP) in the /usr/playzilla/playout directory.
In order to calibrate your display, you can use a test picture. To display it you must set to true the innes.player.mire flag in this file :
/usr/playzilla/profile/prefs.js
# Mozilla User Preferences /* Do not edit this file. * * If you make changes to this file while the application is running, * the changes will be overwritten when the application exits. * * To make a manual change to preferences, you can visit the URL about:config * For more information, see http://www.mozilla.org/unix/customizing.html#prefs */ user_pref("extensions.blocklist.pingCountVersion", 0); user_pref("extensions.databaseSchema", 5); user_pref("extensions.lastAppVersion", "3.10.10"); user_pref("extensions.lastPlatformVersion", "7.0"); user_pref("innes.player.mire", false);
Your license key is in file :
/usr/playzilla/profile/preferences/license-key.js
pref("innes.appli.license-key", "ABCDE-1234-FGHI-5678-JKLMN");
Pin | Software affectation |
---|---|
6 | digital/counter = 0 |
5 | digital/counter = 1 |
7 | digital/counter = 2 |
18 | digital/counter = 3 |
8 | digital/counter = 4 |
19 | digital/counter = 5 |
9 | digital/counter = 6 |
20 | digital/counter = 7 |
This software description is done in /knet/knetd.xml configuration file in the component part corresponding to pca9555 product:
<COMPONENT type="i2c" address="0x41" int="/dev/gpi_09" product="pca9555"> <IO digital="0" subid="0" /> <IO digital="1" subid="1" /> <IO digital="2" subid="2" /> <IO digital="3" subid="3" /> <IO digital="4" subid="4" /> <IO digital="5" subid="5" /> <IO digital="6" subid="6" /> <IO digital="7" subid="7" /> </COMPONENT>
<COMPONENT type="i2c" address="0x41" int="/dev/gpi_09" product="pca9555"> <IO digital="0" subid="0" /> <IO digital="1" subid="1" /> <IO digital="2" subid="2" /> <IO digital="3" subid="3" /> <IO counter="4" subid="4" /> <IO digital="5" subid="5" /> <IO digital="6" subid="6" /> <IO digital="7" subid="7" /> </COMPONENT>
Front panel name | Software affectation |
---|---|
UART1 | /dev/ttyRoad0 |
UART2 | /dev/ttyRoad1 |
UART3 | /dev/ttyRoad2 |
UART4 | /dev/ttyRoad3 |
Serial speed can be set up to 460.8kbits/s.
Flow control (CTS/RTS) signals are available in RS232.
Serial ports can be configured to work as RS232 or RS485. The pocedure to change configuration is :
/etc/ftdiroad.cfg
# # USB FTDI devices configuration # This configuration is sourced by ftdiroad script # # Format: # UARTX={device_name},{serial_type} # # ex: UART1=ttyRoad0,485 # UART1=ttyRoad0,485 UART2=ttyRoad1,232 UART3=ttyRoad2,232 UART4=ttyRoad3,232
[root@WirmaV3_05000007 /root]# ftdiroad start
After a write operation, it is advised to perform a tcdrain operation to wait for the end of transmission.
Pin | Software affectation |
---|---|
6 | adc = 0 |
5 | adc = 1 |
7 | adc = 2 |
18 | adc = 3 |
8 | adc = 4 |
19 | adc = 5 |
9 | adc = 6 |
20 | adc = 7 |
This software description is done in /knet/knetd.xml configuration file in the component part corrresponding to ad7998 product :
<COMPONENT type="i2c" address="0x21" product="ad7998"> <IO adc="0" subid="0" /> <IO adc="1" subid="1" /> <IO adc="2" subid="2" /> <IO adc="3" subid="3" /> <IO adc="4" subid="4" /> <IO adc="5" subid="5" /> <IO adc="6" subid="6" /> <IO adc="7" subid="7" /> </COMPONENT>
Note that ADC7 is internally reserved.
Some internal ADCs are available to get boards statistic. The description is done in /knet/knetd.xml configuration file in the cpu part :
<COMPONENT type="cpu" > <IO apc="0" address="/dev/gpio_23" /> <IO adc="12" address="in2_input" /> <!-- gyro --> <IO adc="13" address="in3_input" /> <!-- adc_3v3 --> <IO adc="14" address="in4_input" /> <!-- adc_3v3_video --> <IO adc="15" address="in5_input" /> <!-- adc_5v --> <IO adc="16" address="in6_input" /> <!-- adc_backup_power --> <IO adc="17" address="in7_input" /> <!-- adc_main_power --> <IO adc="18" address="temp1_input" /> <!-- module_temp --> </COMPONENT>
Read values are in mV, you need formulas to convert it in real measure :
Road name | default KMS number | Conversion formula |
---|---|---|
gyro | 12 | value * 2 |
adc_3v3 | 13 | value * 2 |
adc_3v3_video | 14 | value * 2 |
adc_5v | 15 | value * 2 |
adc_backup_power | 16 | value * 16 |
adc_main_power | 17 | value * 16 |
module_temp | 18 | value |
The device doesn't provide any Dead Reckoning algorithm.
Anyway user can implement this feature using a specific XML command to get synchronized data which can be used to feed a Dead Reckoning algorithm. These data are :
The only configuration to be done is to define the odometer input where the vehicule odometer is connected.
Modify the /knet/knetd.xml file to set the corresponding input to “counter” mode as descibed here : PIN affectation on the IO connector.
To request the periodic synchronized data, send the following command the M2M agent (in this example, odometer is connected to input 2) :
<positionext odo="2" gyro="7" name="pos"/>
Then, one frame is send per second to the application with the following format:
<positionext date="2009-12-04 16:49:16" fix="1" lat="4812536" long="-162898" alt="66" course="0" speed="0" nsat="6" hdop="1"> <sensor id="1" acc_x="113" acc_y="121" acc_z="191" gyro="2041" odo="242"/> <sensor id="2" acc_x="112" acc_y="119" acc_z="190" gyro="2040" odo="245"/> <sensor id="3" acc_x="112" acc_y="120" acc_z="190" gyro="2040" odo="250"/> <sensor id="4" acc_x="112" acc_y="119" acc_z="190" gyro="2040" odo="253"/> <sensor id="5" acc_x="111" acc_y="120" acc_z="191" gyro="2040" odo="260"/> </positionext>5 sensor acquisitions (every 200ms) are gathered with on GPS acquisition, so, for this frame, time stamping are :
sensor id="1" => 2009-12-04 16:49:15 and 200 milliseconds sensor id="2" => 2009-12-04 16:49:15 and 400 milliseconds sensor id="3" => 2009-12-04 16:49:15 and 600 milliseconds sensor id="4" => 2009-12-04 16:49:15 and 800 milliseconds sensor id="5" => 2009-12-04 16:49:16 gps position => 2009-12-04 16:49:16
If you need some help or some example with graphics & java application, we place at your disposal this dota : Archive SWT Example.
You must execute the /root/swtexample and it will launch and display the controlexample provided by Eclipse. If you want the source code you can find it in Eclipse package.
The Wirma MMI displays information read throught KMS link of the Wirma Road. However this application is also connected to the local agent in Wirma MMI. It is necessary in order to drive the power management.
The application in Wirma MMI must know the IP address of the remote agent.
This GTK application provides MMI to the user. It is connected to knetd on Wirma Road and on Wirma MMI.
Its features are :
It is the local agent that manage/monitor the graphical application (start, stop, application ping, …). Thus on the Wirma MMI we can find the directory /mnt/fsuser-1/test-graphical/ where we have the binary of the application and the manifest.xml file.
WIRMA ROAD is firstly powered by main power supply, during the boot, it raised power supply signal to the MMI device which starts booting.
When a request of standby mode is transmitted to the agent of the Wirma Road, it send this information to all connected applications (including our graphical application). The graphical application read this message and also request to the local MMI agent to enter standby mode.
When APC is rising, the ROAD is automatically waked up from standby mode and the MMI is then woken up by a control pin.
The agent of the Wirma Road (or RS) monitor the APC signal. When this signal is falling down, before shutting down it broadcast this information to all connected applications. The graphical application catch this message and also request to the local MMI agent to power-off.
Source package : test-graphical-sources.tar.gz. FTP access login is “wirmav2” and password is “rennes35”.
Doxygen documentation of the source code is here.
The Wirma Hub is a simple solution to extend interface capabilities of any product of WIRMA family.
There are 2 main ways to use it, depending on wanted interfaces.
The Hub is controlled by a Wirma product through USB cable (male A-Type, male B-Type).
It is powered (11-36V) by the 22-pins µFit cable.
In this mode, all interfaces are enabled.
The Hub is controlled and powered by a Wirma product through USB cable. In this mode,
Front panel name | Software affectation |
---|---|
UART1 | /dev/ttyHub0 |
UART2 | /dev/ttyHub1 |
UART3 | /dev/ttyHub2 |
UART4 | /dev/ttyHub3 |
Serial ports can be configured to work as RS232 or RS485. The procedure to change configuration is :
/etc/ftdihub.cfg
# # USB FTDI devices configuration # This configuration is sourced by ftdihub script # # Format: # UARTX={device_name},{serial_type} # # ex: UART1=ttyHub0,485 # UART1=ttyHub0,485 UART2=ttyHub1,232 UART3=ttyHub2,232 UART4=ttyHub3,232
[root@WirmaV3_05000007 /root]# ftdihub start
IO and ADC declaration need to be done in M2M agent configuration file. Two declaration blocks need to be added for ADC and digital I/O components.
<COMPONENT type="i2c" address="0x21" bus="3" product="ad7998"> <IO adc="20" subid="0" /> <IO adc="21" subid="1" /> <IO adc="22" subid="2" /> <IO adc="23" subid="3" /> <IO adc="24" subid="4" /> <IO adc="25" subid="5" /> <IO adc="26" subid="6" /> <IO adc="27" subid="7" /> </COMPONENT> <COMPONENT type="i2c" address="0x41" bus="3" product="pca9555"> <IO digital="20" subid="0" /> <IO digital="21" subid="1" /> <IO digital="22" subid="2" /> <IO digital="23" subid="3" /> <IO digital="24" subid="4" /> <IO digital="25" subid="5" /> <IO digital="26" subid="6" /> <IO digital="27" subid="7" /> </COMPONENT>
[root@WirmaV3_05000007 /root]# reboot