Article # 68, added by Geoworks, historical record
| first | previous | index | next | last |

OmniGo serial driver




Q. I am using the OmniGo SDK to write an app that will use 
the serial port. Whenever I try to include the line 
  library streamc 
in my .gp file, the linker tells me that "library could not 
be found in any platform files." If the line 
  platform omnigo 
is removed from the file, the error does not occur. This 
happens with the sample serial apps in the SDK. As soon as 
the platform statement is added to either serial.gp or 
serial2.gp sample app files, the same problem occurs. Any 
suggestions? 
 
A. Due to a glitch at production time, the streamc library 
entry was inadvertently omitted from the omnigo.plt platform 
file. 
 
There are 2 ways to work around this: 
 
1. Use the "platform omnigo" line in your .gp file, but also 
add the line "exempt streamc". This will tell Glue to ignore 
the streamc library when checking protocols in the platform 
file. 
 
2. The streamc library geode on the SDK (in 
\OMNIGO\LIBRARY\STREAMC) is a newer version than that which 
was shipped in ROM on the OmniGo 100 device. If you're using 
some of the new features (listed below and in the serial2 
sample app), then make sure your application checks the 
protocols of the streamc library to ensure your app is using 
the correct (newer) version of the library. 
 
In this case, edit the omnigo.plt platform file to include 
an entry for streamc. The file is 
\OMNIGO\INCLUDE\LDF\omnigo.plt. Add the following line 
(alphabetically): 
 
  streamc  1  1 
 
This will allow Geos to put up the "system file missing" 
dialog if an earlier version of the streamc library geode is 
in place when your app runs. Since the OmniGo device itself 
has an earlier version of the library geode, you must 
package the newer streamC geode (located in 
\OMNIGO\LIBRARY\STREAMC) with your application when you ship 
it. 
 
The newer version of the streamc library includes the 
following new routines. If you're using any of these, then 
you should use fix # 2. (These are the same routines that 
are listed in the serial2 sample application source file, 
serial2.goc.) 
  SerialLoadDriver() 
  ParallelLoadDriver() 
  StreamSetMessageNotify() 
  StreamSetRoutineNotify() 
  StreamSetDataRoutineNotify() 
  StreamSetNoNotify() 
  StreamSetThreshold()