EmbeddedRelated.com
Forums

Program Checksum

Started by seecwriter January 22, 2010
I am using the function below to compute the checksum of my application
in Flash. This works fine for rabbit modules that run out flash. But
for modules that run out of ram, such as the RCM3900, it fails.

Does anyone know what needs to change for this work when running
out of ram?

Steve

unsigned int getProgChecksum()
{
#define CHECK_BLOCK_SIZE 2048U
unsigned long checkaddr, bytestogo;
unsigned int checklen;
unsigned int checksum;

checksum = 0;
bytestogo = ( ((unsigned long) prog_param.HPA.aaa.a.base) << 12) +
prog_param.HPA.aaa.a.addr;
checkaddr = 0;
while( bytestogo ) {
checklen = (bytestogo > CHECK_BLOCK_SIZE) ? CHECK_BLOCK_SIZE:(unsigned int)bytestogo;
fs_checksum_x( &checksum, checkaddr, checklen );
checkaddr += checklen;
bytestogo -= checklen;
}
return( checksum );
}

On Jan 22, 2010, at 1:47 PM, seecwriter wrote:
> I am using the function below to compute the checksum of my application
> in Flash. This works fine for rabbit modules that run out flash. But
> for modules that run out of ram, such as the RCM3900, it fails.
>
> Does anyone know what needs to change for this work when running
> out of ram?

I don't do much with the 2000/3000 products now, but you'll probably have to map the parallel flash to one of the memory quadrants, and do the checksum on that instead of RAM.

The problem is that the RAM contains a mixture of the code and variables -- variables that have changed since your program started up.

You might be able to backport code from board_update.lib in Dynamic C 10.54 or later to use the orgtable to only checksum the bytes that are in code or constant orgs. Take a look at _buReadFirmware_running() to see what I'm talking about. I'm not sure how similar the orgtable is for Dynamic C 9.

-Tom
On Jan 22, 2010, at 5:07 PM, Tom Collins wrote:
> You might be able to backport code from board_update.lib in Dynamic C 10.54 or later to use the orgtable to only checksum the bytes that are in code or constant orgs. Take a look at _buReadFirmware_running() to see what I'm talking about. I'm not sure how similar the orgtable is for Dynamic C 9.
>
Hrm. Dynamic C 9 doesn't have an org table -- that was a feature introduced around Dynamic C 10.21. You'll have to stick with mapping the parallel flash to a memory quadrant, and checksumming its bytes.

-Tom
I use the code below, adapted from Rabbit sample code, with an Ethernet connection via a Thomson router to open a socket prior to an FTP data transfer.
It works well and runs on an RCM3700.
I want to extend the code so it runs on an RCM5600W using a wireless link instead of an Ethernet cable. So I presume I need to add some statements to my if config call.

The Thomson router I use has an SSID of Thomson0EF5CC and the PSK is a hex string similar to this 3F7DA1B294

My question is WHAT additional statements need to be added to the if_config call so that the connection works with wireless rather than ethernet.

I'm new to wireless, totally confused by the documentation and can't find a sample program that illustrates how to do this apparently simple task.
I would be grateful for any help.

Regards
Alan Matheson

// NOTE THIS HAS BEEN CHANGED TO A FICTITOUS SITE

/* Address of remote FTP server */
#define REMOTE_HOST "199.231.120.47"

/* Port on the FTP server to connect to */
#define REMOTE_PORT 21

/* username on the server */
#define REMOTE_USERNAME "123456"

/* password on the server */
#define REMOTE_PASSWORD "sailor"

