The UK Home Automation Archive

Archive Home
Group Home
Search Archive


Advanced Search

The UKHA-ARCHIVE IS CEASING OPERATIONS 31 DEC 2024


[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]

Re: Help with bsc



--------------060901010905040702030907
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Hi Ian,
The address match is usually done in two parts as I'm sure you've seen-
the main address and then if that matches, the subaddresses.

The code for the first is in Patrick's C library if you want some
pointers (or in C# in the xAPFramework).

The second for my PIC's was simple since I don't have sub-sub adresses
and all the subaddresses are 01, etc. So I simply match the
main address and then check the subaddress for the wildcards and then
get the value of the subaddress, if numeric. So fairly small.

In your case you are going to need to implement the full subaddress
matching, I'd guess by iterating through the
ram array of subaddresses with them ordered in endpoint sequence such
that the match routine returns the endpoint - of course
the fun comes when it matches many since you'll probably need to action
the first match, by going to the body, and then come back and check
for any further matches. I can see the need to preserve a lot of buffers!

Lehane


Ian Davidson wrote:
>
> Hi Lehane
>
>
>
> Thanks for the pointers. I have seen your website and HA diagram and
> must say I do like the setup.
>
>
>
> I also have a xAP Netiom and have seen the messages it generates, it
> works very well indeed.
>
>
>
> I guess I had better keep programming has it is obviously possible to
> achieve what I require as you have already shown with your lcd
> lightswitch. I was using an 18f252 but I have since upgraded and I'm
> now using an 18F8722 which has more memory, so no excuse!
>
>
>
> I think the hardest part is writing the code to match to any of the
> target names in my case 32 different names, can you give me any
> pointers as to how to structure the code to best achieve this.
>
>
>
> I already have the Pic controlling some of the colour kinetic RGB
> lights via DMX and it can also read a DMX stream as well as a few
> other bits but I must get the xAP side sorted before I move any
further.
>
>
>
> Again Thanks
>
>
>
> Ian D
>
>
>
>
>
>
>
>
------------------------------------------------------------------------
>
> *From:* xap_automation@xxxxxxx
> [mailto:xap_automation@xxxxxxx] *On
Behalf Of *Lehane Kellett
> *Sent:* 08 May 2006 22:46
> *To:* Ian
> *Subject:* Re: [xap_automation] Help with bsc
>
>
>
> Hi Ian,
> I've written some BSC code for the PIC, so may be able to help.
>
>
> I am trying to write some code for a Pic based unit which has 16
> inputs and 16 outputs (sort of). I want the code to be as simply as
> possible and not take up too much room in the Pic. I have been looking
> at the UID field which makes sense. However, it appears the UID field
> in a header refers to the source and not the target. To decode an XAP
> message targeted at my device am I correct in thinking I need to
> capture and match the target line. If so this is not an issue if I
> only need to match to the device i.e. gforce9.lighting.upstairs:>
and
> then use the body to identify which sub address is being targeted. But
> do I have to implement the matching of all the sub addresses on the
> target line i.e. gforce9.lighting.upstairs:output1.
>
> The UID is from the source in the message you receive. Whether you use
> it or not is up to your implementation - in mine I don't inspect the
UID.
>
> In the messages you generate then you need to create a UID for each
> endpoint.
>
> Yes, you'll need to do all of the standard xAP address message
> matching, including checking for errors where the endpoint in the
> target doesn't match the ID= field in the message and the wildcard
> matches. In your example gforce9.lighting.upstairs:output1 may be ID=1
> in the message body, depending on how you map the subaddress to the
> ID= node(endpoint) id. If your base UID where FF123400 then your
> source address (the one you send) relating to node 1 would be
FF123401.
>
>
>
>
>
> Again I can do this if the sub addresses are only output01 to output16
> and the same for the inputs. It would very much eat up my code space
> if this can be changed to any name though. I understand it is not as
> user friendly to say: output01 as apposed to: bedroom.light1 but as I
> said code space is vanishing fast.
>
> Are you using PIC18F's? I have an Ethernet implementation of an LCD
> lightswitch, including 3 level 4x20 LCD buffer in a PIC18F452. The
> xAP  Netiom runs in a PIC18F4525. Should be enough RAM for a small
> table of mappings in an 18Fxxxx.
>
> Do you even need friendly names for the subaddresses? 01,02,03, etc
> are just as good given you'll probably be putting them in/out of a BSC
> mapper.
>
>
>
>
> I also need to know the maximum length the target field can be in
> total and for each segment. I am sure it must be in the doc's but I
> couldn't find it. I am also unclear on the exact makeup of the address
> field, I understand the usual makeup of the address as a.b.c followed
> sometimes by :d but I also see a.b.c.d and also a.b.c:d.e. What is the
> maximum number of sections (full stops) and is everything d and
> onwards taken to be a sub address.
>
> 128 bytes is the maximum length of an address line - but even that's a
> bit long in a small PIC. However, there are some implementations with
> Dallas serial numbers as part of the address........... so even if you
> can't handle that length you'll either need to filter in the serial
> bridge or handle the error gracefully.
>
> You'll probably want to read the xAP specs again - they are pretty
> clear on the a.b.c:d  etc addresses.
> For example, in my .NET DMX implementation I have:
>
> mmwave.dmx512.g8kmh_p4:house.upperfloor.bedrooom1.wall1
>
> Which allows control at many levels - I can turn on/off or dim all of
> the house lights with a simple command, or just the bedroom, or just
> one light.
>
> There are currently 48 DMX channels in the house, so you'll see why it
> is useful.
>
>
>
> Sorry for all the questions but I have got a basic parser section
> working and I would like to finish it off but I don't want to head off
> in the wrong direction.
>
> I took me a while to get to grips with BSC, check the developer
archives!
>
> Lehane
>
>
>
> SPONSORED LINKS
> Workflow automation
> <http://groups.yahoo.com/gads?t=ms&k=Workflow+automation&w1=Workflow+automation&w2=Automation+equipment&w3=Industrial+automation&w4=Test+automation&w5=Sales+automation&w6=Factory+automation&c=6&s=145&.sig=F4tRNBO_G_ZzajQmbmwe7Q>
> 	Automation equipment
> <http://groups.yahoo.com/gads?t=ms&k=Automation+equipment&w1=Workflow+automation&w2=Automation+equipment&w3=Industrial+automation&w4=Test+automation&w5=Sales+automation&w6=Factory+automation&c=6&s=145&.sig=9-eliEiH2rHCvwCe6xpvLw>
> 	Industrial automation
> <http://groups.yahoo.com/gads?t=ms&k=Industrial+automation&w1=Workflow+automation&w2=Automation+equipment&w3=Industrial+automation&w4=Test+automation&w5=Sales+automation&w6=Factory+automation&c=6&s=145&.sig=xI5A0mNmlPHiPI__bxZwUQ>
>
> Test automation
> <http://groups.yahoo.com/gads?t=ms&k=Test+automation&w1=Workflow+automation&w2=Automation+equipment&w3=Industrial+automation&w4=Test+automation&w5=Sales+automation&w6=Factory+automation&c=6&s=145&.sig=babdTZ-cZ8AbgxQRUJqztw>
> 	Sales automation
> <http://groups.yahoo.com/gads?t=ms&k=Sales+automation&w1=Workflow+automation&w2=Automation+equipment&w3=Industrial+automation&w4=Test+automation&w5=Sales+automation&w6=Factory+automation&c=6&s=145&.sig=-x7c78RB2nUpuPBRifr1YA>
> 	Factory automation
> <http://groups.yahoo.com/gads?t=ms&k=Factory+automation&w1=Workflow+automation&w2=Automation+equipment&w3=Industrial+automation&w4=Test+automation&w5=Sales+automation&w6=Factory+automation&c=6&s=145&.sig=zQtSND_pDmyn0UaMn4LPgQ>
>
>
>
>
------------------------------------------------------------------------
> YAHOO! GROUPS LINKS
>
>     *  Visit your group "xap_automation
>       <http://groups.yahoo.com/group/xap_automation>"
on the web.
>
>     *  To unsubscribe from this group, send an email to:
>        xap_automation-unsubscribe@xxxxxxx
>       <mailto:xap_automation-unsubscribe@xxxxxxx?subject=Unsubscribe>
>
>     *  Your use of Yahoo! Groups is subject to the Yahoo! Terms of
>       Service <http://docs.yahoo.com/info/terms/>.
>
>
>
------------------------------------------------------------------------
>


--------------060901010905040702030907
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">


Hi Ian,<br>
The address match is usually done in two parts as I'm sure you've seen-
the main address and then if that matches, the subaddresses.<br>
<br>
The code for the first is in Patrick's C library if you want some
pointers (or in C# in the xAPFramework).<br>
<br>
The second for my PIC's was simple since I don't have sub-sub adresses
and all the subaddresses are 01, etc. So I simply match the<br>
main address and then check the subaddress for the wildcards and then
get the value of the subaddress, if numeric. So fairly small.<br>
<br>
In your case you are going to need to implement the full subaddress
matching, I'd guess by iterating through the<br>
ram array of subaddresses with them ordered in endpoint sequence such
that the match routine returns the endpoint - of course<br>
the fun comes when it matches many since you'll probably need to action
the first match, by going to the body, and then come back and
check<br>
for any further matches. I can see the need to preserve a lot of
buffers!<br>
<br>
Lehane<br>
<br>
<br>
Ian Davidson wrote:
<blockquote
cite="mid1964797EF65B7C42877FDA720CA68CDB0E71EF@xxxxxxx"
type="cite">
<meta http-equiv="Content-Type" content="text/html;
">
<meta name="Generator" content="Microsoft Word 11
(filtered medium)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--><o:SmartTagType
namespaceuri="urn:schemas-microsoft-com:office:smarttags"
name="City">
<o:SmartTagType
namespaceuri="urn:schemas-microsoft-com:office:smarttags"
name="place"><o:SmartTagType
namespaceuri="urn:schemas-microsoft-com:office:smarttags"
name="PersonName">
<!--[if !mso]>
<style>
st1\:*{behavior:url(#default#ieooui) }
</style>
<![endif]-->
<style>
<!--
/* Font Definitions */
@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
{font-family:Tahoma;
panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Times New Roman";
color:black;}
a:link, span.MsoHyperlink
{color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{color:blue;
text-decoration:underline;}
tt
{font-family:"Courier New";}
span.EmailStyle18
{mso-style-type:personal-reply;
font-family:Arial;
color:navy;}
@page Section1
{size:595.3pt 841.9pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.Section1
{page:Section1;}
/* List Definitions */
@list l0
{mso-list-id:969672423;
mso-list-template-ids:310677594;}
@list l0:level1
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:36.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l0:level1 lfo2
{mso-level-start-at:0;
mso-level-numbering:continue;
mso-level-text:\F0A7;
mso-level-tab-stop:36.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
ol
{margin-bottom:0cm;}
ul
{margin-bottom:0cm;}
-->
</style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</o:SmartTagType></o:SmartTagType></o:SmartTagType>
<div class="Section1">
<p class="MsoNormal"><font color="navy"
face="Arial" size="2"><span
style="font-size: 10pt; font-family: Arial; color: navy;">Hi
Lehane<o:p></o:p></span></font></p>
<p class="MsoNormal"><font color="navy"
face="Arial" size="2"><span
style="font-size: 10pt; font-family: Arial; color:
navy;"><o:p>&nbsp;</o:p></span></font></p>
<p class="MsoNormal"><font color="navy"
face="Arial" size="2"><span
style="font-size: 10pt; font-family: Arial; color:
navy;">Thanks for
the pointers. I have seen your website
and HA diagram and must say I do like the
setup.<o:p></o:p></span></font></p>
<p class="MsoNormal"><font color="navy"
face="Arial" size="2"><span
style="font-size: 10pt; font-family: Arial; color:
navy;"><o:p>&nbsp;</o:p></span></font></p>
<p class="MsoNormal"><font color="navy"
face="Arial" size="2"><span
style="font-size: 10pt; font-family: Arial; color: navy;">I
also have
a xAP Netiom and have seen the
messages it generates, it works very well indeed.
<o:p></o:p></span></font></p>
<p class="MsoNormal"><font color="navy"
face="Arial" size="2"><span
style="font-size: 10pt; font-family: Arial; color:
navy;"><o:p>&nbsp;</o:p></span></font></p>
<p class="MsoNormal"><font color="navy"
face="Arial" size="2"><span
style="font-size: 10pt; font-family: Arial; color: navy;">I
guess I
had better keep programming has
it is obviously possible to achieve what I require as you have already
shown
with your lcd lightswitch. I was using an 18f252 but I have since
upgraded and I&#8217;m
now using an 18F8722 which has more memory, so no
excuse!<o:p></o:p></span></font></p>
<p class="MsoNormal"><font color="navy"
face="Arial" size="2"><span
style="font-size: 10pt; font-family: Arial; color:
navy;"><o:p>&nbsp;</o:p></span></font></p>
<p class="MsoNormal"><font color="navy"
face="Arial" size="2"><span
style="font-size: 10pt; font-family: Arial; color: navy;">I
think the
hardest part is writing the
code to match to any of the target names in my case 32 different names,
can you
give me any pointers as to how to structure the code to best achieve
this.<o:p></o:p></span></font></p>
<p class="MsoNormal"><font color="navy"
face="Arial" size="2"><span
style="font-size: 10pt; font-family: Arial; color:
navy;"><o:p>&nbsp;</o:p></span></font></p>
<p class="MsoNormal"><font color="navy"
face="Arial" size="2"><span
style="font-size: 10pt; font-family: Arial; color: navy;">I
already
have the Pic controlling some of
the colour kinetic RGB lights via DMX and it can also read a DMX stream
as well
as a few other bits but I must get the xAP side sorted before I move
any
further.<o:p></o:p></span></font></p>
<p class="MsoNormal"><font color="navy"
face="Arial" size="2"><span
style="font-size: 10pt; font-family: Arial; color:
navy;"><o:p>&nbsp;</o:p></span></font></p>
<p class="MsoNormal"><font color="navy"
face="Arial" size="2"><span
style="font-size: 10pt; font-family: Arial; color:
navy;">Again
Thanks<o:p></o:p></span></font></p>
<p class="MsoNormal"><font color="navy"
face="Arial" size="2"><span
style="font-size: 10pt; font-family: Arial; color:
navy;"><o:p>&nbsp;</o:p></span></font></p>
<p class="MsoNormal"><font color="navy"
face="Arial" size="2"><span
style="font-size: 10pt; font-family: Arial; color: navy;">Ian
D <o:p></o:p></span></font></p>
<p class="MsoNormal"><font color="navy"
face="Arial" size="2"><span
style="font-size: 10pt; font-family: Arial; color:
navy;"><o:p>&nbsp;</o:p></span></font></p>
<p class="MsoNormal"><font color="navy"
face="Arial" size="2"><span
style="font-size: 10pt; font-family: Arial; color:
navy;"><o:p>&nbsp;</o:p></span></font></p>
<p class="MsoNormal"><font color="navy"
face="Arial" size="2"><span
style="font-size: 10pt; font-family: Arial; color:
navy;"><o:p>&nbsp;</o:p></span></font></p>
<div>
<div class="MsoNormal" style="text-align: center;"
align="center"><font
color="black" face="Times New Roman"
size="3"><span
style="font-size: 12pt; color: windowtext;"
lang="EN-US">
<hr tabindex="-1" align="center" size="2"
width="100%"></span></font></div>
<p class="MsoNormal"><b><font
color="black" face="Tahoma"
size="2"><span
style="font-size: 10pt; font-family: Tahoma; color: windowtext;
font-weight: bold;"
lang="EN-US">From:</span></font></b><font
color="black" face="Tahoma"
size="2"><span
style="font-size: 10pt; font-family: Tahoma; color: windowtext;"
lang="EN-US"> <st1:PersonName w:st="on"><a
class="moz-txt-link-abbreviated" href="mailto:xap_automation@xxxxxxx";>xap_automation@xxxxxxx</a></st1:PersonName>
[mailto:<st1:PersonName w:st="on"><a
class="moz-txt-link-abbreviated" href="mailto:xap_automation@xxxxxxx";>xap_automation@xxxxxxx</a></st1:PersonName>]
<b><span style="font-weight: bold;">On Behalf Of
</span></b>Lehane
Kellett<br>
<b><span style="font-weight:
bold;">Sent:</span></b> 08 May 2006 22:46<br>
<b><span style="font-weight:
bold;">To:</span></b> Ian<br>
<b><span style="font-weight:
bold;">Subject:</span></b> Re:
[xap_automation] Help
with bsc</span></font><font
color="black"><span
style="color: windowtext;"
lang="EN-US"><o:p></o:p></span></font></p>
</div>
<p class="MsoNormal"><font color="black"
face="Times New Roman"
size="3"><span style="font-size:
12pt;"><o:p>&nbsp;</o:p></span></font></p>
<p class="MsoNormal"><font color="black"
face="Times New Roman"
size="3"><span style="font-size: 12pt;">Hi
Ian,<br>
I've written some BSC code for the PIC, so may be able to help.<br>
<br>
<br>
<o:p></o:p></span></font></p>
<div>
<p class="MsoNormal" style=""><font
color="black" face="Arial"
size="2"><span style="font-size: 10pt; font-family:
Arial;">I
am trying to write some code for a Pic based unit which has 16 inputs
and 16
outputs (sort of). I want the code to be as simply as possible and not
take up
too much room in the Pic. I have been looking at the UID field which
makes
sense. However, it appears the UID field in a header refers to the
source and
not the target. To decode an XAP message targeted at my device am I
correct in
thinking I need to capture and match the target line. If so this is not
an
issue if I only need to match to the device i.e.
gforce9.lighting.upstairs:&gt;
and then use the body to identify which sub address is being targeted.
But do I
have to implement the matching of all the sub addresses on the target
line i.e.
gforce9.lighting.upstairs:output1.<u1:p></u1:p></span></font><o:p></o:p></p>
</div>
<p class="MsoNormal"><font color="black"
face="Times New Roman"
size="3"><span style="font-size: 12pt;">The
UID is from the source in
the message you receive.
Whether you use it or not is up to your implementation - in mine I
don't
inspect the UID.<br>
<br>
In the messages you generate then you need to create a UID for each
endpoint.<br>
<br>
Yes, you'll need to do all of the standard xAP address message
matching,
including checking for errors where the endpoint in the target doesn't
match
the ID= field in the message and the wildcard matches. In your example
</span></font><font
face="Arial" size="2"><span
style="font-size: 10pt; font-family:
Arial;">gforce9.lighting.upstairs:output1
may be ID=1 in the message body, depending on how you map the
subaddress to the
ID= node(endpoint) id. If your base UID where FF123400 then your source
address
(the one you send) relating to node 1 would be FF123401.<br>
<br>
<br>
<br>
</span></font><o:p></o:p></p>
<div>
<p class="MsoNormal" style=""><font
color="black" face="Arial"
size="2"><span style="font-size: 10pt; font-family:
Arial;"><u1:p>&nbsp;</u1:p></span></font><o:p></o:p></p>
<p class="MsoNormal" style=""><font
color="black" face="Arial"
size="2"><span style="font-size: 10pt; font-family:
Arial;">Again
I can do this if the sub addresses are only output01 to output16 and
the same
for the inputs. It would very much eat up my code space if this can be
changed
to any name though. I understand it is not as user friendly to say:
output01 as
apposed to: bedroom.light1 but as I said code space is vanishing
fast.</span></font><o:p></o:p></p>
</div>
<p class="MsoNormal"><font color="black"
face="Times New Roman"
size="3"><span style="font-size: 12pt;">Are
you using PIC18F's? I have
an Ethernet
implementation of an LCD lightswitch, including 3 level 4x20 LCD buffer
in a
PIC18F452. The xAP&nbsp; Netiom runs in a PIC18F4525. Should be enough
RAM
for
a small table of mappings in an 18Fxxxx.<br>
<br>
Do you even need friendly names for the subaddresses? 01,02,03, etc are
just as
good given you'll probably be putting them in/out of a BSC
mapper.<br>
<br>
<br>
<o:p></o:p></span></font></p>
<div>
<p class="MsoNormal" style=""><font
color="black" face="Arial"
size="2"><span style="font-size: 10pt; font-family:
Arial;"><u1:p></u1:p><u1:p>&nbsp;</u1:p></span></font><o:p></o:p></p>
<p class="MsoNormal" style=""><font
color="black" face="Arial"
size="2"><span style="font-size: 10pt; font-family:
Arial;">I
also need to know the maximum length the target field can be in total
and for
each segment. I am sure it must be in the doc&#8217;s but I
couldn&#8217;t find
it. I am also unclear on the exact makeup of the address field, I
understand
the usual makeup of the address as a.b.c followed sometimes by :d but I
also
see a.b.c.d and also a.b.c:d.e. What is the maximum number of sections
(full
stops) and is everything d and onwards taken to be a sub
address.</span></font><o:p></o:p></p>
</div>
<p class="MsoNormal"><font color="black"
face="Times New Roman"
size="3"><span style="font-size: 12pt;">128
bytes is the maximum
length of an address line -
but even that's a bit long in a small PIC. However, there are some
implementations with <st1:City w:st="on"><st1:place
w:st="on">Dallas</st1:place></st1:City>
serial numbers as part of the address........... so even if you can't
handle
that length you'll either need to filter in the serial bridge or handle
the
error gracefully.<br>
<br>
You'll probably want to read the xAP specs again - they are pretty
clear on the
a.b.c:d&nbsp; etc addresses.<br>
For example, in my .NET DMX implementation I have:<br>
<br>
mmwave.dmx512.g8kmh_p4:house.upperfloor.bedrooom1.wall1<br>
<br>
Which allows control at many levels - I can turn on/off or dim all of
the house
lights with a simple command, or just the bedroom, or just one
light.<br>
<br>
There are currently 48 DMX channels in the house, so you'll see why it
is
useful.<br>
<br>
<o:p></o:p></span></font></p>
<div>
<p class="MsoNormal" style=""><font
color="black" face="Arial"
size="2"><span style="font-size: 10pt; font-family:
Arial;"><u1:p></u1:p><u1:p>&nbsp;</u1:p></span></font><o:p></o:p></p>
<p class="MsoNormal" style=""><font
color="black" face="Arial"
size="2"><span style="font-size: 10pt; font-family:
Arial;">Sorry
for all the questions but I have got a basic parser section working and
I would
like to finish it off but I don&#8217;t want to head off in the wrong
direction.<u1:p></u1:p></span></font><o:p></o:p></p>
</div>
<p class="MsoNormal" style="margin-bottom:
12pt;"><font color="black"
face="Times New Roman" size="3"><span
style="font-size: 12pt;">I took
me a while to get
to grips with BSC, check the developer archives!<br>
<br>
Lehane <o:p></o:p></span></font></p>

</div>
</blockquote>
<br>



<!-- **begin egp html banner** -->

<br><br>
<div style="width:500px; text-align:right; margin-bottom:1px;
color:#909090;">
<tt>SPONSORED LINKS</tt>
</div>
<table bgcolor=#e0ecee cellspacing="13"
cellpadding="0" width=500px>
<tr valign=top>
<td style="width:25%;">
<tt><a href="http://groups.yahoo.com/gads?t=ms&k=Workflow+automation&w1=Workflow+automation&w2=Automation+equipment&w3=Industrial+automation&w4=Test+automation&w5=Sales+automation&w6=Factory+automation&c=6&s=145&.sig=F4tRNBO_G_ZzajQmbmwe7Q";>Workflow
automation</a></tt>
</td>
<td style="width:25%;">
<tt><a href="http://groups.yahoo.com/gads?t=ms&k=Automation+equipment&w1=Workflow+automation&w2=Automation+equipment&w3=Industrial+automation&w4=Test+automation&w5=Sales+automation&w6=Factory+automation&c=6&s=145&.sig=9-eliEiH2rHCvwCe6xpvLw";>Automation
equipment</a></tt>
</td>
<td style="width:25%;">
<tt><a href="http://groups.yahoo.com/gads?t=ms&k=Industrial+automation&w1=Workflow+automation&w2=Automation+equipment&w3=Industrial+automation&w4=Test+automation&w5=Sales+automation&w6=Factory+automation&c=6&s=145&.sig=xI5A0mNmlPHiPI__bxZwUQ";>Industrial
automation</a></tt>
</td>
</tr>
<tr valign=top>
<td style="width:25%;">
<tt><a href="http://groups.yahoo.com/gads?t=ms&k=Test+automation&w1=Workflow+automation&w2=Automation+equipment&w3=Industrial+automation&w4=Test+automation&w5=Sales+automation&w6=Factory+automation&c=6&s=145&.sig=babdTZ-cZ8AbgxQRUJqztw";>Test
automation</a></tt>
</td>
<td style="width:25%;">
<tt><a href="http://groups.yahoo.com/gads?t=ms&k=Sales+automation&w1=Workflow+automation&w2=Automation+equipment&w3=Industrial+automation&w4=Test+automation&w5=Sales+automation&w6=Factory+automation&c=6&s=145&.sig=-x7c78RB2nUpuPBRifr1YA";>Sales
automation</a></tt>
</td>
<td style="width:25%;">
<tt><a href="http://groups.yahoo.com/gads?t=ms&k=Factory+automation&w1=Workflow+automation&w2=Automation+equipment&w3=Industrial+automation&w4=Test+automation&w5=Sales+automation&w6=Factory+automation&c=6&s=145&.sig=zQtSND_pDmyn0UaMn4LPgQ";>Factory
automation</a></tt>
</td>
</tr>
</tr>
</table>

<!-- **end egp html banner** -->



<!-- **begin egp html banner** -->

<br>
<div style="text-align:center; color:#909090;
width:500px;">
<hr style="border-bottom:1px; width:500px;
text-align:left;">
<tt>YAHOO! GROUPS LINKS</tt>
</div>
<br>
<ul>
<tt><li type=square>&nbsp;Visit your group "<a
href="http://groups.yahoo.com/group/xap_automation";>xap_automation</a>"
on the web.<br>&nbsp;</tt>
<tt><li type=square>&nbsp;To unsubscribe from this group,
send an email to:<br>&nbsp;<a href="mailto:xap_automation-unsubscribe@xxxxxxx?subject=Unsubscribe";>xap_automation-unsubscribe@xxxxxxx</a><br>&nbsp;</tt>
<tt><li type=square>&nbsp;Your use of Yahoo! Groups is
subject to the <a href="http://docs.yahoo.com/info/terms/";>Yahoo!
Terms of Service</a>.</tt>
</ul>
<br>
<div style="text-align:center; color:#909090;
width:500px;">
<hr style="border-bottom:1px; width:500px;
text-align:left;">
</div>
</br>

<!-- **end egp html banner** -->


</body>
</html>

--------------060901010905040702030907--




xAP_Automation Main Index | xAP_Automation Thread Index | xAP_Automation Home | Archives Home

Comments to the Webmaster are always welcomed, please use this contact form . Note that as this site is a mailing list archive, the Webmaster has no control over the contents of the messages. Comments about message content should be directed to the relevant mailing list.