Issues with RhoElements App on MK4000

I'm using an unlicensed version of RhoElements and I'm finding it highly unreliable. My application uses very client-side heavy and there are instances where the whole content area will just go white and I can no longer do anything like go to a different url, reload the page, anything. Any attempts just result in a system beep.

The only thing I can do is restart Rho and hope it doesn't happen again. But most of the time when I go to restart, it will then start telling me that the page cannot be found. It can visit any url except for a url on my domain. The only solution for this is to cold boot.

Ugh. Any ideas on what is going on here?

James Morley-Smith
Hi JoshuaThis is probably

Hi Joshua

This is probably down to memory usage. The MK4000 has a relatively small amount of memory available to applications so you must be conscious of how much program memory your application is using; as you are heavy on JavaScript, it could be running out. You can monitor the memory by enabling the log file and ensuring memory logging is switched on.  (there is a post on using the http logger on here also that might help).

Furthermore, again due to the minimal memory on the MK, you need to preload the scanner at device boot time so that it takes up a low position in the DLL memory stack and will reduce the risk of DLL crunch.

Anyway, first off, monitor your memory usage and go from there.

James.

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Joshua McGinnis
Can you point me to the post

Can you point me to the post on using the http logger? I did a search and was unable to find it.

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


James Morley-Smith
Yes, here you go, Joshua.http
Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Joshua McGinnis
I'm sorry - this not a post

I'm sorry - this not a post on instruction on how to use the http logger. It's a zip file with an uncompiled application. How do I use it? What is its purpose? How does it differ from the log.txt file that is written when the application is running?

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Robert Galvin
Joshua - check out an

Joshua - check out an explanation on how to use the http logger

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Joshua McGinnis
It doesn't work, despite

It doesn't work, despite following your instructions to a T.

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Robert Galvin
Joshua - thanks for giving it

Joshua - thanks for giving it a go. Lets try a couple of things

- Make sure when you click Log/Start in the Logger app that you see the title change to "..Listening"

- Browse to that same address from any browser and you should see an entry added that says "unknown"

If this does not work then the "problem" is on the PC side. I.e. the listener is getting blocked (maybe firewall, virus scanning software, etc).

if you do see the "unknown" then let's double check the RhoElements config file matches.

Can you also post a screen shot of your config.xml and the logger settings page.

Here is what I get from the Device when I browse usingPIE:

rho-logger-IE.PNG

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Joshua McGinnis
Yes, the application is

Yes, the application is listening and when I visited the address in a browser, I was able to see the "Unknown" as you've captured.

Logger Settings: Port: 80, Virtual Path: /Temporary_Listen_Addresses/

Additionally, I'm listening on my PC which is wirelessly connected to my home network. My MK4000 is connected to a wireless bridge on the same network.

"Here is what I get from the Device when I browse usingPIE" - what is PIE and MyMobiler(as present in your screenshot). Not sure if it matters, but I'm invoking Rho directly on the device - not on my PC.

Here is my config file.

<?xml version = "1.0"?>

<!--

RhoElements Configuration file

-->

<Configuration>

  <DebugButtons>

    <DebugButtonsEnabled value="1" />

  </DebugButtons>

