[Message Prev][Message
Next][Thread Prev][Thread Next][Message
Index][Thread Index]
My list of possible xAP Enhancements
- Subject: My list of possible xAP Enhancements
- From: "Neil Wrightson" <neilw@xxxxxxxxxx>
- Date: Mon, 15 Mar 2010 20:37:42 +1100
------=_NextPart_000_00BF_01CAC47F.5D2077A0
Content-Type: text/plain;
charset="US-ASCII"
Content-Transfer-Encoding: 7bit
Hi All,
Below are the following points that I would like to see added to the xAP
Schema.
xAP Address renaming
This is a means of changing the instance field and the Sub Address field.
Note - The UID does not change. This is specified by the manufacture of the
product.
The Logical human readable area of the message is what I propose that we
allow the name changing of.
To Change the Instance name of a device I suggest the following schema
{
v=12
hop=1
uid=FF123400
class=xAPBSC.cmd
source=ACME.Controller.Central
target=ACME.Lighting.apartment
}
{
InstanceRename=House
}
This would now mean that the device has been renamed to
target=ACME.Lighting.House
To Change the SubAddress name of a device I suggest the following schema
{
v=12
hop=1
uid=FF123405
class=xAPBSC.cmd
source=ACME.Controller.Central
target=ACME.Lighting.apartment:KitchenLight
}
{
SubAddrRename=HallLight
}
This would now mean that this device SubAddress has been renamed to
ACME.Lighting.apartment:HallLight
Or would both of the above examples be better as a separate class
{
v=12
hop=1
uid=FF123400
class=xAPBSC.rename
source=ACME.Controller.Central
target=ACME.Lighting.house
}
OR
{
v=12
hop=1
uid=FF123405
class=xAPBSC.rename
source=ACME.Controller.Central
target=ACME.Lighting.apartment:KitchenLight
}
The other area I would like to look at are Watch Dog capabilities on the
BSC
outputs.
For those that aren't familiar with the WatchDog terminology. A example
should set the scene.
I have a xAP device with a relay output that is used to control the
watering
system on my garden.
An application on my server monitors the rain fall in the area via the
internet weather.
When it has been determined that the ground is probably too dry, it turns
on
the xAP devices relay.
Half an hour later it turns the relay back off.
Well it was supposed to , the network switch died and the server was unable
to talk to the xAP Device and the garden has been watered for the next 6
hours until I got home and saw the mess.
However, if I had watchdog facility in the xAP device hardware, it would
have automatically turned the output off after a preset period.
So in this instance the "WatchDog" functionality is a software
function in
the xAP device, that monitors the xAP commands received and safely puts the
outputs into a certain state.
See http://en.wikipedia.org/wiki/Watchdog_timer
<http://en.wikipedia.org/wiki/Watchdog_timer>
for some further information.
So what I'm proposing, is the following functionality be added to the BSC
commands and applies to each sub address.
WD_Enable : Boolean ; //
WD_Timer_Val : Byte ; // Seconds
WD_Timeout_Val : Byte ; // 0/1/255
WD_Enable
If ON then this Sub address has watchdog functionality turned ON
WD_Timer_Val
This is how long to wait before changing the output to the WD_Timeout_Value
This value is in seconds.
In the watering example above, if the server sent a command to turn the
device relay on every 120 seconds, than you would probably want the
WD_Timer_Val set at 240 seconds.
This allows a bit of time in case the server does a brief go slow.
The draw back here is that the server needs to send an output command every
two minutes for the half hour watering period, otherwise the watchdog kicks
in and turns the output off.
WD_Timeout_Val
This is the value the device outputs when the watchdog state has been
triggered for this device and sub address.
A 0 or 1 to be used for a logic output or a value from 0..255 for an
analogue output.
Sometimes the output would be best set to ON, to turn on an ERROR lamp to
indicate a fault or turn on minimal lighting when the server has died
instead of leaving the house in darkness.
The other BSC command is
RestoreLastState : Boolean ; //
RestoreLastStateTimer : Byte ; // Minutes
The idea of this, is that when a xAP device experiences a brief (say 30
second) power loss, it restores itself to the last known state.
I.e. the 240VAC mains into the house was briefly interrupted, it would be
preferable if the light outputs went back to their last known state.
RestoreLastState
If ON then the specified sub address is restored to its prior state
RestoreLastStateTimer
If this value is 0 then the output is restored to its previous value
regardless of how long the power was off.
If the value is greater than 0 and it is less than (the last known time -
the current time) then the output is restored to its last state else left
off.
Xap-TimeStamp
Send a timestamp message to the network at pre-defined periods.
This is used to synchronize any devices that are not capable of NTP.
Regards,
Neil Wrightson.
N.W.Electronics
ABN 76 768 513 867
Embedded Controllers and Home Automation Products
Skype : Neil_Wrightson
Web : www.nwe.net.au
------=_NextPart_000_00BF_01CAC47F.5D2077A0
Content-Type: text/html; charset=US-ASCII
Content-Transfer-Encoding: 7bit
<head>
<style type="text/css">
<!--
/* start of attachment style */
.ygrp-photo-title{
clear: both;
font-size: smaller;
height: 15px;
overflow: hidden;
text-align: center;
width: 75px;
}
div.ygrp-photo{
background-position: center;
background-repeat: no-repeat;
background-color: white;
border: 1px solid black;
height: 62px;
width: 62px;
}
div.photo-title
a,
div.photo-title a:active,
div.photo-title a:hover,
div.photo-title a:visited {
text-decoration: none;
}
div.attach-table div.attach-row {
clear: both;
}
div.attach-table div.attach-row div {
float: left;
/* margin: 2px;*/
}
p {
clear: both;
padding: 15px 0 3px 0;
overflow: hidden;
}
div.ygrp-file {
width: 30px;
valign: middle;
}
div.attach-table div.attach-row div div a {
text-decoration: none;
}
div.attach-table div.attach-row div div span {
font-weight: normal;
}
div.ygrp-file-title {
font-weight: bold;
}
/* end of attachment style */
-->
</style>
</head>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;
charset=us-ascii">
<META NAME="Generator" CONTENT="MS Exchange Server
version 6.5.7036.0">
<TITLE>My list of possible xAP Enhancements</TITLE>
</HEAD>
<BODY>
<!-- **begin egp html banner** -->
<br><br>
<!-- **end egp html banner** -->
<!-- Converted from text/rtf format -->
<P><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">Hi All,</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial"> </FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">Below are the following points that I would like
to see added to the xAP Schema.</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial"> </FONT></SPAN>
</P>
<P><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">xAP Address renaming</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">This is a means of changing the instance field
and the Sub Address field.</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">Note - The UID does not change. This is specified
by the manufacture of the product.</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">The Logical human readable area of the message is
what I propose that we allow the name changing
of.</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial"> </FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">To Change the Instance name of a device I suggest
the following schema</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">{</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">v=12</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">hop=1</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">uid=FF123400</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">class=xAPBSC.cmd</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">source=ACME.Controller.Central</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">target=ACME.Lighting.apartment</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">}</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">{</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">InstanceRename=House</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">}</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial"> </FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">This would now mean that the device has been
renamed to </FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">target=ACME.Lighting.House</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial"> </FONT></SPAN>
</P>
<P><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">To Change the SubAddress name of a device I
suggest the following schema</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">{</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">v=12</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">hop=1</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">uid=FF123405</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">class=xAPBSC.cmd</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">source=ACME.Controller.Central</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">target=ACME.Lighting.apartment:KitchenLight</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">}</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">{</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">SubAddrRename=HallLight</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">}</FONT></SPAN>
</P>
<P><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">This would now mean that this device
SubAddress has been renamed to </FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">ACME.Lighting.apartment:HallLight</FONT></SPAN>
</P>
<BR>
<P><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">Or would both of the above examples be better as
a separate class</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">{</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">v=12</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">hop=1</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">uid=FF123400</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">class=xAPBSC.rename</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">source=ACME.Controller.Central</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">target=ACME.Lighting.house</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">}</FONT></SPAN>
</P>
<P><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">OR</FONT></SPAN>
</P>
<P><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">{</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">v=12</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">hop=1</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">uid=FF123405</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">class=xAPBSC.rename</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">source=ACME.Controller.Central</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">target=ACME.Lighting.apartment:KitchenLight</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">}</FONT></SPAN>
</P>
<P><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial"> </FONT></SPAN>
</P>
<P><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">The other area I would like to look at are Watch
Dog capabilities on the BSC outputs.</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">For those that aren’t familiar with the
WatchDog terminology. A example should set the
scene.</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">I have a xAP device with a relay output that is
used to control the watering system on my garden.</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">An application on my server monitors the rain
fall in the area via the internet weather.</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">When it has been determined that the ground is
probably too dry, it turns on the xAP devices
relay.</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">Half an hour later it turns the relay back off.
</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">Well it was supposed to , the network switch died
and the server was unable to talk to the xAP Device and the garden has been
watered for the next 6 hours until I got home and saw the
mess.</FONT></SPAN></P>
<P><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">However, if I had watchdog facility in the xAP
device hardware, it would have automatically turned the output off after a
preset period.</FONT></SPAN></P>
<P><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">So in this instance the
“WatchDog” functionality is a software function in the
xAP device, that monitors the xAP commands received and safely puts the
outputs into a certain state. </FONT></SPAN></P>
<P><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">See </FONT></SPAN><A
HREF="http://en.wikipedia.org/wiki/Watchdog_timer"><SPAN
LANG="en-au"><U><FONT COLOR="#0000FF"
SIZE=2 FACE="Arial">http://en.wikipedia.org/wiki/Watchdog_timer</FONT></U></SPAN></A><SPAN
LANG="en-au"><FONT SIZE=2 FACE="Arial">
<</FONT></SPAN><A HREF="http://en.wikipedia.org/wiki/Watchdog_timer"><SPAN
LANG="en-au"><U><FONT COLOR="#0000FF"
SIZE=2 FACE="Arial">http://en.wikipedia.org/wiki/W
atchdog_timer</FONT></U></SPAN></A><SPAN
LANG="en-au"><FONT SIZE=2
FACE="Arial">> for some further
information.</FONT></SPAN></P>
<P><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">So what I’m proposing, is the following
functionality be added to the BSC commands and applies to each sub
address.</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">
WD_Enable
: Boolean ; //</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">
WD_Timer_Val
: Byte ; //
Seconds</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">
WD_Timeout_Val
: Byte ; //
0/1/255</FONT></SPAN>
</P>
<P><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">WD_Enable</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">If ON then this Sub address has watchdog
functionality turned ON</FONT></SPAN>
</P>
<P><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial"> WD_Timer_Val</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">This is how long to wait before changing the
output to the WD_Timeout_Value</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">This value is in
seconds.</FONT></SPAN>
</P>
<P><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">In the watering example above, if the server sent
a command to turn the device relay on every 120 seconds, than you would
probably want the WD_Timer_Val set at 240
seconds.</FONT></SPAN></P>
<P><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">This allows a bit of time in case the server does
a brief go slow.</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">The draw back here is that the server needs to
send an output command every two minutes for the half hour watering period,
otherwise the watchdog kicks in and turns the output
off.</FONT></SPAN></P>
<P><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">WD_Timeout_Val
</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">This is the value the device outputs when the
watchdog state has been triggered for this device and sub address.
</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">A 0 or 1 to be used for a logic output or a value
from 0..255 for an analogue output.</FONT></SPAN>
</P>
<P><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">Sometimes the output would be best set to ON, to
turn on an ERROR lamp to indicate a fault or turn on minimal lighting when
the server has died instead of leaving the house in
darkness.</FONT></SPAN></P>
<P><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial"> </FONT></SPAN>
</P>
<P><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">The other BSC command
is</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">
RestoreLastState
: Boolean ; //</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">
RestoreLastStateTimer : Byte
; // Minutes</FONT></SPAN>
</P>
<P><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">The idea of this, is that when a xAP device
experiences a brief (say 30 second) power loss, it restores itself to the
last known state.</FONT></SPAN></P>
<P><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">I.e. the 240VAC mains into the house was briefly
interrupted, it would be preferable if the light outputs went back to their
last known state.</FONT></SPAN></P>
<P><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">RestoreLastState
</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">If ON then the specified sub address is restored
to its prior state</FONT></SPAN>
</P>
<BR>
<P><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">RestoreLastStateTimer</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">If this value is 0 then the output is restored to
its previous value regardless of how long the power was
off.</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">If the value is greater than 0 and it is less
than (the last known time - the current time) then the output is restored
to its last state else left off.</FONT></SPAN></P>
<P><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial"> </FONT></SPAN>
</P>
<P><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">Xap-TimeStamp</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">Send a timestamp message to the network at
pre-defined periods.</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">This is used to synchronize any devices that are
not capable of NTP. </FONT></SPAN>
</P>
<P><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial"> </FONT></SPAN>
</P>
<P><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">Regards, </FONT></SPAN>
</P>
<P><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">Neil Wrightson. </FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">N.W.Electronics </FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">ABN 76 768 513 867 </FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">Embedded Controllers and Home Automation Products
</FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">Skype : Neil_Wrightson </FONT></SPAN>
<BR><SPAN LANG="en-au"><FONT SIZE=2
FACE="Arial">Web :
</FONT></SPAN><A
HREF="file://www.nwe.net.au"><SPAN
LANG="en-au"><U><FONT COLOR="#0000FF"
SIZE=2
FACE="Arial">www.nwe.net.au</FONT></U></SPAN></A><SPAN
LANG="en-au"><FONT SIZE=2 FACE="Arial">
</FONT></SPAN>
</P>
<!-- **begin egp html banner** -->
<br>
<br>
<!-- **end egp html banner** -->
<div width="1" style="color: white; clear:
both;"/>__._,_.___</div>
<!-- Start Recommendations -->
<!-- End Recommendations -->
<!-- **begin egp html banner** -->
<img src="http://geo.yahoo.com/serv?s=97476590/grpId=9629476/grpspId=1705007709/msgId=2090/stime=1268646794"
width="1" height="1"> <br>
<!-- **end egp html banner** -->
<!-- **begin egp html banner** -->
<br>
<div style="font-family: verdana; font-size: 77%; border-top: 1px
solid #666; padding: 5px 0;" >
Your email settings: Individual EmailTraditional <br>
<a href="http://groups.yahoo.com/group/xAP_developer/join;_ylc=X3oDMTJmamtuNDkxBF9TAzk3NDc2NTkwBGdycElkAzk2Mjk0NzYEZ3Jwc3BJZAMxNzA1MDA3NzA5BHNlYwNmdHIEc2xrA3N0bmdzBHN0aW1lAzEyNjg2NDY3OTQ-">Change
settings via the Web</a> (Yahoo! ID required) <br>
Change settings via email: <a href="mailto:xAP_developer-digest@xxxxxxx?subject=Email
Delivery: Digest">Switch delivery to Daily Digest</a> <a
href = "mailto:xAP_developer-fullfeatured@xxxxxxx?subject=Change
Delivery Format: Fully Featured">Switch to Fully Featured</a>
<br>
<a href="http://groups.yahoo.com/group/xAP_developer;_ylc=X3oDMTJkc2RqYW5pBF9TAzk3NDc2NTkwBGdycElkAzk2Mjk0NzYEZ3Jwc3BJZAMxNzA1MDA3NzA5BHNlYwNmdHIEc2xrA2hwZgRzdGltZQMxMjY4NjQ2Nzk0">
Visit Your Group
</a>
<a href="http://docs.yahoo.com/info/terms/">
Yahoo! Groups Terms of Use
</a>
<a href="mailto:xAP_developer-unsubscribe@xxxxxxx?subject=Unsubscribe">
Unsubscribe
</a>
<br>
</div>
<br>
<!-- **end egp html banner** -->
<div style="color: white; clear:
both;"/>__,_._,___</div>
</BODY>
</HTML>
------=_NextPart_000_00BF_01CAC47F.5D2077A0--
xAP_Development Main Index |
xAP_Development Thread Index |
xAP_Development Home |
Archives Home
|