int openInterfaceToInternet()
{
auto word iface;
auto DHCPInfo * di;
int i;

// Set fallbacks...
for (iface = 0; iface < IF_MAX; ++iface) {
// 10.10.6.2, 10.10.8.2, 10.10.10.2 etc.
fallback_ip[iface] = inet_addr("10.10.6.2") + (iface<<9L);
fallback_netmask[iface] = inet_addr("255.255.255.0");
}
#define DTIMEOUT 8 // Define timeout for this demo.

// Set runtime control for sock_init()...
iface = 0;

ifconfig(iface,
IFS_ICMP_CONFIG, 1, // Also allow use of directed ping to configure (only if DHCP times out).
IFS_IF_CALLBACK, print_results, // Print results when i/f comes up/down
IFS_DHCP, di != NULL, // Use DHCP if interface is qualified for it
IFS_DHCP_TIMEOUT, DTIMEOUT, // Specify timeout in seconds
//IFS_DHCP_QUERY, IF_P2P(iface), // Use following address, with DHCP only for other parms - note that
// many DHCP servers do not support this. It is more useful for
// PPP interfaces.
IFS_END);

printf("Starting network (DHCP timeout %d seconds)...\n", DTIMEOUT);

/*
* Actually initialize the network interfaces. This blocks for a short time (about 1s)
* to allow for Ethernet negotiation, but does not block to wait for DHCP to complete.
* The non-blocking behavior is new since DC8.04.
*/
sock_init();

printf("Done sock_init()\n");
while (ifpending(IF_DEFAULT) == 1) tcp_tick(NULL);
if (!ifstatus(IF_DEFAULT))
{
printf("Network interface failed to come up.\n");
return FAILURE;
}

printf("Network interface is running.\n");
return SUCCESS;
}
Alan, here's the code I use, haven't had any trouble with it for a couple
years now. I'm using WEP on my network, so the WEP_KEY string below is where
you'd put yours, naturally. (I xx-ed it out so I don't have to change it
after posting this code here!)

Also, note that I'm assigning my Rabbit module a static IP address of
192.168.2.45. Everything else on my network gets a dynamic IP address but
this method works, and I've spaced the Rabbit's IP address up high enough
that the dynamic stuff will never get to it and cause a collision. (And I
never have to wonder what the IP address is; it's always the same even after
household reboots.)

-BobC

/*

* NETWORK CONFIGURATION

* Please see the function help (Ctrl-H) on TCPCONFIG for instructions on

* compile-time network configuration.

*/

#define TCPCONFIG 1

#define _PRIMARY_STATIC_IP "192.168.2.45"

#define _PRIMARY_NETMASK "255.255.255.0"

#define MY_GATEWAY "192.168.2.1"

#define MY_NAMESERVER "192.168.2.1"

#define IFC_WIFI_SSID "ColwellWirelessNetwork"

#define IFC_WIFI_MODE IFPARAM_WIFI_INFRASTRUCTURE

#define IFC_WIFI_REGION IFPARAM_WIFI_REGION_AMERICAS

#define IFC_WIFI_ENCRYPTION IFPARAM_WIFI_ENCR_WEP

//#define _WIFI_USEKEY "0"

//#define IFC_WIFI_WEP_KEYNUM 0

#define IFC_WIFI_WEP_KEY0_HEXSTR "xxxxxxxx"

From: r... [mailto:r...] On
Behalf Of Alan Matheson
Sent: Monday, January 25, 2010 4:53 PM
To: r...
Subject: [rabbit-semi] Wireless hookup with RCM5600W

I use the code below, adapted from Rabbit sample code, with an Ethernet
connection via a Thomson router to open a socket prior to an FTP data
transfer.

It works well and runs on an RCM3700.

I want to extend the code so it runs on an RCM5600W using a wireless link
instead of an Ethernet cable. So I presume I need to add some statements to
my if config call.

The Thomson router I use has an SSID of Thomson0EF5CC and the PSK is a hex
string similar to this 3F7DA1B294

My question is WHAT additional statements need to be added to the if_config
call so that the connection works with wireless rather than ethernet.

I'm new to wireless, totally confused by the documentation and can't find a
sample program that illustrates how to do this apparently simple task.

I would be grateful for any help.

Regards

Alan Matheson

// NOTE THIS HAS BEEN CHANGED TO A FICTITOUS SITE

/* Address of remote FTP server */
#define REMOTE_HOST "199.231.120.47"

/* Port on the FTP server to connect to */
#define REMOTE_PORT 21

/* username on the server */
#define REMOTE_USERNAME "123456"

/* password on the server */
#define REMOTE_PASSWORD "sailor"

