Autonomous Underwater Vehicles : Driver Porting Details This page last changed on Jul 29, 2008 by tm. Auv Driver Portnig Links AUV Linux - Driver Port and Validation AUV Debian4 Linux and auv-pkgs Install, build Termios Dev Info ### Driver porting and validation #### Setup Assuming a Debian and auv-linux software is installed, configured, built, setup, etc. (see below) and network and serial is working. Note: omniORB.cfg located in prj/auv-pkgs/omniORB needs to have bootstrap enabled. Done in auv-pkgs cvs module. auv@mvc-debian pass: dorado1 ip 134.89.32.16 (static) Serial Port assignements (per Duane 3/7/08) CPU Card ttyS0 (console) Iridium ttyS1 Freewave Xtreme/104 Isolated 12 port Card ttyS2 Tailcone ttyS3 no connect ttyS4 Parosci ttyS5 teledyne DVL - Navigator Broadband ADCP Version 9.18 ttyS6 ashtec GPS ttyS7 Gulper (RS485) ttyS8 no connect ttyS9 Bluefin Batteries (RS485) ttyS10 MVC_PIC ttyS11 3DM_GX1 ttyS12 Drop Weight ttyS13 USBL LanTronix terminal servers tcp:sci1-dmo1:10002 seabird tcp:sci1-dmo1:10001 seabird tcp:sci2-dmo1:14002 hydroscat tcp:sci3-dmo1:14001 lisst #### ### Driver Status #### Navigation drivers (first priority) Status at a glance:
Tasks: NavigationDrivers |
(tm) aschtec GPS (del) BluefinBatt (del) (tm) 3dmgx1 Compass (del) (tm) Parosci Pressure (del) (tm) Tailcone (del) (tm) Teledyne DVL (del)
Add Task:
- - - Status details: ##### ashtec(gps) devices.cfg change: /dev/ser7 -> /dev/ttyS6 9600 8N1 Status ./ashtechapp -dev /dev/ttyS6 'Partial' Basic functional - tested with no statellite acquisition. 'Soak Test' shows what looks like a memory leak. Experimented (a day) with Duma and Valgrind in an effort to track down the leak. Need more time to develop expertise with the tool. ##### bluefinBatt devices.cfg change: /dev/ser10 -> /dev/ttyS9 Status Established serial connection. BlueFinBatt device is no longer echoing characters (not fully confirmed). HT modified jumper on Xtreme104 for 'no echo' on RS485. Driver test shows what looks like proper initialization - need to audit the test to see what is being exercised. ##### 3dmgx1 Microstrain AHRS Compass m3dmgx1Server -dev /dev/ser12 -useForNav ./crossbow -dev /dev/ttyS11 Status Crossbow compass is no longer on the vehicle - this has been replaced by the 3DMGX1 compass. Tom O ported the 3dmgx1 driver. The driver is passing serial data though there are issues with the data stability (could be the compass). July 9: Hans has made the docking vehicle available to finish the porting / validation. The 3dmgx1 is not on the vehicle, but rather the Crossbow DMU The DMU baud rate can be changed per the following procedure: 1. Start with the DMU connected to the serial interface, with your software set to the default baud rate of 38400. 2. Send the ASCII character "b" (0x62 hex) to the DMU. In a terminal program like minicom simply type the letter "b". The DMU is case sensitive. The DMU will respond "B" (0x42 hex). 3. Now change the baud rate of your terminal software. 4. Send the ASCII character "a" (61 hex). The DMU will detect the character and automatically match the baud rate your software is using. Upon successful operation, the DMU will return the character "A" (0x41 hex) at the new baud rate. 5. You can now use the DMU at the new baud rate. The new baud rate setting is not permanent; therefore, this process must be repeated after any power reset. Sanity check the Crossbow* Command Query DMU Version, Character(s) Sent v, Response ASCII string* Command Query DMU Serial Number, Character(s) Sent S, Response Binary serial number data packet that consists of a header byte (FF), the serial number in 4 bytes, and a checksum byte. Fixed a bug in checkChecksum. The struct overlay on the record was reading testPacket->Checksum as zero. There were too many castings, so rewrote the routine to operate directly on the char record - BUG FIXED. ##### parosci - Paroscientific pressure sensor devices.cfg change: /dev/ser5 -> /dev/ttyS4 ./parosci -dev /dev/ttyS4 wait 60sec (or so) for 'ping service worksite' to timeout Actions: added parosci.cfg to auv-linux/onboard/sampleConfig from QNX dorado389 fixed termios baud issue (9600 -> B9600), no longer fails cfsetispeed Have obtained manual - parosci is unresponsive to serial commands via minicom Parosci does not respond with the serial number when requested by the driver. Have instrumented the writeCommand and see the correct strings are being sent. Manual indicates commands should start with an asterisk (the request for serial number does not have this). Called Steve Smith at ParoScientific 425-883-8700 x252. He indicated *9900VR should get a response no matter what the device ID. Using minicom (trying both 'Add Linefeed ON and OFF): The device does respond when incorrect command sequences are sent - *(00 will start echoing due to invalid ID. No response to *9900VR No response to *0100SN Write a simple serial program to make sure the correct byte string is sent to parosci. *9900VR<0x0d><0x0a> responds with *0001VR=R1.0 *0100SN<0x0d><0x0a> responds with *0001SN=87761 *0100P3<0x0d><0x0a> responds with *000116.02 Minicom can be used - need to terminate the *0100SN request with <ctrl-j>, (ctrl-m, ctrl-j is 0x0d, 0x0a in minicom) Next step is to hook up the serial protocol analyzer. Made a cable with grab leads, but it's too hard to get the connection. Tom Marion made a breakout cable with the correct 2x5 2mm connectors. Verified commands in the protocol analyzer With the fix in place in readNChars (timeouts and bytecnt are chars not ints), have verified parosci is getting a response to serial number request. Fixed a bug in sscanf which was incorrectly parsing Added retry to fix issue when parosci is left streaming pressure data, the serial number is not read correctly. Fixed math overflow on timeout calculations in SerialDevice.cc (framework). Long / Int changed to Long Long. This fixed some of the timeout problems, however confirm still bails out. A problem in framework 'confirm' API persisted even with fix for timeout overflow. Since time is getting short - capped off investigation of root cause, and wrote readResponse and readAChar routines in framework which fixes the timeout problem (layers of timeout in readUntil, readBytes, etc.) Parosci ran for an hour - data integrity is questionable as pressure data is ranging from negative to positive. Found a problem Protocol Notes:
      tx | rx | pre-conditions | post-conditions
      *SN0100<0x0d><0x0a> | *SN0001=87761<0x0d><0x0a> | 1) powered up 2) streamnig pressure data from previous run | waiting for a command
      *0100EW*0100MD=0<0x0d><0x0a> | *0001MD=0<0x0d><0x0a> |  |
