I have a similar problem.  Wrote an app that uses the serial port, and it
has no problem talking from the Palm to HyperTerminal, or even Palm to
emulator.  It also works from emulator to device using a null modem cable.
But when i tried to go from the Palm to the device, no luck.  Some people
suggested that the RX and TX pins get messed up somewhere since it works one
way and not the other, but i tried connecting the palm cradle cable to a
gender changer, and then to the null modem cable to the device, and still no
success.  The hardware guys suggesting the gender changer (no luck) and also
a straight cable ( can't be done due to the funky serial port in the palm).
So you aren't alone, but I can't help you out any other than say what has
failed for me.  Good luck,
Andrew
Aaron Ardiri <[EMAIL PROTECTED]> wrote in message news:20550@palm-dev-forum...
>
> hi!
>
>   ok.. going crazy over this :)) time to reach our for any comments and
>   suggestions from someone who has done this before :P
>
>   i am trying to get some communication going between my application and
>   a special piece of hardware that is connected via the serial port. my
>   code is as follows:
>
> ---
> // find the library, it MUST be there
> SysLibFind("Serial Library", &globals->serialLibRef);
>
> // open the serial port, configure it
> {
>   SerSettingsType newSettings;
>
>   newSettings.baudRate = 57600L;
>   newSettings.flags    = serSettingsFlagStopBits1 |
>                          serSettingsFlagRTSAutoM  |
>                          serSettingsFlagCTSAutoM  |
>                          serSettingsFlagBitsPerChar8;
>
>   // open port + force settings
>   SerOpen(globals->serialLibRef, 0, 57600L);
>   SerSetSettings(globals->serialLibRef, &newSettings);
> }
>
> // ok, lets determine if we have a connection (battery ok)?
> {
>   Char   cmd[4] = { 0x47, 0x42, 0x54, 0x31 };
>   Char   response[32] = "";
>   UInt32 qty, count, delay;
>   Char   strStatus[32];
>   Err    err;
>
>   // send the command
>   SerReceiveFlush(globals->serialLibRef, 0);
>   SerSend10(globals->serialLibRef, cmd, 4);
>
>   // lets give the "box" 1/8th of a second to respond
>   delay = SysTicksPerSecond() >> 3;
>   SysTaskDelay(delay);
>
>   // let wait until there is something there, timeout after 7/8 second
>   for (count=0; count < 7; count++) {
>
>     // whats in the queue?
>     err = SerReceiveWait(globals->serialLibRef, 5, delay);
>     if (err == serErrLineErr) SerReceiveFlush(globals->serialLibRef, 0);
else
>     if (err == errNone) break;  // its there, get out
>   }
>
>   // how many bytes are really available?
>   err = SerReceiveCheck(globals->serialLibRef, &qty);
>   if (qty >= 32) qty = 31;                             // our buffer limit
>
>   // did we get a response we can understand?
>   if ((err == errNone) && (qty != 0)) {
>
>     // get the bytes from the queue
>     SerReceive10(globals->serialLibRef, response, qty, 0);
>     response[qty] = '\0';
>
>     // we got the right protocol?
>     if ((qty == 5) && (response[0] == 'C') && (response[1] = 'T')) {
>       StrPrintF(strStatus, "v%c.%c, %s",
>                 response[2], response[3],
>                 response[4] == 'G' ? "Ready" : "Bad Battery");
>     }
>     else
>       StrCopy(strStatus, "Unknown Device");
>   }
>   else
>     StrCopy(strStatus, "Not Connected");
> }
> ---
>
>   this code works, if i connect my Palm Device to the serial port and use
>   a terminal program like Hyperterminal to send text and back forth. As
>   soon as i connect it to my "device", i always get a "qty == 0"
>   situation. no bytes are being received when i connect to the real
>   device..
>
>   i have tested if the device works correctly, by using Online 1.41
>   (demo) and sending info and and from it.. getting responses. the device
>   gives all the responses i would expect :) i used the same config options
>   57600, 8N1 :P
>
>   does *anyone* have an idea what could be wrong here? :))
>
>   i am using SerSend10() and SerReceive10() - but even with the 2.0+
>   versions, i get the same results.. using thew new serial manager is not
>   an option. its just confusion i can get it working if i act as the
>   device over Hyperterminal :)
>
>   i lost another days sleep on this :) hehe
>
>   cheers
>
> // az
> [EMAIL PROTECTED]
>
>
>



-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/

Reply via email to