Skip to main content

MMI Simulation

4 replies [Last post]
tgwozdz
Offline
Joined: 2009-06-23

In the experimental mmi branch, there was a Java tool called MMITest which could be used to send fake MMI messages to the RI Simulator. It looks like the non-experimental mmi branch has some other method of doing this? Something having to do with UAL or DRI? Is this a different way that I can use send MMI messages to the simulator? How would I make this work?
Thanks!

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
smaynard
Offline
Joined: 2009-01-27

You are correct, the RI has a telnet interface (telnet <RI IP address> 23000) that has a series of test menus. An MMI menu was added allowing the use to inject a fake MMI event into the queue that the stack responds to. So after the default handler is installed one could invoke the test interface, go to the MMI menu and open a broadcast MMI session. If you don't have a BOCR device you'll be emulating this activity with a simple "hello world" page or two that is located in $PLATFORMROOT/src/cablecard.c
my test run:
smaynard@conic ~/atelite/testsuite

> telnet localhost 23000
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.

Test Application v1.00

|---+-----------------------
| p | Platform
|---+-----------------------
| u | UAL
|---+-----------------------
| g | Gstreamer pipline
|---+-----------------------
| d | Display
|---+-----------------------
| x | Exit
|---+-----------------------

//Test > u

----------------------------
| UAL
|---+-----------------------
| c | call stats
|---+-----------------------
| d | detune
|---+-----------------------
| f | force tune
|---+-----------------------
| m | debug Mode
|---+-----------------------
| t | token stats
|---+-----------------------
| u | UPnP tests
|---+-----------------------
| x | Exit
|---+-----------------------

//Test/UAL > u

----------------------------
| UPnP
|---+-----------------------
| a | mAnual UPnP functions
|---+-----------------------
| f | FDC test
|---+-----------------------
| g | GPNVS test
|---+-----------------------
| m | MMI test
|---+-----------------------
| o | OPA test
|---+-----------------------
| t | Tune Tests
|---+-----------------------
|---+-----------------------
| z | exit and start the stack
|---+-----------------------
| y | exit and shutdown
|---+-----------------------
| x | Exit
|---+-----------------------

//Test/UAL/UPnP > m

----------------------------
| MMI
|---+-----------------------
| o | Open MMI dialog
|---+-----------------------
| b | open Broadcast MMI
|---+-----------------------
| c | Close MMI dialog
|---+-----------------------
| d | Dump event lists
|---+-----------------------
| p | Post event
|---+-----------------------
| g | Get event
|---+-----------------------
| e | complete Event
|---+-----------------------
| x | Exit
|---+-----------------------

//Test/UAL/UPnP/MMI > o
Open MMI...
dialogRequest: 101

----------------------------
| MMI
|---+-----------------------
| o | Open MMI dialog
|---+-----------------------
| b | open Broadcast MMI
|---+-----------------------
| c | Close MMI dialog
|---+-----------------------
| d | Dump event lists
|---+-----------------------
| p | Post event
|---+-----------------------
| g | Get event
|---+-----------------------
| e | complete Event
|---+-----------------------
| x | Exit
|---+-----------------------

//Test/UAL/UPnP/MMI > x

----------------------------
| UPnP
|---+-----------------------
| a | mAnual UPnP functions
|---+-----------------------
| f | FDC test
|---+-----------------------
| g | GPNVS test
|---+-----------------------
| m | MMI test
|---+-----------------------
| o | OPA test
|---+-----------------------
| t | Tune Tests
|---+-----------------------
|---+-----------------------
| z | exit and start the stack
|---+-----------------------
| y | exit and shutdown
|---+-----------------------
| x | Exit
|---+-----------------------

//Test/UAL/UPnP > x

----------------------------
| UAL
|---+-----------------------
| c | call stats
|---+-----------------------
| d | detune
|---+-----------------------
| f | force tune
|---+-----------------------
| m | debug Mode
|---+-----------------------
| t | token stats
|---+-----------------------
| u | UPnP tests
|---+-----------------------
| x | Exit
|---+-----------------------

//Test/UAL > x

Test Application v1.00

|---+-----------------------
| p | Platform
|---+-----------------------
| u | UAL
|---+-----------------------
| g | Gstreamer pipline
|---+-----------------------
| d | Display
|---+-----------------------
| x | Exit
|---+-----------------------

//Test > x

bye

Connection closed by foreign host.
smaynard@conic ~/atelite/testsuite
> telnet localhost 23000

The dialog id (101 in this example) is not used. If running the default handler, the result is a window appearing as an overlay on the video with "hello world" and a page 2 and page 3 link. The page 2 link works and takes you to a "goodbye world" page with a single page 3 link. In all cases the page 3 link leads to a non-existent page to test that functionality. In all cases selecting the "OK" button will dismiss the window.