Status Passes basic functional test with exceptions (data processing and serail timeout). See attachment for test results. Fixed bug in baud set Fixed bug in read serial number (sscanf and retries) Fixed timeout bug by replacing 'confirm' in init with readResponse. Later fixed bug in confirm by creating readAChar which uses termios instead of ioctl. Did not back out readResponse changes (they work). Soak test runs overnight. There are some ERRORs due timeout or bad data (dropped bytes?) in the test results, and the driver recovers. Note: Data does not look right (log4cxx = INFO), however the data read from the instrument looks good - suspect something in the signal processing is not properly setup. Fixed struct overlay bug which was causing data error. ##### sonardyne usbl No test executable available ##### ##### tailcone changes in devices.cfg /dev/ser3 -> /dev/ttyS2 ./tailcone -dev /dev/ttyS2 Cautions: Recommend running tailcone tests while observing the tailcone Don't run tailcone for longer than 10 to 15 minutes (there is a spring seal that will wear out / overheat) Status Ran the tailcone gui with Tom O. Driver passes basic functional test. Worked with Tom O to identify 4msec timing skew between runs on Fedora Core 6 updated to 2.6.22 kernel and debian 4.0 (2.6.18) on some tailcone test results. Recommended fix is to update the kernel. ##### Teledyne dvl - Doppler Velocity Log changes in devices.cfg /dev/ser6 -> /dev/ttyS5 Actions Took dvl.cfg from QNX dorado389 (from Rob) and placed the dvl.cfg file in sampleConfig directory Fixed tempios baud problem (cfsetispeed error) with assist from Hans. The problem being chased is readNChars is returning pre-maturely (read of 1466 is returning with 3 to 60 bytes which is causing the driver to fail) Have tried a sleep to allow the termio buffer to fill - does not help. In progress Reading up on termio and analyzing termio setup... Analysis / test is hampered (slowed) by CORBA 1 minute timeout (see corbaUtils) readNChars had a bug in raw where 0 instead of count was passed - TO fixed it, but readNchars is still not working right. Verified that the constructor for TeledyneDVL is passing MaxRecordSize of 7000 Status Done Fixed a bug where the number of bytes was not being set in termios - raw(0,timeout) was changed to raw(count, timeout) Found and fixed another bug where the number of bytes being requested (1466) was being passed to a char field in termios struct resulting in a modulo 256 of 1466 being passed to termios Timeout value of 4000 is also being fed to a char (byte) type in termios structure. Modifying the timeout to 255 has side effects (driver does not work reliablyy, though this could be something else). Changing termios_p.c_cc[VTIME] to 255 when passed something bigger does work. PD0 operation is passing basic functional test, but there is a bug blocking long term runs suspecting UART fifo depth. Hans confirmed and fixed the UART setup using something like auto configure for the serial drivers at startup (Debian install issue). #### Science drivers Status at a glance:
Tasks: ScienceDrivers |
(tm) Seabird CTD (del) (tm) Hydroscat Backscatter (del) Biolume (del) (tm) Lisst (del)
Add Task:
- Status details: Seabird seabirdServer -n ctdDriver2 -dev tcp:sci1-dmo1:10002 ./seabird37 -n ctdDriver2 -dev tcp:sci1-dmo1:10002 seabirdServer -n ctdDriver -dev tcp:sci1-dmo1:10001 Actions: Status In progress... getting an error with seabird25 - 06:16:34.747 ERROR [AttributeParser] Attributes::parse() - Couldn't open CTD attributes file "tcp:sci1-dmo1:10002" Hydroscat - HS2 Backscatter optical sensor tcp:sci2-dmo1:14002 Actions Fixed bug in sscanf on snorm values (%hx -> %1hx). Added 'STOP' to init. Fixed segfault in log write. Fixed segfault when run with terminal server. Status Driver passes basic functional test. Biolume - Biolumenescence pump and PMT tcp:sci3-dmo1:14002 Actions Status Not tested yet lisst - Laser based particle size analyzer tcp:sci3-dmo1:14001 Actions Added 'STOP' to init. debugged and running from Tom's FC6 workstation 6 Mar 08 Status Driver passes basic functional test imagenex Gulper no linux driver currently available (should be a simple 'fire' command) Other (from QNX cfg file) dropWeightServer -dev /dev/ser13 no linux driver currently available OCR507 -dev tcp:sci4-dmo1:14001 isus Optical Nitrate sensor tcp:sci2-dmo1:14001 mvc-pic diagnostic info is being sent on serial port - no driver required (or available) usbl no linux driver currently available. HT indicates not to worry about it. iridium no linux driver currently available. HT indicates this is being replaced with <something> ----------------------------------------------------------------------------------- #### Drivers Debug output (Thoms notes to self): [9 July 2008] Crossbow Table 4. CrossBow AHRS300CA Data Packet Format
  Byte | VG Mode | Scaled Sensor Mode | Voltage Mode
  0 | Header (255) | Header (255) | Header (255)
  1 | Roll Angle (MSB) | Roll Angular Rate (MSB) | Roll Gyro Voltage (MSB)
  2 | Roll Angle (LSB) | Roll Angular Rate (LSB) | Roll Gyro Voltage (LSB)
  3 | Pitch Angle (MSB) | Pitch Angular Rate (MSB) | Pitch Gyro Voltage (MSB)
  4 | Pitch Angle (LSB) | Pitch Angular Rate (LSB) | Pitch Gyro Voltage (LSB)
  5 | Heading Angle (MSB) | Yaw Angular Rate (MSB) | Yaw Gyro Voltage (MSB)
  6 | Heading Angle (LSB) | Yaw Angular Rate (LSB) | Yaw Gyro Voltage (LSB)
  7 | Roll Angular Rate (MSB) | X-Axis Acceleration (MSB) | X-Axis Accel Voltage (MSB)
  8 | Roll Angular Rate (LSB) | X-Axis Acceleration (LSB) | X-Axis Accel Voltage (LSB)
  9 | Pitch Angular Rate (MSB) | Y-Axis Acceleration (MSB) | Y-Axis Accel Voltage (MSB)
  10 | Pitch Angular Rate (LSB) | Y-Axis Acceleration (LSB) | Y-Axis Accel Voltage (LSB)
  11 | Yaw Angular Rate (MSB) | Z-Axis Acceleration (MSB) | Z-Axis Accel Voltage (MSB)
  12 | Yaw Angular Rate (LSB) | Z-Axis Acceleration (LSB) | Z-Axis Accel Voltage (LSB)
  13 | X-Axis Acceleration (MSB) | X-Axis Magnetic Field (MSB) | X-Axis Mag Voltage (MSB)
  14 | X-Axis Acceleration (LSB) | X-Axis Magnetic Field (LSB) | X-Axis Mag Voltage (LSB)
  15 | Y-Axis Acceleration (MSB) | Y-Axis Magnetic Field (MSB) | Y-Axis Mag Voltage (MSB)
  16 | Y-Axis Acceleration (LSB) | Y-Axis Magnetic Field (LSB) | Y-Axis Mag Voltage (LSB)
  17 | Z-Axis Acceleration (MSB) | Z-Axis Magnetic Field (MSB) | Z-Axis Mag Voltage (MSB)
  18 | Z-Axis Acceleration (LSB) | Z-Axis Magnetic Field (LSB) | Z-Axis Mag Voltage (LSB)
  19 | X-Axis Magnetic Field (MSB) | Temp Sensor Voltage (MSB) | Temp Sensor Voltage (MSB)
  20 | X-Axis Magnetic Field (LSB) | Temp Sensor Voltage (LSB) | Temp Sensor Voltage (LSB)
  21 | Y-Axis Magnetic Field (MSB) | Time (MSB) | Time (MSB)
  22 | Y-Axis Magnetic Field (LSB) | Time (LSB) | Time (LSB)
  23 | Z-Axis Magnetic Field (MSB) | Checksum | Checksum
  24 | Z-Axis Magnetic Field (LSB) |  |
  25 | Temp Sensor Voltage (MSB) |  |
  26 | Temp Sensor Voltage (LSB) |  |
  27 | Time (MSB) |  |
  28 | Time (LSB) |  |
  29 | Checksum |  |
