Training, Open Source computer languages
PerlPHPPythonMySQLApache / TomcatTclRubyJavaC and C++LinuxCSS 
Search for:
Home Accessibility Courses Diary The Mouth Forum Resources Site Map About Us Contact
Bizzare serial port output

Posted by neilvp (neilvp), 23 March 2007
Can anyone shed any light on what is going on here?

I am writing a script to control a piece of test equipment via
the serial port (COM1) on a Windoze machine under XP, running
ActiveState 8.4.13.0.

One of the commands didn't work - this command included the value 0x8B
and in trying to figure out why I wrote the following test
code that generates a count of 0-255 and outputs each byte to
the serial port.

The serial port is being monitored by a utility within the PC the
captured output of which is shown below.

If I use the supplied demo (compiled C) code to control the
instrument then the offending command works and is correctly
shown in the serial port utility. (Therefore the problem is not a quirk of the monitoring utility)

If one takes a look at the values between 0x82 and 0x9F the
majority of them are 0x3F !
The same happens under wish or tclsh.

The code...

set serial_port [open com1: RDWR]
fconfigure $serial_port -mode 9600,n,8,1 -handshake none

# Generate a 0-255 count, convert to its single byte hex value,
# place into the TxQueue on Com1 and then flush the lot

   set loop 0
   
   while {$loop < 256} \
   {
       puts -nonewline $serial_port [binary format c $loop]
       incr loop
   }
   flush $serial_port

close $serial_port


The results...

00 01 02 03 04 05 06 07 08 09 0D 0A 0B 0C 0D 0E
0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E
1F 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E
2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E
3F 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E
4F 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E
5F 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E
6F 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E
7F 3F 81 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 8D 3F
8F 90 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 9D 3F
3F A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE
AF B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE
BF C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE
CF D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE
DF E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE
EF F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE
FF                                              


Any suggestions as to what is going on and more importantly
how to fix it would be much appreciated.

Regards

Neil


Posted by neilvp (neilvp), 23 March 2007
Doh!

That will teach me not to cut and paste without thinking about it.  

fconfigure -translation binary

is the answer.

Puzzled as to why it only shows around 0x8? & 0x9? though.

Posted by admin (Graham Ellis), 24 March 2007
Perhaps because they're the control codes but with the extra bits set?  The codes that really shouldn't occur anywhere except in a binary string?



This page is a thread posted to the opentalk forum at www.opentalk.org.uk and archived here for reference. To jump to the archive index please follow this link.

You can Add a comment or ranking to this page

© WELL HOUSE CONSULTANTS LTD., 2014: Well House Manor • 48 Spa Road • Melksham, Wiltshire • United Kingdom • SN12 7NY
PH: 01144 1225 708225 • FAX: 01144 1225 899360 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho