472,378 Members | 1,148 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 472,378 software developers and data experts.

Read from serial port

Hi,
I am newbie in python. I am working on Telit GM862 GPS/GPRS module
which has python interpreter built in. But it seems this problem is
pretty much related to general python structure.

I need a promt/terminal when the device is connected to PC. If user
enters a command by serial port and press "Enter" then the data is
read by the device and work on the command. This is similar to
readline() function. Unfortunately there is no readline() function for
GM862 device. The following functions are available for serial port
data receive-

SER.read() - reads whole string at a time from buffer
SER.receive(timeout) - reads if there is any input in the buffer
andwait for the input upto timeout
SER.receivebyte(timeout) - reads if there is any byte sent in the
buffer and wait for the input upto timeout

Now, is this possible to build a readline() using the functions above?
Can I redirect the terminal or serial port data to receive it as a
whole string when entered "\n"?

Please advise me how can I solve this problem.

Thanks a lot.
Aug 14 '08 #1
2 10295
On Aug 14, 6:11 am, mmrash...@gmail.com wrote:
Hi,
I am newbie in python. I am working on Telit GM862 GPS/GPRS module
which has python interpreter built in. But it seems this problem is
pretty much related to general python structure.

I need a promt/terminal when the device is connected to PC. If user
enters a command by serial port and press "Enter" then the data is
read by the device and work on the command. This is similar to
readline() function. Unfortunately there is no readline() function for
GM862 device. The following functions are available for serial port
data receive-

SER.read() - reads whole string at a time from buffer
SER.receive(timeout) - reads if there is any input in the buffer
andwait for the input upto timeout
SER.receivebyte(timeout) - reads if there is any byte sent in the
buffer and wait for the input upto timeout

Now, is this possible to build a readline() using the functions above?
Can I redirect the terminal or serial port data to receive it as a
whole string when entered "\n"?

Please advise me how can I solve this problem.

Thanks a lot.
Well i dont think its much of a problem.
What i think you should be doing is to read the data into a secondary
buffer. it could be a simple string or a specialized buffer class. You
would need a method to update() this secondary buffer. ie read from
port and append the read data to our buffer.

That done you can easily make a readline function. lol i think even a
15yr old can make a readline() from here.

btw does ur gm862 support multiple thread? if yes u can put the
update() function code and also a method launcher when ever a
particular command is sent to the device using a serial connection!

hope it helps !
BJ
Aug 14 '08 #2
mm*******@gmail.com wrote:
I need a promt/terminal when the device is connected to PC. If user
enters a command by serial port and press "Enter" then the data is
read by the device and work on the command. This is similar to
readline() function. Unfortunately there is no readline() function for
GM862 device. The following functions are available for serial port
data receive-

SER.read() - reads whole string at a time from buffer
SER.receive(timeout) - reads if there is any input in the buffer
andwait for the input upto timeout
SER.receivebyte(timeout) - reads if there is any byte sent in the
buffer and wait for the input upto timeout
Unless I'm missing something, a simple loop should be all you need:

import SER

def readline(timeout=36000):
line = ""
while 1:
ch = SER.receivebyte(timeout)
if ch < 0:
raise IOError("timeout")
if ch == 10:
break # stop collecting when we get LF
if ch == 13:
continue # ignore CR, in case we get CR+LF
line = line + chr(ch)
return line

Tweak as necessary.

(and before anyone pops up with a "better" way to do that, keep in mind
that the GM862 device uses a custom version of Python 1.5.2.)

</F>

Aug 14 '08 #3

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

Similar topics

3
by: collinm | last post by:
hi i send a command to a led display, the led display is suppose to return me some character i write a string on a serial port void ledDisplayExist() { char msg={'\0', '\0', '\0', '\0',...
1
by: Tolgay Gül | last post by:
I need some codes that able to send and read data by serialport in VB.Net 2005 beta 2. I wrote some codes and It can send data via serialport but It cannot read what I send. I have looked up on...
6
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...
17
by: luca72 | last post by:
Hello at all sorry for my english but i'm Italian. I use pyserial to communicate via rs232 with an extarnal device called smartmouse. I write the exact line that i want , but when i read i read...
4
by: chenatcr | last post by:
Hello, I added a serial-USB converter to my laptop, it appear as USB serial port COM4, and I wrote an application to read 78k data from this port. In my VC++ express code, I defined...
4
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...
0
by: ghjk | last post by:
I want to read sms from GSM modem using C# in serial communication. I wrote the code. But i want to do it automatically. I put my code here and please tell me how can i do it automatically. ...
1
by: ghjk | last post by:
I'm write code to read data from GSM modem. but it couldn't read modem response. Could you please help me? I'll post my code. using System; using System.Collections.Generic; using...
1
by: rfarley | last post by:
Hi, I am using the pyserial module and am trying to read the serial port from an accelerometer (LIS302DL). It has an option in which you write "*debug\r\n" and then you read the data (three...
2
by: Kemmylinns12 | last post by:
Blockchain technology has emerged as a transformative force in the business world, offering unprecedented opportunities for innovation and efficiency. While initially associated with cryptocurrencies...
0
by: Naresh1 | last post by:
What is WebLogic Admin Training? WebLogic Admin Training is a specialized program designed to equip individuals with the skills and knowledge required to effectively administer and manage Oracle...
0
by: antdb | last post by:
Ⅰ. Advantage of AntDB: hyper-convergence + streaming processing engine In the overall architecture, a new "hyper-convergence" concept was proposed, which integrated multiple engines and...
0
Oralloy
by: Oralloy | last post by:
Hello Folks, I am trying to hook up a CPU which I designed using SystemC to I/O pins on an FPGA. My problem (spelled failure) is with the synthesis of my design into a bitstream, not the C++...
0
by: Carina712 | last post by:
Setting background colors for Excel documents can help to improve the visual appeal of the document and make it easier to read and understand. Background colors can be used to highlight important...
0
BLUEPANDA
by: BLUEPANDA | last post by:
At BluePanda Dev, we're passionate about building high-quality software and sharing our knowledge with the community. That's why we've created a SaaS starter kit that's not only easy to use but also...
1
by: Johno34 | last post by:
I have this click event on my form. It speaks to a Datasheet Subform Private Sub Command260_Click() Dim r As DAO.Recordset Set r = Form_frmABCD.Form.RecordsetClone r.MoveFirst Do If...
1
by: ezappsrUS | last post by:
Hi, I wonder if someone knows where I am going wrong below. I have a continuous form and two labels where only one would be visible depending on the checkbox being checked or not. Below is the...
0
by: jack2019x | last post by:
hello, Is there code or static lib for hook swapchain present? I wanna hook dxgi swapchain present for dx11 and dx9.

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.