Hi,
For my application I am using line plot. The line plot is linked to UART call
(href). The graph request is responded with data immediately for the first time
and then regularly at a certain interval controlled by my host controller. For
requests in between host sends ACK. What I observe is when the line plot starts
the first data is always plotted on the third column and not the first column
from the start location of the line plot widget. The next samples are plotted
correctly at 4th, 5th, ... pixels from start location. This is giving me some
timing mismatch on my graph.
Could this be due to host missed the first two request from Amulet chip?
regards
Hemal
Hi,
As I move forward in my work with the GEM chip I've reached the point where I
would need to support field updates of my application code and possibly the
Amulet OS itself.
I've found some documentation pertaining to a Palm application but it describes
the use of a .pdb file that the GEM compiler currently has disabled. Are there
new ways to update the GEM chip with the .gem file? Is there any documentation
and example code available?
Richard
Richard,
I'll send the files you need to enable the "Save PBD" feature.
Regards,
Brian Deters
Amulet Technologies
--- In Amulet@yahoogroups.com, "katezansky" <tangent@...> wrote:
>
> Hi,
>
> As I move forward in my work with the GEM chip I've reached the point where I
would need to support field updates of my application code and possibly the
Amulet OS itself.
> I've found some documentation pertaining to a Palm application but it
describes the use of a .pdb file that the GEM compiler currently has disabled.
Are there new ways to update the GEM chip with the .gem file? Is there any
documentation and example code available?
>
> Richard
>
Hemal,
Does the plot draw the first two samples as zeros, does it draw random data, or
does it just start drawing a few pixels from where you expect it to?
When the linePlot wraps around to the beginning does it then draw these missing
samples?
-Brian
--- In Amulet@yahoogroups.com, "hemalgujarathi" <hemalgujarathi@...> wrote:
>
> Hi,
>
> For my application I am using line plot. The line plot is linked to UART call
(href). The graph request is responded with data immediately for the first time
and then regularly at a certain interval controlled by my host controller. For
requests in between host sends ACK. What I observe is when the line plot starts
the first data is always plotted on the third column and not the first column
from the start location of the line plot widget. The next samples are plotted
correctly at 4th, 5th, ... pixels from start location. This is giving me some
timing mismatch on my graph.
>
> Could this be due to host missed the first two request from Amulet chip?
>
> regards
> Hemal
>
I would like to accomplish this operation...,
<param name="href" value="Amulet:internalRAM.byte(0).maskedValue(255)">
but with a byte array, like this...
<param name="href" value="Amulet:internalRAM.bytes(0).maskedValue(255)">
It does not appear to be a supported method. Is there a workaround that
anyone knows for this?
Larry
Brian,
The graph starts from third pixel but it seems to be drawing all three together
rather than plotting first then second and then third at regular intervals. The
first two samples are drawn correctly as what is expected but its just that they
are drawn together. In my case the graph never wraps and stops at the end of the
graph area.
Other thing I confirmed using docklight is that I do receive requests from
Amulet and I also respond but somehow they are not plotted. Plotting starts only
at third sample.
regards
Hemal
--- In Amulet@yahoogroups.com, "BrianD" <amulet_deters@...> wrote:
>
> Hemal,
>
> Does the plot draw the first two samples as zeros, does it draw random data,
or does it just start drawing a few pixels from where you expect it to?
>
> When the linePlot wraps around to the beginning does it then draw these
missing samples?
>
> -Brian
>
>
> --- In Amulet@yahoogroups.com, "hemalgujarathi" <hemalgujarathi@> wrote:
> >
> > Hi,
> >
> > For my application I am using line plot. The line plot is linked to UART
call (href). The graph request is responded with data immediately for the first
time and then regularly at a certain interval controlled by my host controller.
For requests in between host sends ACK. What I observe is when the line plot
starts the first data is always plotted on the third column and not the first
column from the start location of the line plot widget. The next samples are
plotted correctly at 4th, 5th, ... pixels from start location. This is giving me
some timing mismatch on my graph.
> >
> > Could this be due to host missed the first two request from Amulet chip?
> >
> > regards
> > Hemal
> >
>
While trying to solve the issue 1544 I got the solution for this issue. Not sure
why this is working. I added LineP1.SetX() with same X position before calling
LineP1.forceUpdate() on my lineplot widget. Now I can see graph being plotted
from the first column.
--- In Amulet@yahoogroups.com, "hemalgujarathi" <hemalgujarathi@...> wrote:
>
> Brian,
>
> The graph starts from third pixel but it seems to be drawing all three
together rather than plotting first then second and then third at regular
intervals. The first two samples are drawn correctly as what is expected but its
just that they are drawn together. In my case the graph never wraps and stops at
the end of the graph area.
>
> Other thing I confirmed using docklight is that I do receive requests from
Amulet and I also respond but somehow they are not plotted. Plotting starts only
at third sample.
>
>
> regards
> Hemal
>
> --- In Amulet@yahoogroups.com, "BrianD" <amulet_deters@> wrote:
> >
> > Hemal,
> >
> > Does the plot draw the first two samples as zeros, does it draw random data,
or does it just start drawing a few pixels from where you expect it to?
> >
> > When the linePlot wraps around to the beginning does it then draw these
missing samples?
> >
> > -Brian
> >
> >
> > --- In Amulet@yahoogroups.com, "hemalgujarathi" <hemalgujarathi@> wrote:
> > >
> > > Hi,
> > >
> > > For my application I am using line plot. The line plot is linked to UART
call (href). The graph request is responded with data immediately for the first
time and then regularly at a certain interval controlled by my host controller.
For requests in between host sends ACK. What I observe is when the line plot
starts the first data is always plotted on the third column and not the first
column from the start location of the line plot widget. The next samples are
plotted correctly at 4th, 5th, ... pixels from start location. This is giving me
some timing mismatch on my graph.
> > >
> > > Could this be due to host missed the first two request from Amulet chip?
> > >
> > > regards
> > > Hemal
> > >
> >
>
Hi all,
I'm trying to set up a page with dynamic text buttons on it. I figured I'll have
a string which contains the string updated by the controller, and a string
currently shown in the button. Then when the two are different copy the value
and update the button. I put the following code in the header of the page:
<meta http-equiv="REFRESH"
content="0.1,0.1;ONVAR=Amulet:InternalRAM.string(0x71).value();TRIGGER.NEQ=Inter\
nalRAM.string(0x61).value();URL=Amulet:InternalRAM.string(0x61).copyToRamString(\
0x71), Amulet:document.Button1.forceUpdate();name=button1Update">
The problem is it's triggering all the time which makes the button flicker and
unable to be held down. Anyone else have any ideas on how to run this? I'd
really rather not update say a byte flag when a string has been changed and
trigger off that. I cannot see why the NEQ trigger is firing when I'm copying
one string into another. They should both be equal right?
Cheers,
Dave
You're right, it looks like what you're doing should work.
Unfortunately, I was just looking into this and although the GEM
Compiler can support the testing of strings, the OS doesn't currently
support it. It is currently testing the addresses of the two strings
and since they are in different locations in RAM, it is coming to the
conclusion that they are NOT equal. I need to fix this in the next
release. Sorry about that.
Jim Weber
Lead Firmware Engineer
Amulet Technologies
fairy_dave wrote:
Hi all,
I'm trying to set up a page with dynamic text buttons on it. I figured
I'll have a string which contains the string updated by the controller,
and a string currently shown in the button. Then when the two are
different copy the value and update the button. I put the following
code in the header of the page:
The problem is it's triggering all the time which makes the button
flicker and unable to be held down. Anyone else have any ideas on how
to run this? I'd really rather not update say a byte flag when a string
has been changed and trigger off that. I cannot see why the NEQ trigger
is firing when I'm copying one string into another. They should both be
equal right?
I don't have any firm dates, but we're shooting for a limited alpha release next
week, and a full release available around Dec 1.
What a stocking stuffer!
--- In Amulet@yahoogroups.com, "maltman01" <maltman01@...> wrote:
>
> Does anyone know when the GemStudio Software will be available for the color
lcd controller?
>
Dave,
Have you tried to use an InternalRam byte as a flag for the comparison? Have the
controller change the button string variable and then set the byte flag to
indicate the button string needs updating. I am in the process of programming
something similar to this for popup messages.
I'm keeping the communications minimal so I decided to keep the buttons always
updating. The flicker isn't visible unless you're at an angle to the screen so
it's not a big issue.
--- In Amulet@yahoogroups.com, "maltman01" <maltman01@...> wrote:
>
> Dave,
> Have you tried to use an InternalRam byte as a flag for the comparison? Have
the controller change the button string variable and then set the byte flag to
indicate the button string needs updating. I am in the process of programming
something similar to this for popup messages.
>
Greetings all,
I'm trying to send some long(er than my usual length) strings to the Amulet. I
can send them and read them back no worries. When I try to display a 50
character string inside of a string field however then only the first 25
characters will display. The funny thing is that the other characters are shown
on subsequent string field widgets displaying the next strings in memory. I
checked the documentation and
www.amulettechnologies.com/support/help/Widgets.htm
says that the longest string possible is 254 characters long or some such. I
only need 50 to 100 characters but can't seem to get beyond 25.
Anyone else seen anything like this? I'm yet to try it out on the monochrome
chips.
Cheers,
Dave
I forgot to mention... If I set the next string along in memory and read back
the origional string then I'll wind up reading the first 26 characters from the
first string then the contents of the second string. Makes me think that maybe
the Amulet is only allocating 26 bytes of memory for strings.
--- In Amulet@yahoogroups.com, "fairy_dave" <fairydave@...> wrote:
>
> Greetings all,
>
> I'm trying to send some long(er than my usual length) strings to the Amulet. I
can send them and read them back no worries. When I try to display a 50
character string inside of a string field however then only the first 25
characters will display. The funny thing is that the other characters are shown
on subsequent string field widgets displaying the next strings in memory. I
checked the documentation and
> www.amulettechnologies.com/support/help/Widgets.htm
> says that the longest string possible is 254 characters long or some such. I
only need 50 to 100 characters but can't seem to get beyond 25.
>
> Anyone else seen anything like this? I'm yet to try it out on the monochrome
chips.
>
> Cheers,
> Dave
>
hi;
if your using a string widget to display the string, their default character
length is 25 characters. Use the printf parameter to change the length of the
string displayed.
thanks,
PAUL
--- In Amulet@yahoogroups.com, "fairy_dave" <fairydave@...> wrote:
>
> I forgot to mention... If I set the next string along in memory and read back
the origional string then I'll wind up reading the first 26 characters from the
first string then the contents of the second string. Makes me think that maybe
the Amulet is only allocating 26 bytes of memory for strings.
>
> --- In Amulet@yahoogroups.com, "fairy_dave" <fairydave@> wrote:
> >
> > Greetings all,
> >
> > I'm trying to send some long(er than my usual length) strings to the Amulet.
I can send them and read them back no worries. When I try to display a 50
character string inside of a string field however then only the first 25
characters will display. The funny thing is that the other characters are shown
on subsequent string field widgets displaying the next strings in memory. I
checked the documentation and
> > www.amulettechnologies.com/support/help/Widgets.htm
> > says that the longest string possible is 254 characters long or some such. I
only need 50 to 100 characters but can't seem to get beyond 25.
> >
> > Anyone else seen anything like this? I'm yet to try it out on the monochrome
chips.
> >
> > Cheers,
> > Dave
> >
>
Finally, a question that is not related to the Gem compiler (I think). I am not sure which compiler you are using; if you are using compilers 3.x, read the section of the manual regarding internal ram strings. What you are witnessing with strings running into other string space is normal and documented. If you need long strings, you have to set aside extra interan ram string space to accomodate the strings.
Initializing single Internal RAM variables:
..... InternalRAM.string(0) = "First String"
There is an important thing to note regarding the 199 18-character
strings. It is acceptable to have strings and initialize strings that
are longer than 18 characters (up to 248 characters). You just need to
be aware that the string will run on into the next string variable's
RAM space. So, if you know your Internal RAM strings are going to be
more than 18 characters, you might want to only use every other string
variable index. i.e. InternalRAM.string(0), InternalRAM.string(2),
InternalRAM.string(4)...etc. Keep in mind that this will effectively
give you only 99 string variables instead of the standard 199.
When initializing Internal RAM strings, user-defined wraps can be specified by entering "\n" within the string. Since we use double quotes to define a string, to have a literal double quote appear in the string, enter two double quotes in a row."
--- On Thu, 11/5/09, fairy_dave <fairydave@...> wrote:
From: fairy_dave <fairydave@...> Subject: Amulet Users Group Long Strings To: Amulet@yahoogroups.com Date: Thursday, November 5, 2009, 1:19 AM
Greetings all,
I'm trying to send some long(er than my usual length) strings to the Amulet. I can send them and read them back no worries. When I try to display a 50 character string inside of a string field however then only the first 25 characters will display. The funny thing is that the other characters are shown on subsequent string field widgets displaying the next strings in memory. I checked the documentation and
www.amulettechnolog ies.com/support/ help/Widgets. htm
says that the longest string possible is 254 characters long or some such. I only need 50 to 100 characters but can't seem to get beyond 25.
Anyone else seen anything like this? I'm yet to try it out on the monochrome chips.
Hmm that's quite a limitation. Had been hoping I could provide dunamic popup
screens with text from the controller but now I'll need to reduce the length of
text used. Thanks for that info!
Cheers,
Dave
--- In Amulet@yahoogroups.com, Robert Smith <elboco@...> wrote:
>
> Finally, a question that is not related to the Gem compiler (I think).
> I am not sure which compiler you are using; if you are using compilers 3.x,
read the section of the manual regarding internal ram strings. What you are
witnessing with strings running into other string space is normal and
documented. If you need long strings, you have to set aside extra interan ram
string space to accomodate the strings.
>
> Initializing single Internal RAM variables:
> .....
> InternalRAM.string(0)
> = "First String"
> There is an important thing to note regarding the 199 18-character
> strings. It is acceptable to have strings and initialize strings that
> are longer than 18 characters (up to 248 characters). You just need to
> be aware that the string will run on into the next string variable's
> RAM space. So, if you know your Internal RAM strings are going to be
> more than 18 characters, you might want to only use every other string
> variable index. i.e. InternalRAM.string(0), InternalRAM.string(2),
> InternalRAM.string(4)...etc. Keep in mind that this will effectively
> give you only 99 string variables instead of the standard 199.
> When initializing Internal RAM strings, user-defined
> wraps can be specified by entering "\n" within the string. Since
> we use double quotes to define a string, to have a literal double quote appear
> in the string, enter two double quotes in a row."
>
> --- On Thu, 11/5/09, fairy_dave <fairydave@...> wrote:
>
> From: fairy_dave <fairydave@...>
> Subject: Amulet Users Group Long Strings
> To: Amulet@yahoogroups.com
> Date: Thursday, November 5, 2009, 1:19 AM
>
>
>
>
>
>
>
> Â
>
>
>
>
>
>
>
>
>
> Greetings all,
>
>
>
> I'm trying to send some long(er than my usual length) strings to the Amulet. I
can send them and read them back no worries. When I try to display a 50
character string inside of a string field however then only the first 25
characters will display. The funny thing is that the other characters are shown
on subsequent string field widgets displaying the next strings in memory. I
checked the documentation and
>
> www.amulettechnolog ies.com/support/ help/Widgets. htm
>
> says that the longest string possible is 254 characters long or some such. I
only need 50 to 100 characters but can't seem to get beyond 25.
>
>
>
> Anyone else seen anything like this? I'm yet to try it out on the monochrome
chips.
>
>
>
> Cheers,
>
> Dave
>
How long were the strings you were wanting to send? How many
InternalRAM string variables are you going to be using? We use dynamic
popup screens with text that is in excess of 400 characters all the
time. The stringField has a limit of 500 characters on the precision,
so you do need to reduce the length of the text if you were planning on
more than 500 characters.
Keep in mind that if you are using InternalRAM.string to hold the text,
then you will need to use up more than a single InternalRAM.string
variable, which can only hold 26 characters. If you were going to use a
string that was 400 characters long, you would need to allocate 16
InternalRAM string variables (400/26 = 15.38) that were in successive
order and you couldn't use those variables for anything else, at least
on that page.
The documentation for the stringField widget lists the max precision to
be 250, but that has changed to 500, but the documentation hasn't been
updated yet.
Jim Weber
Lead Firmware Engineer
Amulet Technologies
fairy_dave wrote:
Hmm that's quite a limitation. Had been hoping I could provide
dunamic popup screens with text from the controller but now I'll need
to reduce the length of text used. Thanks for that info!
Cheers,
Dave
--- In Amulet@yahoogroups.com,
Robert Smith <elboco@...> wrote:
>
> Finally, a question that is not related to the Gem compiler (I
think).
> I am not sure which compiler you are using; if you are using
compilers 3.x, read the section of the manual regarding internal ram
strings. What you are witnessing with strings running into other
string space is normal and documented. If you need long strings, you
have to set aside extra interan ram string space to accomodate the
strings.
>
> Initializing single Internal RAM variables:
> .....
> InternalRAM.string(0)
> = "First String"
> There is an important thing to note regarding the 199 18-character
> strings. It is acceptable to have strings and initialize strings
that
> are longer than 18 characters (up to 248 characters). You just
need to
> be aware that the string will run on into the next string
variable's
> RAM space. So, if you know your Internal RAM strings are going to
be
> more than 18 characters, you might want to only use every other
string
> variable index. i.e. InternalRAM.string(0), InternalRAM.string(2),
> InternalRAM.string(4)...etc. Keep in mind that this will
effectively
> give you only 99 string variables instead of the standard 199.
> When initializing Internal RAM strings, user-defined
> wraps can be specified by entering "\n" within the string. Since
> we use double quotes to define a string, to have a literal double
quote appear
> in the string, enter two double quotes in a row."
>
> --- On Thu, 11/5/09, fairy_dave <fairydave@...> wrote:
>
> From: fairy_dave <fairydave@...>
> Subject: Amulet Users Group Long Strings
> To: Amulet@yahoogroups.com
> Date: Thursday, November 5, 2009, 1:19 AM
>
>
>
>
>
>
>
> Â
>
>
>
>
>
>
>
>
>
> Greetings all,
>
>
>
> I'm trying to send some long(er than my usual length) strings to
the Amulet. I can send them and read them back no worries. When I try
to display a 50 character string inside of a string field however then
only the first 25 characters will display. The funny thing is that the
other characters are shown on subsequent string field widgets
displaying the next strings in memory. I checked the documentation and
>
> www.amulettechnolog ies.com/support/ help/Widgets. htm
>
> says that the longest string possible is 254 characters long or
some such. I only need 50 to 100 characters but can't seem to get
beyond 25.
>
>
>
> Anyone else seen anything like this? I'm yet to try it out on the
monochrome chips.
>
>
>
> Cheers,
>
> Dave
>
That will probably do the trick. I think it just means I need to rethink my
approach to this concept. These screens were going to be less of a pop-up and
more of a full screen display (I've always preferred giving users verbose error
messages).
Cheers,
Dave
I'm a little confused with the internal ram string variables. Part of the
documentation indicates that there are 256 different 26-character string
variables available and some sections show there are 199 - 18 character strings.
Can someone clarify this confusion for me........... Thanks
In the Amulet Color Chip there are 256 different 26-character string
variables. In the older monochrome chip there are 199 18-character
string variables. The documentation that we used for the color chip
used the monochrome documentation as a base and apparently not
everything got updated accordingly. Can you tell me where you are
seeing references to 199 18-character strings in the documentation so I
can get those fixed? Thanks.
Jim Weber
Lead Firmware Engineer
Amulet Technologies
maltman01 wrote:
I'm a little confused with the internal ram string variables. Part
of the documentation indicates that there are 256 different
26-character string variables available and some sections show there
are 199 - 18 character strings.
Can someone clarify this confusion for me........... Thanks
Jim,
First of all I am using the new GEM Color Starter Kit, just to make sure we're
clear on this.
You're online document dated 10/01/2009 under the Amulet Internal Ram page
describes the 256 different 25-character null terminated string variables. Later
on under the Internal Ram nomenclature section the following is found:
variableNumber is the variable index within the variable type. 0-255 for bytes,
0-255 for words and 0-198 for strings.
Another problem I have is when I try to use any index for string variables above
198 in vers 0.0.9 of the GEM Compiler, I receive an error - Valid InternalRam
string index is from 0 - 198.
I'm only using 0.0.8 but I've recieved the same error in the compiler.
--- In Amulet@yahoogroups.com, "maltman01" <maltman01@...> wrote:
>
> Jim,
>
> First of all I am using the new GEM Color Starter Kit, just to make sure we're
clear on this.
>
> You're online document dated 10/01/2009 under the Amulet Internal Ram page
describes the 256 different 25-character null terminated string variables. Later
on under the Internal Ram nomenclature section the following is found:
>
> variableNumber is the variable index within the variable type. 0-255 for
bytes, 0-255 for words and 0-198 for strings.
>
> Another problem I have is when I try to use any index for string variables
above 198 in vers 0.0.9 of the GEM Compiler, I receive an error - Valid
InternalRam string index is from 0 - 198.
>
Yes, that is obviously a bug that needs to be fixed in the next
release. Thanks for letting me know.
Jim Weber
Lead Firmware Engineer
Amulet Technologies
fairy_dave wrote:
I'm only using 0.0.8 but I've recieved the same error in the
compiler.
--- In Amulet@yahoogroups.com,
"maltman01" <maltman01@...> wrote:
>
> Jim,
>
> First of all I am using the new GEM Color Starter Kit, just to
make sure we're clear on this.
>
> You're online document dated 10/01/2009 under the Amulet Internal
Ram page describes the 256 different 25-character null terminated
string variables. Later on under the Internal Ram nomenclature section
the following is found:
>
> variableNumber is the variable index within the variable type.
0-255 for bytes, 0-255 for words and 0-198 for strings.
>
> Another problem I have is when I try to use any index for string
variables above 198 in vers 0.0.9 of the GEM Compiler, I receive an
error - Valid InternalRam string index is from 0 - 198.
>
I've noticed the Amulet:back() function is implemented using a stack.
It would be useful to be able to go back 2 steps, perhaps back(n)?
I could do this with metas and internal ram variables but back(2) would be
easier.
Best regards
Ray
Dear all,
I m using LineGraph control to show three graphs in 1 plot. Following is the
code.
<APPLET CODE="LineGraph.class" WIDTH="273" HEIGHT="122" NAME="LineGraph2">
<PARAM NAME="href"
VALUE="Amulet:InternalRAM.bytes(123).value(),Amulet:InternalRAM.bytes(143).value\
(),Amulet:InternalRAM.bytes(203).value()">
<param name="linePattern" value="0,0,0">
<param name="lineColor" value="Red,Yellow,Lime">
<PARAM NAME="backgroundImage" VALUE="Images\Backgrounds\Graph background.PNG">
<param name="lineWeight" value="0x01,0x01,0x01">
<PARAM NAME="updateRate" VALUE=".3,0.01">
<PARAM NAME="xSamples" VALUE="20">
<PARAM NAME="yMin" VALUE="0">
<PARAM NAME="yMax" VALUE="55">
</APPLET>
One graphs has 20 samples.This suppose to show 3 graph lines starts from 123 to
142,143 to 162 and 203 to 222.
But this show graphs from 123 to 142,142 to 162 and 163 to 182 .
First two graphs correctly displays but last graph displays data in different
range. What is the problem in here? When giving ranges for linegraph widgets, is
it allowed to give sequential ranges only?
regards
Singithi
I accidentally have two metas on a page with the same name; when I call
forceupdate on this name both of them get called so my page unexpectedly works
correctly! I have not been able to find this feature in the documentation but it
would be useful to be able to call a set of metas (that trigger on different
states) with a single call. Can I rely on this behaviour?
Best regards
Ray