473,769 Members | 5,742 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

pyserial to read from DS1615 temperature recorder chip

Hi there,

I am trying to use pyserial to read data from a temperature logger
device (T-logger). T-logger is based on the DS1615 temperature recorder
chip (Dallas Semiconductor). According to the DS1615 docs, writing to
the chip is performed one byte at a time. To read from the chip, one
must issue the "read page" command (33h), followed by the two-byte
address of the requested page (pages are 32 bytes long). After
receiving this, the DS1615 will send the data in a burst of (up to) 32
bytes. I can send data to the device, e.g. I can make the device's LED
blink with the test command (44h), but I am unable to read from it.
Connection parameters below are according to DS1615 docs.
>import serial
s = serial.Serial(0 , baudrate=9600, bytesize=8, parity='N', stopbits=1, timeout=None)
s.write("\x33" )
s.write("\x00" )
s.write("\x00" )
s.read() # "\x00" is returned here. This byte was already in the receive buffer before issueing the write commands.
s.read() # The interpreter is blocked here as there is nothing to read from the serial port.
I'm completely clueless and would really appreciate your comments. If
it helps, I can post a log from a serial port monitor captured when the
provided T-logger program pulls data from the device, as well as a log
when pyserial is used. And finally, this is a snippet of some basic
code found on the web, that is suppose to do what I want (untested by
me):