<Logger> 

    <LogProtocol   value="HTTP"/> 

    <LogPort       value="80"/> 

    <LogURI        value="192.168.1.5/Temporary_Listen_Addresses/"/> 

    <LogError      value="1"/> 

    <LogWarning    value="1"/> 

    <LogInfo       value="1"/> 

    <LogUser       value="1"/> 

    <LogMemory     value="1"/> 

    <LogMemPeriod  value="5000"/> 

    <LogMaxSize    value="10"/> 

  </Logger> 

  <FileLocations>

    <RegEXFile  value="file://\Program Files\RhoElements\Config\RegEx.xml"/>

    <PluginFile value="file://\Program Files\RhoElements\Config\Plugin.xml"/>

  </FileLocations>

  <Screen>

    <FullScreen value="1"/>

  </Screen>

  <DeviceKeys>

    <EnableFunctionKey_F1     value="0"/>

    <EnableFunctionKey_F2     value="0"/>

    <EnableFunctionKey_F3     value="0"/>

    <EnableFunctionKey_F4     value="0"/>

    <EnableFunctionKey_F5     value="0"/>

    <EnableFunctionKey_F6     value="0"/>

    <EnableFunctionKey_F7     value="0"/>

    <EnableFunctionKey_F8     value="0"/>

    <EnableFunctionKey_F9     value="0"/>

    <EnableFunctionKey_F10    value="0"/>

    <EnableFunctionKey_F11    value="0"/>

    <EnableFunctionKey_F12    value="0"/>

    <EnableApplicationKey_A1  value="0"/>

    <EnableApplicationKey_A2  value="0"/>

    <EnableApplicationKey_A3  value="0"/>

    <EnableApplicationKey_A4  value="0"/>

    <EnableApplicationKey_A5  value="0"/>

    <EnableApplicationKey_A6  value="0"/>

    <EnableApplicationKey_A7  value="0"/>

    <EnableApplicationKey_A8  value="0"/>

  </DeviceKeys>

  <Navigation>

    <NavTimeout value="45000"/>

  </Navigation>

  <ScreenOrientation>

    <AutoRotate value="1" />

  </ScreenOrientation>

  <UserData>

  </UserData>

  <Applications>

    <Application>

            <HTTP_Proxy value=""/>

      <General>

        <Name value="Menu"/>

        <StartPage value="my-app-url" name="Menu"/>

      </General>

      <WebDB>

        <WebStorageDBPath value="file://\Program Files\RhoElements"/>

        <WebSQLDBQuota value="5000000"/>

        <WebSQLDBPath value="file://\Program Files\RhoElements"/>

      </WebDB>

      <ApplicationCache>

        <ApplicationCachePath VALUE="file://\Program Files\RhoElements"/>

        <ApplicationCacheQuota VALUE="5000000"/>

      </ApplicationCache>

      <NPAPI>

        <NPAPIDirectory value="file://\Program Files\RhoElements\NPAPI\"/>

        <Preloads>

          <PreloadLegacyGeneric value="1"/>

          <PreloadLegacyODAX    value="1"/>

          <PreloadLegacyNoSIP   value="1"/>

          <PreloadLegacyAirBeam value="1"/>

          <PreloadLegacyAPD     value="1"/>

          <PreloadJSObjects     value="1"/>

        </Preloads>

      </NPAPI>

      <Preloads>

        <Preload value="Scanner"/>

        <Preload value="Hourglass"/>

        <Preload value="KeyCapture"/>

        <Preload value="SIP"/>

        <Preload value="Signal"/>

        <Preload value="ScreenOrientation"/>

      </Preloads>

      <ScrollBars>

        <ScrollBarsEnabled  value="0" />

      </ScrollBars>

      <HTMLStyles>

        <FitToScreenEnabled    value="1" />

        <ClearTypeEnabled      value="1" />

        <JavascriptEnabled     value="1" />

        <TextSelectionEnabled  value="0" />

        <FontFamily            value="Tahoma" />

      </HTMLStyles>

      <SIP>

        <ResizeOnSIP  value="1"/>

      </SIP>

      <System>

        <LowBatteryScan  value="0"/>

      </System>

      <Sound>

        <DecodeVolume           value="5"/>

        <DecodeFrequency        value="0xBB8"/>

        <InvalidDecodeFrequency value="0x9C4"/>

        <DecodeDuration         value="250"/>

        <ScanDecodeWav          value=""/>

        <ScanInvalidWav         value=""/>

        <ImagerCaptureWav       value=""/>

      </Sound>

      <GUI>

        <SignalRefresh      value="5000"/>

        <BatteryRefresh     value="5000"/>

        <HourglassEnabled   value="1" />

        <HourglassLeft      value="" />

        <HourglassTop       value="" />

      </GUI>

      <Navigation>

        <BadLinkURI value="file://\Program Files\RhoElements\HTML\BadLink.html"/>

        <UserAgent  value="Mozilla/5.0 (%p) AppleWebKit/%w (KHTML, like Gecko) MotorolaWebKit/%e Safari/%w" />

      </Navigation>

      <DeviceKeys>

        <EnableCtrlKey_A    value="1"/>

        <EnableCtrlKey_C    value="1"/>

        <EnableCtrlKey_V    value="1"/>

        <EnableCtrlKey_O    value="0"/>

        <EnableCtrlKey_P    value="0"/>

      </DeviceKeys>

      <DefaultMetaTags>

      </DefaultMetaTags>

    </Application>

  </Applications>

</Configuration>

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


James Morley-Smith
Hey Joshua...how is your

Hey Joshua...how is your device connected to your PC? WLAN or ActiveSync?

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Joshua McGinnis
It isn't connected to my

It isn't connected to my device. When it is connected, I use ActiveSync - but then it won't be able to resolve anything online (why is this by the way). When it isn't connected directly to my PC through ActiveSync, it's connected to the internet via a wireless bridge (basically a little wireless repeater).

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Robin West
When the MK4000 or any CE/WM

When the MK4000 or any CE/WM device is connected via ActiveSync the network routing is changed to prevent the device from accessing the wired or wireless internet. This is intentional and addresses a security issue. That said I believe there exists and option in ActiveSync to prevent the changing of the route.

Tom

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Joshua McGinnis
I appreciate your providing

I appreciate your providing this additional bit of information. Believe it or not, there are a ton of little quirks like this that aren't readily documented or visible to new developers. I actually wasted a lot of time thinking the machine was broken or my app was broken only to find out that the internet simply didn't work when connected via ActiveSync.

I would like to know more about this security issue and how to prevent the changing of the route if you have it.

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Harish Pulimi
Can you please try with the

Can you please try with the below settings:

ActiveSync: File > Connection Settings

This computer is connected to: "The Internet"

Allow wireless connection on device when connected to the desktop: ON

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Robin West
As I'm on Windows 7, I had to

As I'm on Windows 7, I had to hit "Mobile Device Settings" within Windows Mobile Device Center and then hit "Connection Settings" to bring up the dialog that let me change "This computer is connected to: 'The Internet'". But it worked - it looks like I'm able to browse the web while being connected to ActiveSync. Thank you.

settings.PNG

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Robert Galvin
Stay tuned I will have a blog

Stay tuned I will have a blog post explaining this posted shortly.

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Log in to post comments