int openInterfaceToInternet()
{
auto word iface;
auto DHCPInfo * di;
int i;

// Set fallbacks...
for (iface = 0; iface < IF_MAX; ++iface) {
// 10.10.6.2, 10.10.8.2, 10.10.10.2 etc.
fallback_ip[iface] = inet_addr("10.10.6.2") + (iface<<9L);
fallback_netmask[iface] = inet_addr("255.255.255.0");
}

#define DTIMEOUT 8 // Define timeout for this demo.

// Set runtime control for sock_init()...
iface = 0;

ifconfig(iface,
IFS_ICMP_CONFIG, 1, // Also allow use of directed ping to
configure (only if DHCP times out).
IFS_IF_CALLBACK, print_results, // Print results when i/f comes
up/down
IFS_DHCP, di != NULL, // Use DHCP if interface is qualified for
it
IFS_DHCP_TIMEOUT, DTIMEOUT, // Specify timeout in seconds
//IFS_DHCP_QUERY, IF_P2P(iface), // Use following address, with
DHCP only for other parms - note that
// many DHCP servers do not support this. It is more
useful for
// PPP interfaces.
IFS_END);

printf("Starting network (DHCP timeout %d seconds)...\n", DTIMEOUT);

/*
* Actually initialize the network interfaces. This blocks for a short
time (about 1s)
* to allow for Ethernet negotiation, but does not block to wait for DHCP
to complete.
* The non-blocking behavior is new since DC8.04.
*/
sock_init();

printf("Done sock_init()\n");

while (ifpending(IF_DEFAULT) == 1) tcp_tick(NULL);
if (!ifstatus(IF_DEFAULT))
{
printf("Network interface failed to come up.\n");
return FAILURE;
}

printf("Network interface is running.\n");
return SUCCESS;
}
Thanks for that Bob, but its not working yet. Can I ask what your if_config call looks like please.
Regards
Alan Matheson

From: Bob Colwell
Sent: Tuesday, January 26, 2010 2:19 PM
To: r...
Subject: RE: [rabbit-semi] Wireless hookup with RCM5600W

Alan, here's the code I use, haven't had any trouble with it for a couple years now. I'm using WEP on my network, so the WEP_KEY string below is where you'd put yours, naturally. (I xx-ed it out so I don't have to change it after posting this code here!)

Also, note that I'm assigning my Rabbit module a static IP address of 192.168.2.45. Everything else on my network gets a dynamic IP address but this method works, and I've spaced the Rabbit's IP address up high enough that the dynamic stuff will never get to it and cause a collision. (And I never have to wonder what the IP address is; it's always the same even after household reboots.)

-BobC

/*

* NETWORK CONFIGURATION

* Please see the function help (Ctrl-H) on TCPCONFIG for instructions on

* compile-time network configuration.

*/

#define TCPCONFIG 1

#define _PRIMARY_STATIC_IP "192.168.2.45"

#define _PRIMARY_NETMASK "255.255.255.0"

#define MY_GATEWAY "192.168.2.1"

#define MY_NAMESERVER "192.168.2.1"

#define IFC_WIFI_SSID "ColwellWirelessNetwork"

#define IFC_WIFI_MODE IFPARAM_WIFI_INFRASTRUCTURE

#define IFC_WIFI_REGION IFPARAM_WIFI_REGION_AMERICAS

#define IFC_WIFI_ENCRYPTION IFPARAM_WIFI_ENCR_WEP

//#define _WIFI_USEKEY "0"

//#define IFC_WIFI_WEP_KEYNUM 0

#define IFC_WIFI_WEP_KEY0_HEXSTR "xxxxxxxx"

From: r... [mailto:r...] On Behalf Of Alan Matheson
Sent: Monday, January 25, 2010 4:53 PM
To: r...
Subject: [rabbit-semi] Wireless hookup with RCM5600W

I use the code below, adapted from Rabbit sample code, with an Ethernet connection via a Thomson router to open a socket prior to an FTP data transfer.

It works well and runs on an RCM3700.

I want to extend the code so it runs on an RCM5600W using a wireless link instead of an Ethernet cable. So I presume I need to add some statements to my if config call.

The Thomson router I use has an SSID of Thomson0EF5CC and the PSK is a hex string similar to this 3F7DA1B294

My question is WHAT additional statements need to be added to the if_config call so that the connection works with wireless rather than ethernet.

I'm new to wireless, totally confused by the documentation and can't find a sample program that illustrates how to do this apparently simple task.

I would be grateful for any help.

Regards

Alan Matheson

// NOTE THIS HAS BEEN CHANGED TO A FICTITOUS SITE

/* Address of remote FTP server */
#define REMOTE_HOST "199.231.120.47"

/* Port on the FTP server to connect to */
#define REMOTE_PORT 21

/* username on the server */
#define REMOTE_USERNAME "123456"

/* password on the server */
#define REMOTE_PASSWORD "sailor"