One could modify the code to include the use of libcurl and extract data from an external server. This would be placed in the cablecard_MMI() method. Of course the localhost_MMI method could also be used to return any type of html data desired.

Invoking the telnet open MMI dialog twice exercises the multi-window functionality of the MMI contribution.

smaynard
Offline
Joined: 2009-01-27

The ATP test HTML pages have been added to the MMI tests to display "simple HTML" support as outlined in the CCIF spec.
Using the same RI telnet interface (telnet <RI IP address> 23000) the GPNVS menu allows access to the internal ATP HEML pages. As described above, after the default handler is installed one could invoke the test interface, go to the GPNVS menu and open an internal MMI session to the GPNVS resource pages.
my test run:
smaynard@conic ~/atelite/testsuite
> telnet localhost 23000
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.

Test Application v1.00

|---+-----------------------
| p | Platform
|---+-----------------------
| u | UAL
|---+-----------------------
| g | Gstreamer pipline
|---+-----------------------
| d | Display
|---+-----------------------
| x | Exit
|---+-----------------------

//Test > u

----------------------------
| UAL
|---+-----------------------
| c | call stats
|---+-----------------------
| d | detune
|---+-----------------------
| f | force tune
|---+-----------------------
| m | debug Mode
|---+-----------------------
| t | token stats
|---+-----------------------
| u | UPnP tests
|---+-----------------------
| x | Exit
|---+-----------------------

//Test/UAL > u

----------------------------
| UPnP
|---+-----------------------
| a | mAnual UPnP functions
|---+-----------------------
| f | FDC test
|---+-----------------------
| g | GPNVS test
|---+-----------------------
| m | MMI test
|---+-----------------------
| o | OPA test
|---+-----------------------
| t | Tune Tests
|---+-----------------------
|---+-----------------------
| z | exit and start the stack
|---+-----------------------
| y | exit and shutdown
|---+-----------------------
| x | Exit
|---+-----------------------

//Test/UAL/UPnP > g

----------------------------
| GPNVS
|---+-----------------------
| g | Get value
|---+-----------------------
| i | get value name by Index
|---+-----------------------
| n | get value update Name
|---+-----------------------
| s | Set value
|---+-----------------------
| x | Exit
|---+-----------------------

//Test/UAL/UPnP/GPNVS > s
Set value...

dialogRequest: 1
name: z
value: z

----------------------------
| GPNVS
|---+-----------------------
| g | Get value
|---+-----------------------
| i | get value name by Index
|---+-----------------------
| n | get value update Name
|---+-----------------------
| s | Set value
|---+-----------------------
| x | Exit
|---+-----------------------

//Test/UAL/UPnP/GPNVS > x
----------------------------
| UPnP
|---+-----------------------
| a | mAnual UPnP functions
|---+-----------------------
| f | FDC test
|---+-----------------------
| g | GPNVS test
|---+-----------------------
| m | MMI test
|---+-----------------------
| o | OPA test
|---+-----------------------
| t | Tune Tests
|---+-----------------------
|---+-----------------------
| z | exit and start the stack
|---+-----------------------
| y | exit and shutdown
|---+-----------------------
| x | Exit
|---+-----------------------
//Test/UAL/UPnP > x
----------------------------
| UAL
|---+-----------------------
| c | call stats
|---+-----------------------
| d | detune
|---+-----------------------
| f | force tune
|---+-----------------------
| m | debug Mode
|---+-----------------------
| t | token stats
|---+-----------------------
| u | UPnP tests
|---+-----------------------
| x | Exit
|---+-----------------------
//Test/UAL > x
Test Application v1.00
|---+-----------------------
| p | Platform
|---+-----------------------
| u | UAL
|---+-----------------------
| g | Gstreamer pipline
|---+-----------------------
| d | Display
|---+-----------------------
| x | Exit
|---+-----------------------
//Test > x
bye
Connection closed by foreign host.
smaynard@conic ~/atelite/testsuite
>
The dialog id (1in this example) is used to start at the first ATP HTML page. If running the default handler, the result is a window appearing as an overlay on the video with an MMI test page and a link to the next page. The page links work and take you through a series of HTML pages displaying the simple HTML conformance. In some cases the arrows must be used to scroll to the bottom of the ATP HTML test page to see/select the link to the next page. In all cases selecting the "OK" button will dismiss the window.

tgwozdz
Offline
Joined: 2009-06-23

I notice in trunk that "c - Close MMI dialog" doesn't seem to have an effect. Is this intentional?

smaynard
Offline
Joined: 2009-01-27

The specific open and access via GPNVS described are the only useful MMI commands w/o a BOCR
dialogs can be closed with the default button in all of the test cases