- - - [Bug - build] Top level build fails, though enough is built to enable driver development [Bug - blocking] Fixed bug in 'checkChecksum that was blocking processRecord. Due to unpacked data (code is not compiled to pack on byte boundary, pragma pack(1)) struct overly on serial byte stream (testPacket->checksum was zero, yet the proper checksum is in the 'record' byte buf). Changed checkChecksum to operate on byte stream with fixed offset for checksum location. Output looks wrong after fixing checksum problem. Confirmed to be the 'pack' problem. Bug fixed by building the data structure from the bytes, rather than overlaying and byte swapping. Here's the output showing raw data stability but bad data (before bug fix). 13:40:00.467 INFO [Crossbow] Hdr=ff, RolA=035a, PitA=047a, HdgA=1d89 13:40:00.469 INFO [Crossbow] R = 171.58 : P = -167.32 : Y = 7.19 13:40:01.471 INFO [Crossbow] Hdr=ff, RolA=0359, PitA=0472, HdgA=1d86 13:40:01.473 INFO [Crossbow] R = 160.33 : P = -171.54 : Y = 1.57 13:40:02.471 INFO [Crossbow] Hdr=ff, RolA=0358, PitA=0475, HdgA=1d94 13:40:02.473 INFO [Crossbow] R = 164.55 : P = -151.85 : Y = -84.22 13:40:03.476 INFO [Crossbow] Hdr=ff, RolA=0359, PitA=0475, HdgA=1d94 13:40:03.477 INFO [Crossbow] R = 164.55 : P = -151.85 : Y = 5.78 13:40:04.479 INFO [Crossbow] Hdr=ff, RolA=035d, PitA=0475, HdgA=1d89 13:40:04.481 INFO [Crossbow] R = 164.55 : P = -167.32 : Y = -5.47 13:40:05.483 INFO [Crossbow] Hdr=ff, RolA=035c, PitA=0475, HdgA=1d87 13:40:05.485 INFO [Crossbow] R = 164.55 : P = -170.13 : Y = 17.03 13:40:06.488 INFO [Crossbow] Hdr=ff, RolA=035b, PitA=0476, HdgA=1d86 13:40:06.489 INFO [Crossbow] R = 165.95 : P = -171.54 : Y = -5.47 13:40:07.492 INFO [Crossbow] Hdr=ff, RolA=0357, PitA=0477, HdgA=1d93 Here's the data after the bug fix. 14:16:37.203 INFO [Crossbow] Hdr=ff, RolA=035a, PitA=0478, HdgA=1d97 14:16:37.204 INFO [Crossbow] R = 4.71 : P = 6.28 : Y = 41.61 14:16:38.206 INFO [Crossbow] Hdr=ff, RolA=0359, PitA=0479, HdgA=1d96 14:16:38.207 INFO [Crossbow] R = 4.71 : P = 6.29 : Y = 41.61 14:16:39.210 INFO [Crossbow] Hdr=ff, RolA=0356, PitA=0476, HdgA=1d93 14:16:39.211 INFO [Crossbow] R = 4.69 : P = 6.27 : Y = 41.59 14:16:40.214 INFO [Crossbow] Hdr=ff, RolA=0358, PitA=0478, HdgA=1d94 14:16:40.215 INFO [Crossbow] R = 4.70 : P = 6.28 : Y = 41.59 14:16:41.218 INFO [Crossbow] Hdr=ff, RolA=035c, PitA=047a, HdgA=1d94 14:16:41.219 INFO [Crossbow] R = 4.72 : P = 6.30 : Y = 41.59 14:16:42.223 INFO [Crossbow] Hdr=ff, RolA=0356, PitA=0477, HdgA=1d96 14:16:42.223 INFO [Crossbow] R = 4.69 : P = 6.28 : Y = 41.61 14:16:43.227 INFO [Crossbow] Hdr=ff, RolA=035f, PitA=0474, HdgA=1d96 14:16:43.227 INFO [Crossbow] R = 4.74 : P = 6.26 : Y = 41.61 14:16:44.231 INFO [Crossbow] Hdr=ff, RolA=0357, PitA=0473, HdgA=1d96 14:16:44.232 INFO [Crossbow] R = 4.70 : P = 6.26 : Y = 41.61 14:16:45.235 INFO [Crossbow] Hdr=ff, RolA=035c, PitA=0476, HdgA=1d96 14:16:45.235 INFO [Crossbow] R = 4.72 : P = 6.27 : Y = 41.61 14:16:46.239 INFO [Crossbow] Hdr=ff, RolA=0360, PitA=0478, HdgA=1d96 14:16:46.240 INFO [Crossbow] R = 4.75 : P = 6.28 : Y = 41.61 [Bug - minor] Serial number is read incorrectly. NOT FIXED as it does not block tank test on July 17 12:54:51.390 INFO [Crossbow] Serial Number: ff000043 12:54:51.393 INFO [Crossbow] Crossbow.cc: I think the serial number is 4278190147 (ff000043) <<-- 4278190147 looks incorrect. According to the Manual: * The DMU will respond with a serial number datapacket that consists of a header byte (FF), the serial number in 4 bytes, and a checksum byte. The serial number bytes should be interpreted as a 32-bit unsigned integer. For example, the serial number 9911750 would be sent as the four bytes 00 97 3D C6. [Bug - minor] termios set baud failure. Port is operational at 38400, but attempts to set it fail. This will be pushed off until after tank test. 14:56:03.785 ERROR [SerialDevice] cfsetispeed() to baud 38400 failed 14:56:03.785 ERROR [SerialDevice] cfsetospeed() failed [11 July 2008] Parosci on docking AUV [Bug - Blocking with workaround] Bad read of serial number is preventing the driver test from executing. Looks like the Serial number is requested, but the Parosci is busy streaming pressure readings (*000130.13829) 15:05:42.226 DEBUG [ParosciApp] Leaving ParosciApp.initialize() 15:05:42.227 INFO [AuvApplication] run() - just sleeps by default 15:05:42.341 DEBUG [Parosci] writeCommand *0100SN 15:05:42.358 DEBUG [Parosci] Serial Number response: *000130.13829 15:05:42.358 ERROR [Parosci] sscanf ret 0, incorrect serial number format 15:05:42.360 ERROR [AuvService] Read incorrect serial number format Went into minicom and got the parosci to stop streaming (actually, just opening minicom showed a series of pressure readings with the last output being the serial number). Maybe a flush in the right place is needed. Ran the test again, starting with a 'non-streaming' parosci. 15:15:58.779 INFO [Parosci] Paroscientific configured. 15:15:58.850 DEBUG [StreamSerialDriver] run() - start main loop 15:15:58.851 DEBUG [StreamSerialDriver] StreamSerialDriver::run() - call readRecord() 15:15:58.985 DEBUG [Parosci] reply with value is 30.13823^M 15:15:58.986 INFO [Parosci] depth is: 1146999941 Changed format character for depth from int to float 15:50:02.429 DEBUG [Parosci] reply with value is 30.13807 15:50:02.430 INFO [Parosci] depth is: -0.1513 15:50:02.431 DEBUG [Parosci] 1 bytes buffered now 15:50:02.434 DEBUG [StreamSerialDriver] StreamSerialDriver::run() - call readRecord() 15:50:02.610 DEBUG [Parosci] reply with value is 30.13807 15:50:02.611 INFO [Parosci] depth is: -0.1513 15:50:02.611 DEBUG [Parosci] 1 bytes buffered now 15:50:02.614 DEBUG [StreamSerialDriver] StreamSerialDriver::run() - call readRecord() 15:50:02.790 DEBUG [Parosci] reply with value is 30.13807 15:50:02.790 INFO [Parosci] depth is: -0.1513 15:50:02.791 DEBUG [Parosci] 1 bytes buffered now 15:50:02.794 DEBUG [StreamSerialDriver] StreamSerialDriver::run() - call readRecord() 15:50:02.969 DEBUG [Parosci] reply with value is 30.13807 15:50:02.970 INFO [Parosci] depth is: -0.1513 15:50:02.971 DEBUG [Parosci] 1 bytes buffered now 15:50:02.974 DEBUG [StreamSerialDriver] StreamSerialDriver::run() - call readRecord() 15:50:03.153 DEBUG [Parosci] reply with value is 30.13807 15:50:03.155 INFO [Parosci] depth is: -0.1513 15:50:03.155 DEBUG [Parosci] 1 bytes buffered now 15:50:03.158 DEBUG [StreamSerialDriver] StreamSerialDriver::run() - call readRecord() 15:50:03.244 DEBUG [Parosci] getting temp period 15:50:03.356 DEBUG [Parosci] writeCommand *0100Q1 15:50:03.484 DEBUG [Parosci] writeCommand *0100Q1 15:50:03.593 DEBUG [Parosci] reply with value is 5.840225 15:50:03.704 DEBUG [Parosci] writeCommand *0100P2 15:50:03.719 INFO [Parosci] tempPeriod is: -247390116 15:50:03.720 DEBUG [Parosci] 0 bytes buffered now 15:50:03.723 DEBUG [StreamSerialDriver] StreamSerialDriver::run() - call readRecord() 15:50:03.925 DEBUG [Parosci] reply with value is 30.13809 15:50:03.926 INFO [Parosci] depth is: -0.1744 15:50:03.927 DEBUG [Parosci] 1 bytes buffered now 15:50:03.930 DEBUG [StreamSerialDriver] StreamSerialDriver::run() - call readRecord() 15:50:04.105 DEBUG [Parosci] reply with value is 30.13807 15:50:04.107 INFO [Parosci] depth is: -0.1513 15:50:04.107 DEBUG [Parosci] 1 bytes buffered now 15:50:04.110 DEBUG [StreamSerialDriver] StreamSerialDriver::run() - call readRecord() 15:50:04.285 DEBUG [Parosci] reply with value is 30.13809 15:50:04.286 INFO [Parosci] depth is: -0.1744 15:50:04.287 DEBUG [Parosci] 1 bytes buffered now Hydroscatauv@mvc-debian:~/prj/auv-linux/onboard/devices/hydroscat$ ./hydroscat -dev tcp: sci2-dmo1:14002 Output on March 10: auv@mvc-debian4:~/prj/auv-linux/onboard/devices/hydroscat$ . run Reading log4cxx configuration file "/home/auv/prj/auv-linux/onboard/sampleConfig /log4cxx.cfg" IOR:010000001800000049444c3a6175762f487964726f7363617449463a312e3000010000000000 000064000000010102000d0000003133342e38392e33322e313600004f040e000000fe9154d54700 002ea7000000000200000200000000000000080000000100000000545441010000001c0000000100 0000010001000100000001000105090101000100000009010100 08:32:33.657 INFO [Hydroscat] stopping Hydroscat... 08:32:33.712 INFO [AuvApplication] You should override AuvApplication::run() 08:32:38.180 ERROR [Hydroscat] Hydroscat:bad response to LOG cmd: !Use SHUTTER c ommand to enable shutter. 08:32:38.181 INFO [Hydroscat] stopping Hydroscat... 08:32:42.702 INFO [Hydroscat] Hydroscat:starting Hydroscat... 08:32:42.703 INFO [Hydroscat] Hydroscat:started 08:32:42.755 ERROR [Hydroscat] processRecord(): record too short(42): ' Burst cycle: 0 minutes (not in effect) 08:32:42.762 ERROR [Hydroscat] processRecord(): record too short(43): ' Total duration: 0 hours (not in effect) 08:32:42.768 ERROR [Hydroscat] processRecord(): record too short(19): 'Shutter control: 08:32:42.774 ERROR [Hydroscat] processRecord(): record too short(33): ' Shutter enabled: 0 (DISABLED) 08:32:42.780 ERROR [Hydroscat] processRecord(): record too short(27): ' Automatic open/close: 0 08:32:42.786 ERROR [Hydroscat] processRecord(): record too short(27): ' Open/close time: 6 secs 08:32:42.792 ERROR [Hydroscat] processRecord(): record too short(22): ' Open direction: CW 08:32:42.798 ERROR [Hydroscat] processRecord(): record too short(28): ' Shutter state is UNKNOWN 08:32:42.804 ERROR [Hydroscat] processRecord(): record too short(20): 'Sampling stopped. 08:32:42.810 ERROR [Hydroscat] processRecord(): record too short(22): '03/10/2008 08:32:38 08:32:42.816 ERROR [Hydroscat] processRecord(): record too short(38): 'Time Resolution: high (0.01 second) 08:32:42.822 ERROR [Hydroscat] processRecord(): record too short(41): !Use SHUTTER command to enable shutter. 08:32:42.828 ERROR [Hydroscat] processRecord(): record too short(24): 'Sampling and Logging: 08:32:42.834 ERROR [Hydroscat] processRecord(): record too short(24): ' Period: 0.25 seconds 08:32:42.839 ERROR [Hydroscat] processRecord(): record too short(26): ' Start delay: 3 seconds 08:32:42.846 ERROR [Hydroscat] processRecord(): record too short(29): ' Sleep when memory full: 0 08:32:42.851 ERROR [Hydroscat] processRecord(): record too short(24): ' Start on power up: 0 08:32:42.857 ERROR [Hydroscat] processRecord(): record too short(23): 'Burst mode: 0 . 08:32:42.863 ERROR [Hydroscat] processRecord(): record too short(26): ' Warmup time: 0 seconds 08:32:42.869 ERROR [Hydroscat] processRecord(): record too short(45): ' Burst duration: 0 seconds (not in effect) 08:32:42.875 ERROR [Hydroscat] processRecord(): record too short(42): ' Burst cycle: 0 minutes (not in effect) 08:32:42.881 ERROR [Hydroscat] processRecord(): record too short(43): ' Total duration: 0 hours (not in effect) 08:32:42.887 ERROR [Hydroscat] processRecord(): record too short(19): 'Shutter control: 08:32:42.893 ERROR [Hydroscat] processRecord(): record too short(33): ' Shutter enabled: 0 (DISABLED) 08:32:42.898 ERROR [Hydroscat] processRecord(): record too short(27): ' Automatic open/close: 0 08:32:42.904 ERROR [Hydroscat] processRecord(): record too short(27): ' Open/close time: 6 secs 08:32:42.910 ERROR [Hydroscat] processRecord(): record too short(22): ' Open direction: CW 08:32:42.916 ERROR [Hydroscat] processRecord(): record too short(28): ' Shutter state is UNKNOWN The driver then processes records normally without fault (tested for 20 minutes) Ashtec GPS driver Upon application of power, The DG16 runs a built-in self test of its internal memory, and thereafter periodically self-tests various functions during normal operation. Test results are stored for output on command. After self test, the DG16 initializes its battery-backed RAM. If the battery-backed RAM fails self-test (due, for example, to a low battery backup condition), the DG16 clears and reports the loss of stored data, then initializes its channels and begins searching for all satellites within the field of view of its antenna. $PASHQ,HST to view results of self-diagnostic Time to First Fix (TTFF). Re-acquisition 3 seconds Hot Start 11 seconds Warm Start 35 seconds Cold Start 90 seconds The $PASHQ,RIO command queries for the receiver's configuration. The response message includes version numbers for the processor and channel firmware, a list of installed options, and the receiver's serial identification number. The response is output in the format:$PASHR,RIO,f1,f2,f3,f4,f5*cc* f1 Receiver name (maximum 10 characters) f2 Main processor firmware version (maximum 10 characters) f3 Channel Firmware version (maximum 10 characters). If not applicable, this field is empty f4 Option setting (maximum 42 characters). ASCII characters represent installed options. f5 Receiver serial number (maximum 20 characters). Underscores represent blank fields cc Checksum. XOR (exclusive or) of all characters between, but not including, the dollar sign ($) and asterisk characters Option Description: (typical string looks like $PASHR,RIO,DG16,GM00,,1OPUBKLE_C-NYXDR--, 710029150420*4D * Position/raw update rate: [W = 20 Hz], [T = 10 Hz], [5 = 5 Hz], [2 = 2 Hz], [1 = 1 Hz], [O] Raw data output [P] Carrier phase tracking [U] Differential RTCM - remote station [B] Differential RTCM - base station [K] RTCM Type 18/19 message generation (available only with RTCM base option) [L] Timing pulse output (1PPS) [E] Photogrammetry event marker [C] Strobe correlator [N] Beacon (Not applicable to DG14) [Y] SBAS [X] User-defined messaging (Not applicable to DG14) [D] Multi-base differential [R] Third serial port (C) (Not applicable to DG14) [A] Altitude limit removed [V] Speed limit removed After the DG16 is powered and running, you must send commands in order to receive data (such as antenna position). When using a terminal, make sure CRLF outgoing is enabled The commands used with the DG16 are divided into two groups: set commands and query commands. Use Set commands to change the DG16's operating parameters or turn on or off output messages. Set commands begin with the command string $PASHS. A Set cmd is acknowledged with $PASHR,ACK*3D. Use Query commands to request information from the DG16, such as the current operating parameters, current position, or DGPS status. Query commands begin with the command string $PASHQ. $PASHQ,STA (crlf) to query which satellites are locked and signal strength. TIME: 18:38:31 UTC LOCKED:03 23 16 COUNT :54 26 17 NMEA 0183 ASCII byte strings following a dollar sign ($) character Data fields are separated by commas, Checksum character delimiter and NMEA checksum bytes are recognized by the DG16 but are optional. The hexadecimal checksum is computed by exclusive OR-ing all of the bytes in the message between, but not including, the dollar sign ($) and the asterisk . Messages end with the standard NMEA message terminator characters [CRLF]. $PASHS,NME,POS,A,ON,1 comprehensive position information through port A at a set rate (1HZ) $PASHR,POS,0,08,164152.90,3721.06962,N,12156.12176,W,+00003.16,????,008.64,000.55,+000.03,01.7,01.0,01.4,00.9,GH00*20 $GPGGA,174807.00,,,,,0,00,,,M,,M,,*45
      Parm | Description | Range (FUL/STD) | Example
      --- | --- | --- | ---
      m1 | UTC time (hhmmss.s) of the position fix | 0 to 235959.99 | 174807.00,
      m2 | Latitude of the position fix (ddmm.mmmmm) | 0 to 9000.00000 | ,
      c3 | Latitude sector | N or S | ,
      m4 | Longitude of the position fix (dddmm.mmmmm) | 0 to 18000.00000 | ,
      c5 | Longitude sector | E or W | ,
      d6 | GPS quality indicator • 0---Invalid position or position not available • 1---GPS Standard Positioning Service (SPS) mode (C/A code), fix valid • 2---Differential GPS, SPS mode, fix valid • 3---GPS Precise Positioning Service (PPS) mode (P-code). N/A for DG16 • 4---Real Time Kinematic. System used in RTK mode with fixed integers. N/A for DG16 • 5---Float RTK. Satellite system used in RTK mode, floating integers. N/A for DG16 • 6---Estimated (dead reckoning) mode • 7---Manual input mode • 8---Simulator mode | 0, 1, 2, 6, 7, or 8 | 0,
      d7 | Number of satellites used in position computation | 3 to 14 | 00,
      d8 | HDOP (horizontal dilution of precision) | 00.0 to 99.9 | ,
      f9 | Altitude above Mean Sea Level (geoidal height) | -1000.00 to 18000.00 | ,
      c10 | Altitude unit of measure (always M) | M | M,
      d11 | Geoidal separation value | -999.99 to 999.99 | ,
      c12 | Geoidal separation unit of measure (always M) | M | M,
      d13 | Age of differential corrections (seconds) | 0 to 999.999 | ,
      d14 | Differential base station ID number | 0 to 1023 | ,*
      hh | Checksum | 2-character hex | 45
AshtecApp Test results ./ashtechapp -dev /dev/ttyS7 08:48:27.572 INFO [AuvApplication] You should override AuvApplication::run() 08:48:27.604 WARN [GpsUtils] Not a GGA sentence: S,NME,ALL,A,OFF 08:48:27.627 WARN [GpsUtils] Not a GGA sentence: $PASHS,NME,GGA,A,ON 08:48:48.432 ERROR [SerialDriver] gpsDriver::readRecord() - serial device timed out 08:48:48.436 ERROR [StreamSerialDriver] run() - Got error from readRecord() ./ashtechapp -dev /dev/ttyS6 minicom session $GPGGA,174807.00,,,,,0,00,,,M,,M,,*45 $GPGGA,215157.00,,,,,0,00,,,M,,M,,*4D BluefinBatt ./bluefinBatt -n 3 -dev /dev/ttyS9 Reading log4cxx configuration file "/home/auv/prj/auv-linux/onboard/sampleConfig /log4cxx.cfg" 16:14:15.082 WARN [BluefinBattApp] Using fake values: nBatteries=1, abortVoltage =9, terminateVoltage=5 16:14:15.090 INFO [BluefinBatt] BluefineBatt::init() - 1 batteries on 10 second interval 16:14:15.092 ERROR [SerialDevice] cfsetispeed() to baud 9600 failed 16:14:15.094 ERROR [SerialDevice] cfsetospeed() failed 16:14:15.099 INFO [BluefinBatt] BluefinBatt::init() - querying for batt ids 16:14:15.103 INFO [BluefinBatt] BluefinBatt::init() - battery echo is !? Crossbow (gyro compass) auv@mvc-debian4:~/prj/auv-linux/onboard/devices/crossbow$ ./crossbow -dev /dev/ttyS11 Reading log4cxx configuration file "/home/auv/prj/auv-linux/onboard/sampleConfig/log4cxx.cfg" 16:12:05.748 ERROR [AttributeParser] Attributes::parse() - Couldn't open Crossbow Constants attributes file "/home/auv/prj/auv-linux/onboard/sampleConfig/crossbo w.cfg" 16:12:05.754 ERROR [Crossbow] VehicleConstants -- Caught exception while loading vehicle constants IOR:010000001300000049444c3a6175762f4168727349463a312e30000001000000000000006400 0000010102000d0000003133342e38392e33322e313600000d0a0e000000fe45c0d5470000329100 0000000200000200000000000000080000000100000000545441010000001c000000010000000100 01000100000001000105090101000100000009010100 16:12:05.788 INFO [AuvApplication] You should override AuvApplication::run() 16:12:05.790 ERROR [SerialDevice] cfsetispeed() to baud 38400 failed 16:12:05.792 ERROR [SerialDevice] cfsetospeed() failed 16:12:05.794 ERROR [SerialDevice] _F_SETFL failed 16:12:05.797 ERROR [SerialDevice] _F_SETFL failed AuvSystem::milliSleep -- Sleeping for 0 secs and 1000000000 nsec16:12:05.807 INF O [Crossbow] Crossbow.cc: device->read succeeded 16:12:05.809 INFO [Crossbow] Crossbow.cc: I think the serial number is 427819033 5 (ff0000ff) 16:12:05.819 ERROR [Crossbow] processRecord(): Checksum does not agree 16:12:06.830 ERROR [Crossbow] processRecord(): Checksum does not agree 16:12:07.834 ERROR [Crossbow] processRecord(): Checksum does not agree seabird ./seabird37 -n ctdDriver2 -dev tcp:sci1-dmo1:10001 06:21:16.646 DEBUG [SerialDevice] printTermios() - not implemented for socket 06:21:16.648 DEBUG [SerialDevice] (null): wrote 5 chars: STOP 06:21:16.651 DEBUG [CorbaUtils] call nameService->bind_new_context() for CTD 06:21:16.661 DEBUG [CorbaUtils] context already bound 06:21:16.665 DEBUG [CorbaUtils] call bind() for CTD 06:21:16.675 DEBUG [CorbaUtils] invoke prepareToRun() 06:21:16.677 DEBUG [CorbaUtils] Activate POA manager 06:21:16.679 DEBUG [CorbaUtils] Run the ORB in a new thread 06:21:16.681 DEBUG [CorbaUtils] return from registerService() 06:21:16.684 DEBUG [Seabird37App] Leaving Seabird37App.initialize() 06:21:16.686 INFO [AuvApplication] You should override AuvApplication::run() 06:21:17.655 DEBUG [SerialDevice] (null): wrote 1 chars: 06:21:17.657 DEBUG [SerialDevice] readUntil: term = S> 06:21:17.660 DEBUG [SerialDevice] readUntil: read ? 06:21:17.662 DEBUG [SerialDevice] SerialDevice::confirm() - Timed Out 06:21:17.664 DEBUG [SerialDevice] (null): wrote 5 chars: STOP 06:21:18.671 DEBUG [SerialDevice] (null): wrote 1 chars: 06:21:18.673 DEBUG [SerialDevice] readUntil: term = S> 06:21:18.675 DEBUG [SerialDevice] readUntil: read ? 06:21:18.677 DEBUG [SerialDevice] SerialDevice::confirm() - Timed Out 06:21:18.679 DEBUG [SerialDevice] (null): wrote 5 chars: STOP 06:21:19.683 DEBUG [SerialDevice] (null): wrote 1 chars: 06:21:19.685 DEBUG [SerialDevice] readUntil: term = S> 06:21:19.687 DEBUG [SerialDevice] readUntil: read ? 06:21:19.689 DEBUG [SerialDevice] SerialDevice::confirm() - Timed Out 06:21:19.691 DEBUG [SerialDevice] (null): wrote 5 chars: STOP 06:21:20.695 DEBUG [SerialDevice] (null): wrote 1 chars: 06:21:20.697 DEBUG [SerialDevice] readUntil: term = S> 06:21:20.699 DEBUG [SerialDevice] readUntil: read ? 06:21:20.701 DEBUG [SerialDevice] SerialDevice::confirm() - Timed Out 06:21:20.703 DEBUG [SerialDevice] (null): wrote 5 chars: STOP 06:21:21.707 DEBUG [SerialDevice] (null): wrote 1 chars: 06:21:21.709 DEBUG [SerialDevice] readUntil: term = S> 06:21:21.711 DEBUG [SerialDevice] readUntil: read ? 06:21:21.713 DEBUG [SerialDevice] SerialDevice::confirm() - Timed Out 06:21:21.715 DEBUG [SerialDevice] (null): wrote 1 chars: 06:21:21.717 DEBUG [SerialDevice] readUntil: term = S> 06:21:21.719 DEBUG [SerialDevice] readUntil: read ? 06:21:21.721 DEBUG [SerialDevice] SerialDevice::confirm() - Timed Out 06:21:21.723 DEBUG [SerialDevice] (null): wrote 5 chars: STOP 06:21:21.725 DEBUG [SerialDevice] (null): wrote 1 chars: 06:21:21.727 DEBUG [SerialDevice] readUntil: term = S> 06:21:21.729 DEBUG [SerialDevice] readUntil: read P 06:21:21.731 DEBUG [SerialDevice] SerialDevice::confirm() - Timed Out 06:21:21.733 DEBUG [Seabird37] setLineFormat 06:21:21.735 DEBUG [SerialDevice] printTermios() - not implemented for socket 06:21:21.737 DEBUG [SerialDevice] (null): wrote 5 chars: STOP 06:21:22.743 DEBUG [SerialDevice] (null): wrote 1 chars: 06:21:22.745 DEBUG [SerialDevice] readUntil: term = S> 06:21:22.747 DEBUG [SerialDevice] readUntil: read 06:21:22.749 DEBUG [SerialDevice] SerialDevice::confirm() - Timed Out 06:21:22.751 DEBUG [SerialDevice] (null): wrote 5 chars: STOP 06:21:23.755 DEBUG [SerialDevice] (null): wrote 1 chars: 06:21:23.757 DEBUG [SerialDevice] readUntil: term = S> 06:21:23.759 DEBUG [SerialDevice] readUntil: read 06:21:23.761 DEBUG [SerialDevice] SerialDevice::confirm() - Timed Out 06:21:23.763 DEBUG [SerialDevice] (null): wrote 5 chars: STOP 06:21:24.767 DEBUG [SerialDevice] (null): wrote 1 chars: 06:21:24.769 DEBUG [SerialDevice] readUntil: term = S> 06:21:24.771 DEBUG [SerialDevice] readUntil: read 06:21:24.773 DEBUG [SerialDevice] SerialDevice::confirm() - Timed Out 06:21:24.775 DEBUG [SerialDevice] (null): wrote 5 chars: STOP 06:21:25.779 DEBUG [SerialDevice] (null): wrote 1 chars: 06:21:25.781 DEBUG [SerialDevice] readUntil: term = S> 06:21:25.783 DEBUG [SerialDevice] readUntil: read 06:21:25.785 DEBUG [SerialDevice] SerialDevice::confirm() - Timed Out 06:21:25.787 DEBUG [SerialDevice] (null): wrote 5 chars: STOP 06:21:26.791 DEBUG [SerialDevice] (null): wrote 1 chars: 06:21:26.793 DEBUG [SerialDevice] readUntil: term = S> 06:21:26.795 DEBUG [SerialDevice] readUntil: read 06:21:26.797 DEBUG [SerialDevice] SerialDevice::confirm() - Timed Out 06:21:26.799 DEBUG [SerialDevice] (null): wrote 1 chars: 06:21:26.801 DEBUG [SerialDevice] readUntil: term = S> 06:21:26.803 DEBUG [SerialDevice] readUntil: read 06:21:26.805 DEBUG [SerialDevice] SerialDevice::confirm() - Timed Out 06:21:26.807 DEBUG [SerialDevice] (null): wrote 5 chars: STOP 06:21:26.809 DEBUG [SerialDevice] (null): wrote 1 chars: 06:21:26.811 DEBUG [SerialDevice] readUntil: term = S> 06:21:26.813 DEBUG [SerialDevice] readUntil: read S 06:21:26.816 DEBUG [SerialDevice] SerialDevice::confirm() - Timed Out 06:21:26.817 DEBUG [SerialDriver] setState() - newState = 3 06:21:26.819 DEBUG [EventProvider] publish() - publisher=CTD, type=NewState 06:21:26.821 DEBUG [EventProvider] publish() - proxy->push_structured_event 06:21:26.827 DEBUG [EventProvider] EventProvider::publish() - event pushed 06:21:26.829 DEBUG [EventProvider] publish() - return 06:21:26.831 ERROR [AuvService] CTD::initialize() failed after 2 tries parosci pressure sensor ./parosci 06:39:37.270 DEBUG [SerialDevice] Current ispeed setting: 13 06:39:37.271 DEBUG [SerialDevice] Current ospeed setting: 13 06:39:37.273 DEBUG [SerialDevice] change to speed setting 9600 06:39:37.275 ERROR [SerialDevice] cfsetispeed() to baud 9600 failed 06:39:37.277 ERROR [SerialDevice] cfsetospeed() failed 06:39:37.279 DEBUG [SerialDevice] New ispeed setting: 13 06:39:37.281 DEBUG [SerialDevice] New ospeed setting: 13 06:39:37.282 DEBUG [SerialDevice] SerialDevice: done... 06:39:37.404 ERROR [Parosci] Failed to read serial number 06:39:37.407 ERROR [AuvService] Failed to read serial numbre teledyne - dvl ./teledyne -dev /dev/ttyS5 ...Timed out while looking for "workSite" service 13:32:31.476 INFO [AuvApplication] You should override AuvApplication::run() 13:32:31.730 ERROR [TeledyneDvl] wakeupDvl: Failed to establish comms with DVL 13:32:32.034 ERROR [TeledyneDvl] wakeupDvl: Failed to establish comms with DVL 13:32:32.886 INFO [TeledyneDvl] [BREAK Wakeup A] Navigator Broadband ADCP Version 9.18 RD Instruments (c) 1996-2004 All Rights Reserved. > 13:32:32.913 INFO [TeledyneDvl] PD0 > 13:32:32.926 INFO [TeledyneDvl] BK1 > 13:32:32.945 INFO [TeledyneDvl] TP00:00.33 > 13:32:32.966 INFO [TeledyneDvl] TE00:00:0.00 > 13:32:32.990 INFO [TeledyneDvl] BL,10,010,100 > 13:32:33.006 INFO [TeledyneDvl] BP001 > 13:32:33.026 INFO [TeledyneDvl] CF11010 > 13:32:33.040 INFO [TeledyneDvl] CB611 > Baud index = 6. 13:32:33.041 INFO [TeledyneDvl] initialize - Baud rate set to 15. 13:32:33.054 INFO [TeledyneDvl] EX10011 > 13:32:33.072 INFO [TeledyneDvl] EA+04500 > 13:32:33.084 INFO [TeledyneDvl] WP0001 > 13:32:33.094 INFO [TeledyneDvl] WN25 > 13:32:33.094 INFO [TeledyneDvl] initialize - The number of cells is 25. 13:32:33.102 INFO [TeledyneDvl] WV210 > 13:32:33.103 INFO [TeledyneDvl] initialize - 14 valid commands read in from dvl. cfg. 13:32:33.113 INFO [TeledyneDvl] EC1490 > 13:32:33.119 INFO [TeledyneDvl] A good DVL record in PD0 format (1466 bytes) looks like 7F7FDB02000714004F0088005201B8011E028402000009124A42002C041901009001B00001400B00 E80300003C13941100007D1D5A029E010105320026004D00000248B1150900000000000000000080 007E0008040A04193A1000000003060000AA2C27FFB9002300790A000007000000FFFF4DFFFF468 19F04C10088000000000000000000000000010A0031004400008000800080008000800080008000800 08000800080008000800080008000800080008000800080008000800080008000800080008000800080 00800080008000800080008000800080008000800080008000800080008000800080008000800080008 00080008000800080008000800080008000800080008000800080008000800080008000800080008000 80008000800080008000800080008000800080008000800080008000800080008000800080008000800 080008000800080008000800002485252305F6823264F551F0C25270E0814180D05120D050A090C06 0E0C0A03090A09071302090D0402080908080D0B0407080C070A0406060C08030A0A0A0A0603090 306060C060C040705070C0E060A0906070A0C0B0805070708070A07060D0708060D0003483F45393 5362E2D2D2D2B2B2A29292A2827272A2826272A2726282A2625292B2624282B2625282B2624292B 2625262A2625282B2625282A2624262B2624272B2625272B2625262B2624282B2625292A2625282B 2625272B2625272B2625282B2625282B00046400000000006400000064000000640000006400000064 00000064000000640000006400000064000000640000006400000064000000640000006400000064000 00064000000640000006400000064000000640000006400000064000000640000006400000601000000 DC1E0005E80300000000000000000000000000800080008000800000000000000000000064000A000A 0064000700D6002700AA00C0CA88850000000000000064C40900000000000000000001000100C03A6D74 CrossBow Output auv@mvc-debian4:~/prj/auv-linux/onboard/devices/crossbow$ . run Reading log4cxx configuration file "/home/auv/prj/auv-linux/onboard/sampleConfig/log4cxx.cfg" 14:56:03.622 DEBUG [CorbaUtils] get ORB: 14:56:03.642 DEBUG [CorbaUtils] get POA: 14:56:03.664 DEBUG [CorbaUtils] Looking for event channel "EventChannel" in name service: 14:56:03.669 DEBUG [CorbaUtils] Found event channel "EventChannel" 14:56:03.675 DEBUG [CorbaUtils] Create provider servant 14:56:03.693 DEBUG [CorbaUtils] Create consumer servant 14:56:03.701 DEBUG [parseComplex] isIdentifier -- I've been asked to test the word crossbowPeriod 14:56:03.701 DEBUG [parseComplex] isIdentifier -- I've been asked to test the word 100 14:56:03.702 DEBUG [parseComplex] Parsing attribute crossbowPeriod = 100 14:56:03.703 DEBUG [parseComplex] No current item .. using the provided attributes CrossbowConstants 14:56:03.704 DEBUG [Attributes] Attributes::parse() - size=3 14:56:03.705 DEBUG [Attributes] Attributes::parse() - compare attribute name crossbowPeriod to input name crossbowPeriod 14:56:03.706 DEBUG [Attributes] Attributes::parse() -- Found value for crossbowPeriod 14:56:03.706 DEBUG [Attributes] Attributes::parse() -- crossbowPeriod is set 14:56:03.708 DEBUG [Attributes] Attribute crossbowPeriod is hasDefault = true, isSet = true 14:56:03.708 DEBUG [Attributes] Attribute debug is hasDefault = true, isSet = false 14:56:03.709 DEBUG [Attributes] Attribute dumpHex is hasDefault = true, isSet = false 14:56:03.710 DEBUG [Attributes] Attributes::verify() -- Attribute set CrossbowConstants is done 14:56:03.730 DEBUG [CrossbowApp] Launch instrument driver thread IOR:010000001300000049444c3a6175762f4168727349463a312e300000010000000000000064000000010102000d0000003133342e38392e33322e31360000750e0e000000fef3d6774800001553000000000200000200000000000000080000000100000000545441010000001c00000001000000010001000100000001000105090101000100000009010100 14:56:03.734 DEBUG [CorbaUtils] Ahrs already active... 14:56:03.737 DEBUG [CorbaUtils] call nameService->bind_new_context() for Ahrs 14:56:03.746 DEBUG [CorbaUtils] context already bound 14:56:03.749 DEBUG [CorbaUtils] call bind() for Ahrs 14:56:03.759 DEBUG [CorbaUtils] call rebind() for Ahrs 14:56:03.763 DEBUG [CorbaUtils] invoke prepareToRun() 14:56:03.764 DEBUG [CorbaUtils] Activate POA manager 14:56:03.765 DEBUG [CorbaUtils] Run the ORB in a new thread 14:56:03.766 DEBUG [CorbaUtils] return from registerService() 14:56:03.767 DEBUG [CrossbowApp] Leaving CrossbowApp.initialize() 14:56:03.781 INFO [AuvApplication] run() - just sleeps by default 14:56:03.768 DEBUG [Crossbow] Crossbow::initialize : Initializing Crossbow driver 14:56:03.785 ERROR [SerialDevice] cfsetispeed() to baud 38400 failed 14:56:03.785 ERROR [SerialDevice] cfsetospeed() failed 14:56:03.786 DEBUG [Crossbow] Crossbow.cc: Setting polled mode 14:56:03.789 DEBUG [Crossbow] Crossbow::initialize : ...done! 14:56:03.789 DEBUG [Crossbow] Crossbow.cc: Setting polled mode 14:56:03.790 DEBUG [Crossbow] Crossbow.cc: In getSerialNumber() AuvSystem::milliSleep -- Sleeping for 0 secs and 1000000000 nsec14:56:03.816 INFO [Crossbow] Crossbow.cc: device->read succeeded 14:56:03.818 INFO [Crossbow] Crossbow.cc: The serial number is 4278190147 (ff000043) 14:56:03.821 DEBUG [Crossbow] Crossbow.cc: Setting polled mode 14:56:03.860 DEBUG [Crossbow] R = 4.71 : P = 6.26 : Y = 43.16 14:56:04.852 DEBUG [Crossbow] R = 4.72 : P = 6.28 : Y = 43.13 14:56:05.856 DEBUG [Crossbow] R = 4.71 : P = 6.26 : Y = 43.12 14:56:06.860 DEBUG [Crossbow] R = 4.70 : P = 6.27 : Y = 43.11 14:56:07.864 DEBUG [Crossbow] R = 4.73 : P = 6.27 : Y = 43.12 14:56:08.868 DEBUG [Crossbow] R = 4.71 : P = 6.25 : Y = 43.21 14:56:09.872 DEBUG [Crossbow] R = 4.71 : P = 6.28 : Y = 43.19 14:56:10.876 DEBUG [Crossbow] R = 4.69 : P = 6.28 : Y = 43.13 14:56:11.880 DEBUG [Crossbow] R = 4.72 : P = 6.29 : Y = 43.11 14:56:12.884 DEBUG [Crossbow] R = 4.70 : P = 6.26 : Y = 43.11 14:56:13.888 DEBUG [Crossbow] R = 4.70 : P = 6.26 : Y = 43.10 14:56:14.893 DEBUG [Crossbow] R = 4.72 : P = 6.28 : Y = 43.23 14:56:15.896 DEBUG [Crossbow] R = 4.69 : P = 6.27 : Y = 43.17 ##### mvc-debian4 install debian 4.0 - root password is dorado1, auv user password is dorado1. hostname is mvc-debian4 [root] install (aptitude and apt-get) the debian packages needed for auv-pkgs [root] cvs checkout auv-pkgs, build and install each using the supplied '*.bat" scripts [auv] cvs checkout auv-shared and build (make in top dir) [auv] cvs checkout auv-linux, comment out the lines with javac (112) and idlj (135) in onboard/taskIF/Makefile, in onboard 'make all' misc tar cvzf foo.tgz cps100 Attachments: AHRS300CAManual.pdf (application/pdf)

Document generated by Confluence on Feb 04, 2026 08:05