int openInterfaceToInternet()
{
auto word iface;
auto DHCPInfo * di;
int i;

// Set fallbacks...
for (iface = 0; iface < IF_MAX; ++iface) {
// 10.10.6.2, 10.10.8.2, 10.10.10.2 etc.
fallback_ip[iface] = inet_addr("10.10.6.2") + (iface<<9L);
fallback_netmask[iface] = inet_addr("255.255.255.0");
}

#define DTIMEOUT 8 // Define timeout for this demo.

// Set runtime control for sock_init()...
iface = 0;

ifconfig(iface,
IFS_ICMP_CONFIG, 1, // Also allow use of directed ping to configure (only if DHCP times out).
IFS_IF_CALLBACK, print_results, // Print results when i/f comes up/down
IFS_DHCP, di != NULL, // Use DHCP if interface is qualified for it
IFS_DHCP_TIMEOUT, DTIMEOUT, // Specify timeout in seconds
//IFS_DHCP_QUERY, IF_P2P(iface), // Use following address, with DHCP only for other parms - note that
// many DHCP servers do not support this. It is more useful for
// PPP interfaces.
IFS_END);

printf("Starting network (DHCP timeout %d seconds)...\n", DTIMEOUT);

/*
* Actually initialize the network interfaces. This blocks for a short time (about 1s)
* to allow for Ethernet negotiation, but does not block to wait for DHCP to complete.
* The non-blocking behavior is new since DC8.04.
*/
sock_init();

printf("Done sock_init()\n");

while (ifpending(IF_DEFAULT) == 1) tcp_tick(NULL);
if (!ifstatus(IF_DEFAULT))
{
printf("Network interface failed to come up.\n");
return FAILURE;
}

printf("Network interface is running.\n");
return SUCCESS;
}
This came straight out of Rabbit sample code:

/*

* Instead of sending other text back from the cgi's

* we have decided to redirect them to the original page.

* the cgi_redirectto forms a header which will redirect

* the browser back to the main page.

*

*/

char *myurl() {

static char URL[64];

char tmpstr[32];

long ipval;

ifconfig(IF_DEFAULT, IFG_IPADDR, &ipval, IFS_END);

sprintf(URL, "http://%s/index.shtml", inet_ntoa(tmpstr, ipval));

return URL;

}

And you need.

main()

{

my_init(); // not using lib init, got my own

sock_init();

http_init();

tcp_reserveport(80);

while (1)

{

update_outputs();

http_handler();

}

}

From: r... [mailto:r...] On
Behalf Of Alan Matheson
Sent: Monday, January 25, 2010 5:41 PM
To: r...
Subject: Re: [rabbit-semi] Wireless hookup with RCM5600W

Thanks for that Bob, but its not working yet. Can I ask what your if_config
call looks like please.

Regards

Alan Matheson

From: Bob Colwell

Sent: Tuesday, January 26, 2010 2:19 PM

To: r...

Subject: RE: [rabbit-semi] Wireless hookup with RCM5600W

Alan, here's the code I use, haven't had any trouble with it for a couple
years now. I'm using WEP on my network, so the WEP_KEY string below is where
you'd put yours, naturally. (I xx-ed it out so I don't have to change it
after posting this code here!)

Also, note that I'm assigning my Rabbit module a static IP address of
192.168.2.45. Everything else on my network gets a dynamic IP address but
this method works, and I've spaced the Rabbit's IP address up high enough
that the dynamic stuff will never get to it and cause a collision. (And I
never have to wonder what the IP address is; it's always the same even after
household reboots.)

-BobC

/*

* NETWORK CONFIGURATION

* Please see the function help (Ctrl-H) on TCPCONFIG for instructions on

* compile-time network configuration.

*/

#define TCPCONFIG 1

#define _PRIMARY_STATIC_IP "192.168.2.45"

#define _PRIMARY_NETMASK "255.255.255.0"

#define MY_GATEWAY "192.168.2.1"

#define MY_NAMESERVER "192.168.2.1"

#define IFC_WIFI_SSID "ColwellWirelessNetwork"

#define IFC_WIFI_MODE IFPARAM_WIFI_INFRASTRUCTURE

#define IFC_WIFI_REGION IFPARAM_WIFI_REGION_AMERICAS

#define IFC_WIFI_ENCRYPTION IFPARAM_WIFI_ENCR_WEP

//#define _WIFI_USEKEY "0"

//#define IFC_WIFI_WEP_KEYNUM 0

#define IFC_WIFI_WEP_KEY0_HEXSTR "xxxxxxxx"

From: r... [mailto:r...] On
Behalf Of Alan Matheson
Sent: Monday, January 25, 2010 4:53 PM
To: r...
Subject: [rabbit-semi] Wireless hookup with RCM5600W

I use the code below, adapted from Rabbit sample code, with an Ethernet
connection via a Thomson router to open a socket prior to an FTP data
transfer.