open "COM1:9600,N,8, 1,CS0,DS0,CD0,M E,FE" as 1
print #1, chr$(&H33);chr$ (&H00);chr$(&H0 0)
result$ = input$(34, #1)

Many thanks,

alex

Jul 24 '06 #1
7 4869
On 2006-07-24 14:03:30, al************* **@yahoo.com wrote:
To read from the chip, one must issue the "read page" command (33h),
followed by the two-byte address of the requested page (pages are 32
bytes long). After receiving this, the DS1615 will send the data in a
burst of (up to) 32 bytes.
I'm not sure what you mean when you say it will send "up to" 32 bytes. If
you mean that it sends bytes until all existing values have been sent --
did you make sure you have any values in the buffer?

(Just asking the obvious... :)

Gerhard

Jul 24 '06 #2
On 2006-07-24, Gerhard Fiedler <ge*****@gmail. comwrote:
On 2006-07-24 14:03:30, al************* **@yahoo.com wrote:
>To read from the chip, one must issue the "read page" command (33h),
followed by the two-byte address of the requested page (pages are 32
bytes long). After receiving this, the DS1615 will send the data in a
burst of (up to) 32 bytes.

I'm not sure what you mean when you say it will send "up to" 32 bytes.
Registers are in 32-byte pages. If you request register N, the
device sends register N followed by the remainder of the
32-byte page that contains address N. If you request the first
register on a page, you'll get 32 bytes back. If you request
the last register on a page, you'll get one 1 back.

--
Grant Edwards grante Yow! If I pull this SWITCH
at I'll be RITA HAYWORTH!! Or
visi.com a SCIENTOLOGIST!
Jul 24 '06 #3
On 2006-07-24, al************* **@yahoo.com <al************ ***@yahoo.comwr ote:
>>import serial
s = serial.Serial(0 , baudrate=9600, bytesize=8, parity='N', stopbits=1, timeout=None)
s.write("\x33 ")
s.write("\x00 ")
s.write("\x00 ")
s.read() # "\x00" is returned here. This byte was already in the receive buffer before issueing the write commands.
s.read() # The interpreter is blocked here as there is nothing to read from the serial port.
Can you verify that the device is actually responding by
watching the data line with an oscilloscope?
I'm completely clueless and would really appreciate your
comments. If it helps, I can post a log from a serial port
monitor captured when the provided T-logger program pulls data
from the device,
I take it that means that other programs are able to read from
the device?
as well as a log when pyserial is used.
Logs of the serial traffic would be helpful.

--
Grant Edwards grante Yow! It's the land of
at DONNY AND MARIE as promised
visi.com in TV GUIDE!
Jul 24 '06 #4
Gerhard Fiedler wrote:
On 2006-07-24 14:03:30, al************* **@yahoo.com wrote:
To read from the chip, one must issue the "read page" command (33h),
followed by the two-byte address of the requested page (pages are 32
bytes long). After receiving this, the DS1615 will send the data in a
burst of (up to) 32 bytes.

I'm not sure what you mean when you say it will send "up to" 32 bytes. If
you mean that it sends bytes until all existing values have been sent --
did you make sure you have any values in the buffer?

(Just asking the obvious... :)

Gerhard
Thanks Gerhard,

Up to 32 bytes means that the chip sends the bytes from the address you
give up to the end of the memory page that contains this address. Thus
if you give the address of the beginning of a memory page (e.g. like
here 0000H for the beginning of the first page, which contains control
registers and the current temperature register), you get 32 bytes.

alex

Jul 24 '06 #5
Thanks Grant,
Can you verify that the device is actually responding by
watching the data line with an oscilloscope?
I don't have an oscilloscope but the device does respond (LED blinks)
when I send it a test command (44H).
I take it that means that other programs are able to read from
the device?
Yes, the device comes with a little GUI program to read the logged
temperatures, calibrate, etc... Works fine, but I would like to read
distributed loggers over the network with python and sockets.
Logs of the serial traffic would be helpful.
Here they are. First a log of the traffic generated by the T-logger GUI
program, abtained with Portmon.

### TRAFFIC WHEN THE PROGRAM IS LAUNCHED:

0 0.00000000 TLogger.exe IRP_MJ_CREATE Serial0 Options: Open
0 0.00006174 SUCCESS
1 0.00000000 TLogger.exe IOCTL_SERIAL_SE T_WAIT_MASK Serial0 Mask:
RXCHAR TXEMPTY CTS DSR RLSD BRK ERR RING
1 0.00000726 SUCCESS
2 0.00000000 TLogger.exe IOCTL_SERIAL_PU RGE Serial0 Purge: TXABORT
RXABORT TXCLEAR RXCLEAR
2 0.00000698 SUCCESS
3 0.00000000 TLogger.exe IOCTL_SERIAL_SE T_TIMEOUTS Serial0 RI:-1
RM:0 RC:0 WM:0 WC:5000
3 0.00000168 SUCCESS
4 0.00000000 TLogger.exe IOCTL_SERIAL_GE T_BAUD_RATE Serial0
4 0.00000279 SUCCESS
5 0.00000000 TLogger.exe IOCTL_SERIAL_GE T_LINE_CONTROL Serial0
5 0.00000196 SUCCESS
6 0.00000000 TLogger.exe IOCTL_SERIAL_GE T_CHARS Serial0
6 0.00000223 SUCCESS
7 0.00000000 TLogger.exe IOCTL_SERIAL_GE T_HANDFLOW Serial0
7 0.00000196 SUCCESS
8 0.00000000 TLogger.exe IOCTL_SERIAL_GE T_BAUD_RATE Serial0
8 0.00000196 SUCCESS
9 0.00000000 TLogger.exe IOCTL_SERIAL_GE T_LINE_CONTROL Serial0
9 0.00000168 SUCCESS
10 0.00000000 TLogger.exe IOCTL_SERIAL_GE T_CHARS Serial0
10 0.00000168 SUCCESS
11 0.00000000 TLogger.exe IOCTL_SERIAL_GE T_HANDFLOW Serial0
11 0.00000168 SUCCESS
12 0.00000000 TLogger.exe IOCTL_SERIAL_SE T_BAUD_RATE Serial0 Rate:
9600
12 0.00001285 SUCCESS
13 0.00000000 TLogger.exe IOCTL_SERIAL_CL R_RTS Serial0
13 0.00000782 SUCCESS
14 0.00000000 TLogger.exe IOCTL_SERIAL_SE T_DTR Serial0
14 0.00000810 SUCCESS
15 0.00000000 TLogger.exe IOCTL_SERIAL_SE T_LINE_CONTROL Serial0
StopBits: ERROR Parity: NONE WordLength: 8
15 0.00000698 SUCCESS
16 0.00000000 TLogger.exe IOCTL_SERIAL_SE T_CHAR Serial0 EOF:1a
ERR:0 BRK:0 EVT:0 XON:11 XOFF:13
16 0.00000531 SUCCESS
17 0.00000000 TLogger.exe IOCTL_SERIAL_SE T_HANDFLOW Serial0
Shake:1 Replace:0 XonLimit:8 XoffLimit:8
17 0.00000754 SUCCESS
18 0.00000000 TLogger.exe IOCTL_SERIAL_SE T_WAIT_MASK Serial0 Mask:
RXCHAR TXEMPTY CTS DSR RLSD BRK ERR RING
18 0.00001145 SUCCESS
19 0.00000000 TLogger.exe IOCTL_SERIAL_SE T_WAIT_MASK Serial0 Mask:
RXCHAR TXEMPTY CTS DSR RLSD BRK ERR RING
19 0.00000531 SUCCESS
20 0.00000000 TLogger.exe IOCTL_SERIAL_WA IT_ON_MASK Serial0

### TRAFFIC WHEN THE PROGRAM READS CURRENT TEMP FROM DEVICE:

21 0.00000000 TLogger.exe IOCTL_SERIAL_GE T_COMMSTATUS Serial0
21 0.00001034 SUCCESS
22 0.00000000 TLogger.exe IRP_MJ_WRITE Serial0 Length 1: 33
22 0.00003269 SUCCESS
20 9.28649032 SUCCESS
23 0.00000000 TLogger.exe IOCTL_SERIAL_GE T_COMMSTATUS Serial0
23 0.00000587 SUCCESS
24 0.00000000 TLogger.exe IOCTL_SERIAL_GE T_COMMSTATUS Serial0
24 0.00000559 SUCCESS
25 0.00000000 TLogger.exe IOCTL_SERIAL_GE T_PROPERTIES Serial0
25 0.00000168 SUCCESS
26 0.00000000 TLogger.exe IRP_MJ_WRITE Serial0 Length 1: 00
27 0.00000000 TLogger.exe IOCTL_SERIAL_SE T_WAIT_MASK Serial0 Mask:
RXCHAR TXEMPTY CTS DSR RLSD BRK ERR RING
27 0.00000726 SUCCESS
28 0.00000000 TLogger.exe IOCTL_SERIAL_WA IT_ON_MASK Serial0
26 0.00107611 SUCCESS
28 0.00097666 SUCCESS
29 0.00000000 TLogger.exe IOCTL_SERIAL_GE T_COMMSTATUS Serial0
29 0.00000587 SUCCESS
30 0.00000000 TLogger.exe IOCTL_SERIAL_GE T_COMMSTATUS Serial0
30 0.00000503 SUCCESS
31 0.00000000 TLogger.exe IOCTL_SERIAL_GE T_PROPERTIES Serial0
31 0.00000196 SUCCESS
32 0.00000000 TLogger.exe IRP_MJ_WRITE Serial0 Length 1: 00
33 0.00000000 TLogger.exe IOCTL_SERIAL_SE T_WAIT_MASK Serial0 Mask:
RXCHAR TXEMPTY CTS DSR RLSD BRK ERR RING
33 0.00000531 SUCCESS
34 0.00000000 TLogger.exe IOCTL_SERIAL_WA IT_ON_MASK Serial0
32 0.00102583 SUCCESS
34 0.00098811 SUCCESS
35 0.00000000 TLogger.exe IOCTL_SERIAL_GE T_COMMSTATUS Serial0
35 0.00000559 SUCCESS
36 0.00000000 TLogger.exe IOCTL_SERIAL_GE T_COMMSTATUS Serial0
36 0.00000726 SUCCESS
37 0.00000000 TLogger.exe IOCTL_SERIAL_GE T_COMMSTATUS Serial0
37 0.00000559 SUCCESS
38 0.00000000 TLogger.exe IOCTL_SERIAL_SE T_WAIT_MASK Serial0 Mask:
RXCHAR TXEMPTY CTS DSR RLSD BRK ERR RING
38 0.00001173 SUCCESS
39 0.00000000 TLogger.exe IOCTL_SERIAL_WA IT_ON_MASK Serial0
39 0.00934281 SUCCESS
40 0.00000000 TLogger.exe IOCTL_SERIAL_SE T_WAIT_MASK Serial0 Mask:
RXCHAR TXEMPTY CTS DSR RLSD BRK ERR RING
40 0.00000922 SUCCESS
41 0.00000000 TLogger.exe IOCTL_SERIAL_WA IT_ON_MASK Serial0
41 0.00001034 SUCCESS
42 0.00000000 TLogger.exe IOCTL_SERIAL_SE T_WAIT_MASK Serial0 Mask:
RXCHAR TXEMPTY CTS DSR RLSD BRK ERR RING
42 0.00000531 SUCCESS
43 0.00000000 TLogger.exe IOCTL_SERIAL_WA IT_ON_MASK Serial0
43 0.00905059 SUCCESS
44 0.00000000 TLogger.exe IOCTL_SERIAL_SE T_WAIT_MASK Serial0 Mask:
RXCHAR TXEMPTY CTS DSR RLSD BRK ERR RING
44 0.00000782 SUCCESS
45 0.00000000 TLogger.exe IOCTL_SERIAL_WA IT_ON_MASK Serial0
45 0.00000978 SUCCESS
46 0.00000000 TLogger.exe IOCTL_SERIAL_SE T_WAIT_MASK Serial0 Mask:
RXCHAR TXEMPTY CTS DSR RLSD BRK ERR RING
46 0.00000531 SUCCESS
47 0.00000000 TLogger.exe IOCTL_SERIAL_WA IT_ON_MASK Serial0
47 0.00906735 SUCCESS
48 0.00000000 TLogger.exe IOCTL_SERIAL_SE T_WAIT_MASK Serial0 Mask:
RXCHAR TXEMPTY CTS DSR RLSD BRK ERR RING
48 0.00000838 SUCCESS
49 0.00000000 TLogger.exe IOCTL_SERIAL_WA IT_ON_MASK Serial0
49 0.00001006 SUCCESS
50 0.00000000 TLogger.exe IOCTL_SERIAL_SE T_WAIT_MASK Serial0 Mask:
RXCHAR TXEMPTY CTS DSR RLSD BRK ERR RING
50 0.00000531 SUCCESS
51 0.00000000 TLogger.exe IOCTL_SERIAL_WA IT_ON_MASK Serial0
51 0.00907238 SUCCESS
52 0.00000000 TLogger.exe IOCTL_SERIAL_SE T_WAIT_MASK Serial0 Mask:
RXCHAR TXEMPTY CTS DSR RLSD BRK ERR RING
52 0.00000978 SUCCESS
53 0.00000000 TLogger.exe IOCTL_SERIAL_WA IT_ON_MASK Serial0
53 0.00000950 SUCCESS
54 0.00000000 TLogger.exe IOCTL_SERIAL_SE T_WAIT_MASK Serial0 Mask:
RXCHAR TXEMPTY CTS DSR RLSD BRK ERR RING
54 0.00000531 SUCCESS
55 0.00000000 TLogger.exe IOCTL_SERIAL_WA IT_ON_MASK Serial0
55 0.00676706 SUCCESS
56 0.00000000 TLogger.exe IOCTL_SERIAL_SE T_WAIT_MASK Serial0 Mask:
RXCHAR TXEMPTY CTS DSR RLSD BRK ERR RING
56 0.00001006 SUCCESS
57 0.00000000 TLogger.exe IOCTL_SERIAL_WA IT_ON_MASK Serial0
57 0.00001006 SUCCESS
58 0.00000000 TLogger.exe IOCTL_SERIAL_SE T_WAIT_MASK Serial0 Mask:
RXCHAR TXEMPTY CTS DSR RLSD BRK ERR RING
58 0.00000531 SUCCESS
59 0.00000000 TLogger.exe IOCTL_SERIAL_WA IT_ON_MASK Serial0
60 0.00000000 TLogger.exe IOCTL_SERIAL_GE T_COMMSTATUS Serial0
60 0.00000978 SUCCESS
61 0.00000000 TLogger.exe IRP_MJ_READ Serial0 Length 1
61 0.00000978 SUCCESS Length 1: 26
62 0.00000000 TLogger.exe IOCTL_SERIAL_GE T_COMMSTATUS Serial0
62 0.00000587 SUCCESS
63 0.00000000 TLogger.exe IRP_MJ_READ Serial0 Length 1
63 0.00000615 SUCCESS Length 1: 35
64 0.00000000 TLogger.exe IOCTL_SERIAL_GE T_COMMSTATUS Serial0
64 0.00000531 SUCCESS
65 0.00000000 TLogger.exe IRP_MJ_READ Serial0 Length 1
65 0.00000559 SUCCESS Length 1: 14
66 0.00000000 TLogger.exe IOCTL_SERIAL_GE T_COMMSTATUS Serial0
66 0.00000503 SUCCESS
67 0.00000000 TLogger.exe IRP_MJ_READ Serial0 Length 1
67 0.00000587 SUCCESS Length 1: 02

I'm cutting here but 32 bytes of data are acquired.

And here is the traffic when I'm using pyserial:
>s = serial.Serial(0 , baudrate=9600, bytesize=8, parity='N', stopbits=1, timeout=None)
0 0.00006230 python.exe IRP_MJ_CREATE Serial0 SUCCESS Options: Open
1 0.00000363 python.exe IOCTL_SERIAL_SE T_QUEUE_SIZE Serial0 SUCCESS InSize:
4096 OutSize: 4096
2 0.00000223 python.exe IOCTL_SERIAL_GE T_TIMEOUTS Serial0 SUCCESS
3 0.00000251 python.exe IOCTL_SERIAL_SE T_TIMEOUTS Serial0 SUCCESS RI:0
RM:0 RC:0 WM:0 WC:0
4 0.00000698 python.exe IOCTL_SERIAL_SE T_WAIT_MASK Serial0 SUCCESS Mask:
ERR
5 0.00000223 python.exe IOCTL_SERIAL_GE T_BAUD_RATE Serial0 SUCCESS
6 0.00000196 python.exe IOCTL_SERIAL_GE T_LINE_CONTROL Serial0 SUCCESS
7 0.00000196 python.exe IOCTL_SERIAL_GE T_CHARS Serial0 SUCCESS
8 0.00000168 python.exe IOCTL_SERIAL_GE T_HANDFLOW Serial0 SUCCESS
9 0.00000196 python.exe IOCTL_SERIAL_GE T_BAUD_RATE Serial0 SUCCESS
10 0.00000196 python.exe IOCTL_SERIAL_GE T_LINE_CONTROL Serial0 SUCCESS
11 0.00000196 python.exe IOCTL_SERIAL_GE T_CHARS Serial0 SUCCESS
12 0.00000168 python.exe IOCTL_SERIAL_GE T_HANDFLOW Serial0 SUCCESS
13 0.00001285 python.exe IOCTL_SERIAL_SE T_BAUD_RATE Serial0 SUCCESS Rate:
9600
14 0.00000810 python.exe IOCTL_SERIAL_SE T_RTS Serial0 SUCCESS
15 0.00000810 python.exe IOCTL_SERIAL_SE T_DTR Serial0 SUCCESS
16 0.00000698 python.exe IOCTL_SERIAL_SE T_LINE_CONTROL Serial0 SUCCESS StopBits:
1 Parity: NONE WordLength: 8
17 0.00000559 python.exe IOCTL_SERIAL_SE T_CHAR Serial0 SUCCESS EOF:1a
ERR:0 BRK:0 EVT:0 XON:11 XOFF:13
18 0.00001062 python.exe IOCTL_SERIAL_SE T_HANDFLOW Serial0 SUCCESS Shake:1
Replace:40 XonLimit:2048 XoffLimit:512
19 0.00000698 python.exe IOCTL_SERIAL_PU RGE Serial0 SUCCESS Purge:
TXABORT RXABORT TXCLEAR RXCLEAR
>s.write("\x33" )
20 0.00003716 python.exe IRP_MJ_WRITE Serial0 SUCCESS Length 1: 33
>s.write("\x00" )
21 0.00003632 python.exe IRP_MJ_WRITE Serial0 SUCCESS Length 1: 00
>s.write("\x00" )
22 0.00003632 python.exe IRP_MJ_WRITE Serial0 SUCCESS Length 1: 00
>s.read() # "\x00" is returned here. This byte was already in the receive buffer before issueing the write commands.
23 0.00001145 python.exe IOCTL_SERIAL_GE T_COMMSTATUS Serial0 SUCCESS
24 0.00000978 python.exe IRP_MJ_READ Serial0 SUCCESS Length 1: 00
>s.read() # I've had to kill interpreter here (nothing to read and I had timeout=None)
25 0.00001062 python.exe IOCTL_SERIAL_GE T_COMMSTATUS Serial0 SUCCESS
26 32.01253595 python.exe IRP_MJ_READ Serial0 CANCELLED Length 1

alex

Jul 24 '06 #6
On 2006-07-24, al************* **@yahoo.com <al************ ***@yahoo.comwr ote:
>Logs of the serial traffic would be helpful.

Here they are. First a log of the traffic generated by the
T-logger GUI program, abtained with Portmon.
I try to avoid Windows as much as humanly possible, but one
thing that appears to be different is that Tlogger clears RTS
and your program sets it. Try clearing RTS in your program
when you set up the serial port.

If clearing RTS doesn't help, I guess I'd try different flow
control settings (try enabling and disabling RTS/CTS flow
control).

Since you're dealing with binary data, make sure that Xon/Xoff
flow control is disabled.

--
Grant Edwards grante Yow! What's the MATTER
at Sid?... Is your BEVERAGE
visi.com unsatisfactory?
Jul 24 '06 #7
Grant Edwards wrote:
On 2006-07-24, al************* **@yahoo.com <al************ ***@yahoo.comwr ote:

>>>Logs of the serial traffic would be helpful.

Here they are. First a log of the traffic generated by the
T-logger GUI program, abtained with Portmon.


I try to avoid Windows as much as humanly possible, but one
thing that appears to be different is that Tlogger clears RTS
and your program sets it. Try clearing RTS in your program
when you set up the serial port.

If clearing RTS doesn't help, I guess I'd try different flow
control settings (try enabling and disabling RTS/CTS flow
control).

Since you're dealing with binary data, make sure that Xon/Xoff
flow control is disabled.
It could also be a timing issue or handshaking problem.
Having to write to the chip "a byte at a time" implies
that it could take it a little while to digest each byte;
longer than the natural character time for the baud rate,
that is. I'm not sure if I'm reading the portmon output
correctly, but it looks like the "T-logger" program
is waiting for CTS (or possibly some other condition)
before sending each byte. The Python program does not
appear to be doing so, it's just sending the three bytes,
bang bang bang.

-- JK
Jul 24 '06 #8

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

13
11038
by: Bob Greschke | last post by:
We have some equipment that communicates at 57600 baud RS232. The path from the PC is USB to a Phillips USB hub, then off of that a TUSB3410 USB/Serial converter. The driver for the 3410 chip creates a "normal" comm port (like COM3). There is a C++ program that has no problem talking to the equipment, but two Python programs have trouble. One is a big, scary, controller program, and the other, since that is the one I'm having trouble...
1
2557
by: Newbie | last post by:
I need a function to read the temperature of the CPU or other devices on my motherboard. I have seen programs out there like "speedfan" where this is possible. I would greatly appreciate any pointers on this.
6
3590
by: Casey Bralla | last post by:
I'd like to read ASCII data from a serial port, but (once again) I'm having trouble getting started. (Can't seem to find the basic level of docs to get going <sigh>) I'd like to use only standard "built-in" modules if possible. Could somebody offer a simple code-snippet to get me started reading from a serial port? Thanks!
5
9960
by: Mimi | last post by:
Hi, I use the pyserial to read data from a serial port. My code is in window Xp and python 2.4. when I use Hyperteminal I can read data without try and try again that it is not the case with pyserial library. anyone can help me ? this is a part of my code: self.ser = serial.Serial() self.ser.baudrate = 9600
2
3741
by: Jon | last post by:
Hi, I wrote some code to read in info from a port using pyserial. the code reads info sent by a box that is connected to my computer by an rs232-to usb adapter. When I was writing the code and testing it on my computer it worked fine. I ran py2exe on the program (which uses wxpython for its gui) and sent the output from the py2exe to another computer. now when I try to run it on this other computer it fails to open the port. it gives...
15
16872
by: Lone Wolf | last post by:
I'm trying to get data through my serial port from a CMUcam. This gizmo tracks a color and returns a packet of data. The packet has nine data points (well, really eight since the first point is just a packet header) separated by spaces as follows: M xxx xxx xxx xxx xxx xxx xxx xxx Here is the code I am using (python v24): import serial
4
11792
by: rowan | last post by:
I'm writing a driver in Python for an old fashioned piece of serial equipment. Currently I'm using the USPP serial module. From what I can see all the serial modules seem to set the timeout when you open a serial port. This is not what I want to do. I need to change the timeout each time I do a "read" on the serial port, depending on which part of the protocol I've got to. Sometimes a return character is expected within half a second,...
0
596
by: pauland80 | last post by:
<snip> <snip> Late thanks for your both answers! (Please excuse me for that) The problem was a bug in the device firmware. But before finding this, I dugg lightly in the pyserial source and found (to take with care!) :
2
4160
by: bryanleo | last post by:
We are trying to read data from a microcontroller and interface it through serial port. The output is then displayed in Python using Pyserial or the hyperterminal, the former is more important When you touch the input pins of the microcontroller the value changes real time in hyper terminal. But In the case of the pyserial module, even though you touch the input pins, the value does not change. We have actually noticed that python records and...
0
9423
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
10210
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
10043
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
9990
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
8869
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
7406
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
5298
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
2
3561
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
3
2814
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.