It works well and runs on an RCM3700.

I want to extend the code so it runs on an RCM5600W using a wireless link
instead of an Ethernet cable. So I presume I need to add some statements to
my if config call.

The Thomson router I use has an SSID of Thomson0EF5CC and the PSK is a hex
string similar to this 3F7DA1B294

My question is WHAT additional statements need to be added to the if_config
call so that the connection works with wireless rather than ethernet.

I'm new to wireless, totally confused by the documentation and can't find a
sample program that illustrates how to do this apparently simple task.

I would be grateful for any help.

Regards

Alan Matheson

// NOTE THIS HAS BEEN CHANGED TO A FICTITOUS SITE

/* Address of remote FTP server */
#define REMOTE_HOST "199.231.120.47"

/* Port on the FTP server to connect to */
#define REMOTE_PORT 21

/* username on the server */
#define REMOTE_USERNAME "123456"

/* password on the server */
#define REMOTE_PASSWORD "sailor"

int openInterfaceToInternet()
{
auto word iface;
auto DHCPInfo * di;
int i;

// Set fallbacks...
for (iface = 0; iface < IF_MAX; ++iface) {
// 10.10.6.2, 10.10.8.2, 10.10.10.2 etc.
fallback_ip[iface] = inet_addr("10.10.6.2") + (iface<<9L);
fallback_netmask[iface] = inet_addr("255.255.255.0");
}
#define DTIMEOUT 8 // Define timeout for this demo.

// Set runtime control for sock_init()...
iface = 0;

ifconfig(iface,
IFS_ICMP_CONFIG, 1, // Also allow use of directed ping to
configure (only if DHCP times out).
IFS_IF_CALLBACK, print_results, // Print results when i/f comes
up/down
IFS_DHCP, di != NULL, // Use DHCP if interface is qualified for
it
IFS_DHCP_TIMEOUT, DTIMEOUT, // Specify timeout in seconds
//IFS_DHCP_QUERY, IF_P2P(iface), // Use following address, with
DHCP only for other parms - note that
// many DHCP servers do not support this. It is more
useful for
// PPP interfaces.
IFS_END);

printf("Starting network (DHCP timeout %d seconds)...\n", DTIMEOUT);

/*
* Actually initialize the network interfaces. This blocks for a short
time (about 1s)
* to allow for Ethernet negotiation, but does not block to wait for DHCP
to complete.
* The non-blocking behavior is new since DC8.04.
*/
sock_init();

printf("Done sock_init()\n");
while (ifpending(IF_DEFAULT) == 1) tcp_tick(NULL);
if (!ifstatus(IF_DEFAULT))
{
printf("Network interface failed to come up.\n");
return FAILURE;
}

printf("Network interface is running.\n");
return SUCCESS;
}
On Jan 25, 2010, at 4:53 PM, Alan Matheson wrote:
> My question is WHAT additional statements need to be added to the if_config call so that the connection works with wireless rather than ethernet.
>
> I'm new to wireless, totally confused by the documentation and can't find a sample program that illustrates how to do this apparently simple task.
> I would be grateful for any help.
>

For a compile-time config via macros, view the function help for TCPCONFIG (put the cursor on the word TCPCONFIG in an editor window and hit Control-H).

For run-time config, view the function help for ifconfig(). It will list out all of the options and the parameters to use.

-Tom
Already done that thanks Tom, unfortunately there is a huge quantity of documentation to look through, some of which as a wireless novice I simply don't understand and a lot of which is frankly skimpy.

What Rabbit really need to do is include many more PRACTICAL examples of code in their samples.

For example I'm using a DLINK wireless modem connected through an ADSL line to the internet, something that tens of millions of people must use.
I want to use a RCM5600W to connect to an external FTP site through that modem and send some data to it. Something that I guess several tens of thousands of programmers will eventually want to do.

Simple enough using Ethernet cable off a RCM3700 and I have that working.

But there is no example code for the RCM5600 that will do a task like that or show how to upgrade from an Ethernet to a wireless link.

Sorry for the rant but I am a very experienced programmer in other areas and it frustrates me to waste so much time on something that's probably inherently simple.
Thanks for you suggestions though.
Alan Matheson

From: Tom Collins
Sent: Tuesday, January 26, 2010 5:04 PM
To: r...
Subject: Re: [rabbit-semi] Wireless hookup with RCM5600W

On Jan 25, 2010, at 4:53 PM, Alan Matheson wrote:
My question is WHAT additional statements need to be added to the if_config call so that the connection works with wireless rather than ethernet.

I'm new to wireless, totally confused by the documentation and can't find a sample program that illustrates how to do this apparently simple task.
I would be grateful for any help.

For a compile-time config via macros, view the function help for TCPCONFIG (put the cursor on the word TCPCONFIG in an editor window and hit Control-H).
For run-time config, view the function help for ifconfig(). It will list out all of the options and the parameters to use.
-Tom
Hi Alan,

Yes, it is frustrating to try and get something working with Rabbit. I have
a design that uses a GSM modem and I dial up over PPP. The system also scans
for a WiFi access point (name is known) and if it detects this, it shuts
down the PPP connection and connects to the WiFi instead.

I had big trouble getting this to work at first. I could detect the network
but it would fail to connect using the supplied code from one of the
samples. I eventually got it working yesterday after many hours tinkering.
The docs are very light on what you need as a minimum for the ifconfig call
for WiFI.

ifconfig(IF_WIFI0,

IFS_WIFI_ENCRYPTION, IFPARAM_WIFI_ENCR_WEP,

IFS_WIFI_AUTHENTICATION, IFPARAM_WIFI_AUTH_OPEN,

IFS_WIFI_WEP_KEY_HEXSTR, 0,

ConfigData.WiFiNumKey,

IFS_WIFI_WEP_KEYNUM, 0,

IFS_WIFI_SSID, ssid_len, ssid,

IFS_WIFI_MODE, IFPARAM_WIFI_INFRASTRUCTURE,

IFS_DHCP, 1,

IFS_END);

In the above, I prefer to pass in the Key and the ssid from variables as the
user has the ability to change this as required. I do not like the #DEFINE
fixed options. Some of the above options were not included in the original
version I used and it would connect the first time but subsequent
connections would fail. This is the init for WEP. I have different code for
WPA and open as my design supports them all. You mentioned WEP so I just
included that part here. I also don't use fixed IP's as this is designed to
run on multiple units so it has to use DHCP.

After the above call, I then call this and the network comes up.

ifup(IF_WIFI0);

while (ifpending(IF_WIFI0) != IF_DOWN)

{

tcp_tick();

OSTimeDly(16);

}

//

// We only wait 30 seconds max for it to come up, otherwise we

// go back to PPP as it could be a config error or wrong AP

//

WiFiWaitTimer = SEC_TIMER + 30;

Status = ifpending(IF_WIFI0);

while((Status == IF_COMING_UP) || (Status == IF_COMING_DOWN))

{

tcp_tick();

OSTimeDly(16);

if(SEC_TIMER > WiFiWaitTimer)

{

ifdown(IF_WIFI0); // Take if down again

}

Status = ifpending(IF_WIFI0);

}

if(Status != IF_UP)

{

printf("WiFi failed to connect\n");

WiFiActive = 0; // Failed so go back to scanning

}

else

{

printf("WiFi connected\n");

}

Not shown above is some additional steps where I check to see if the
interface was coming down. If it is, I try to bring it up again. I have
found that sometimes after doing a scan, the status from ifpending shows an
IF_COMING_DOWN return so I have to bring it up again. With the code I
developed, the WiFi is now consistent.

PS. I am using UCOS with this design so there is some calls to OSTimeDly()
in the above code so you may have to adapt this to whatever you are using.

Hope this helps?

Dave...

---
Very funny Scotty, now beam down my clothes!!!
---
http://www.embeddedcomputer.co.uk
---

From: r... [mailto:r...] On
Behalf Of Alan Matheson
Sent: 26 January 2010 12:09
To: r...
Subject: Re: [rabbit-semi] Wireless hookup with RCM5600W

Already done that thanks Tom, unfortunately there is a huge quantity of
documentation to look through, some of which as a wireless novice I simply
don't understand and a lot of which is frankly skimpy.

What Rabbit really need to do is include many more PRACTICAL examples of
code in their samples.

For example I'm using a DLINK wireless modem connected through an ADSL line
to the internet, something that tens of millions of people must use.

I want to use a RCM5600W to connect to an external FTP site through that
modem and send some data to it. Something that I guess several tens of
thousands of programmers will eventually want to do.

Simple enough using Ethernet cable off a RCM3700 and I have that working.

But there is no example code for the RCM5600 that will do a task like that
or show how to upgrade from an Ethernet to a wireless link.

Sorry for the rant but I am a very experienced programmer in other areas and
it frustrates me to waste so much time on something that's probably
inherently simple.

Thanks for you suggestions though.

Alan Matheson