473,770 Members | 1,973 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Help! serial communications programming in c

Hello,I met a question when I wrote the program.I want the program can
transmit the data frame continuosly through the RS232 when the
communication has been interrupted.But I don't know how to write. I
don't know how to record.Who can give me hand?Thanks very much!

Mar 11 '06 #1
8 2468
In article <11************ **********@e56g 2000cwe.googleg roups.com>,
vicky <lj******@163.c om> wrote:
Hello,I met a question when I wrote the program.I want the program can
transmit the data frame continuosly through the RS232 when the
communicatio n has been interrupted.But I don't know how to write. I
don't know how to record.Who can give me hand?Thanks very much!


The closest that the C language itself comes to knowing about
RS232 or serial communications, is that there are certain
provisions about default buffering if the implementation can
prove that a stream is a "terminal". C does not define what
a "terminal" is, though, so the connection between that and
"serial" is pretty weak.

This newsgroup, comp.lang.c, only deals with that which is
covered in the C standards. Hence, this is not an appropriate
newsgroup for asing about RS232 or serial communications.

I would redirect you to a more appropriate newsgroup, but you
did not mention anything about which OS you are using,
so I cannot tell you at the moment which would be the appropriate
place. Probably one of the Windows or Unix newsgroups.

When you go to post your question to a more appropriate newsgroup,
I would suggest that you explain your question in more detail.
I do not understand what you mean when you say that you want
the program to transmit the data frame "continuous ly" when the
communications has been interrupted. I am not sure if you are
talking about the bit level, or the character level, or some kind
of packet level. I cannot tink of any circumstances under which
continually retransmitting the same bit or byte would be useful,
and retransmitting the same packet would normally not be done
until you were sure the other end had not received it. I do not
know how you intend how to detect that "communicat ion has been
interrupted".

I have to wonder whether you are reinventing things, and whether
you would perhaps be better off using an already written
transmission program such as x-modem, z-modem, or kermit.
--
I was very young in those days, but I was also rather dim.
-- Christopher Priest
Mar 11 '06 #2
I mean that when my program is ended or my computer is closed
suddenly,the program can transmit data from the former when I reset.And
the OS is Windows.The data I want to transmit is byte.

Mar 11 '06 #3
"vicky" <lj******@163.c om> writes:
I mean that when my program is ended or my computer is closed
suddenly,the program can transmit data from the former when I reset.And
the OS is Windows.The data I want to transmit is byte.


Read and understand <http://cfaj.freeshell. org/google/> before you
post to Usenet again.

Your question is off-topic. Try a Windows-specific newsgroup (I don't
know which one). And when you do, try to be clearer about what you're
asking.

--
Keith Thompson (The_Other_Keit h) ks***@mib.org <http://www.ghoti.net/~kst>
San Diego Supercomputer Center <*> <http://users.sdsc.edu/~kst>
We must do something. This is something. Therefore, we must do this.
Mar 11 '06 #4
Where is Kenny McCormack - when we need him?

Mar 11 '06 #5
In article <11************ **********@j33g 2000cwa.googleg roups.com>,
vicky <lj******@163.c om> wrote:
I mean that when my program is ended or my computer is closed
suddenly,the program can transmit data from the former when I reset.And
the OS is Windows.The data I want to transmit is byte.


This is, as I indicated, not on-topic in comp.lang.c .

What you want to do cannot be done with RS232 serial communications.

RS232 provides no mechanism for the remote end to signal that
it has received any particular byte, so there is no way for the
serial port to detect whether a particular byte was transmitted
successfully or not.

Typically when you are transmitting serial data, your application
queues a number of bytes to be transmitted and lets the serial driver
handle the details -- so your application would not typically
know which byte had been reached before the application
unexpectedly quit. Your application could choose to submit
only one byte at a time and wait for the data write call to
return, but you would almost certainly lose a *lot* of performance
that way, as you would be expecting the computer to handle
3840 interrupts per second.

The only realistic way to handle what you appear to want to do,
is to use an application protocol that is able to negotiate with
the remote end to detect where to resume. If you go to that trouble,
you would usually also want the application protocol to detect
transmission errors and automatically re-send when bad data was
detected or when bytes accidently got lost. Two well-established
protocols that can do these things are kermit and z-modem. The
z-modem protocol is small enough to be practical for an experienced
programmer to re-implement, but you do not appear to be an experienced
programmer, so I would suggest that you simply download kermit
or a file transfer program that is able to handle the z-modem protocol.

kermit for unix is free, but the official kermit program for Windows
is not. You can download a time-limited version of it (kermit95) from
http://www.columbia.edu/kermit/k95.html .
--
Programming is what happens while you're busy making other plans.
Mar 11 '06 #6
jo*********@yah oo.com wrote:
Where is Kenny McCormack - when we need him?


In most people's killfiles. Eager to join him? You're on the right path.

Brian

--
If televison's a babysitter, the Internet is a drunk librarian who
won't shut up.
-- Dorothy Gambrell (http://catandgirl.com)
Mar 11 '06 #7
On 10 Mar 2006 21:19:43 -0800, in comp.lang.c , "vicky"
<lj******@163.c om> wrote:
Hello,I met a question when I wrote the program.I want the program can
transmit the data frame continuosly through the RS232 when the
communicatio n has been interrupted.But I don't know how to write. I
don't know how to record.Who can give me hand?Thanks very much!


Unfortunately this is offtopic in CLC, since it is hardware-specific,
and operating system specific. You should ask in a group specialising
in your OS.

Mark McIntyre
--
"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are,
by definition, not smart enough to debug it."
--Brian Kernighan

----== Posted via Newsfeeds.Com - Unlimited-Unrestricted-Secure Usenet News==----
http://www.newsfeeds.com The #1 Newsgroup Service in the World! 120,000+ Newsgroups
----= East and West-Coast Server Farms - Total Privacy via Encryption =----
Mar 12 '06 #8
On Sat, 11 Mar 2006 17:14:10 +0000 (UTC), ro******@ibd.nr c-cnrc.gc.ca
(Walter Roberson) wrote:
In article <11************ **********@j33g 2000cwa.googleg roups.com>,
vicky <lj******@163.c om> wrote:
I mean that when my program is ended or my computer is closed
suddenly,the program can transmit data from the former when I reset.And
the OS is Windows.The data I want to transmit is byte.
This is, as I indicated, not on-topic in comp.lang.c .

What you want to do cannot be done with RS232 serial communications.

RS232 provides no mechanism for the remote end to signal that
it has received any particular byte, so there is no way for the
serial port to detect whether a particular byte was transmitted
successfully or not.

RS232 as usually implemented today, just async (serial) data, no.

If you can still find (or make) a proper full RS232 implementation,
you could reasonably use CTS for this. RTS/CTS were most often used
for blocks (today, packets), but there is nothing in their definition
that would make them unsuitable for bytes. In fact I seem to recall
some terminals (one possibly rogue neuron is claiming VT100) did use
them for byte-granularity flow control.

For that matter, you could stretch a point and use (simulated) DCE
clocking for this. But good luck finding a serial interface today that
allows direct access to clocks even in hardware much less the OS,
unless of course you build your own from the ground up.

<snip> The only realistic way to handle what you appear to want to do,
is to use an application protocol that is able to negotiate with
the remote end to detect where to resume. If you go to that trouble,
you would usually also want the application protocol to detect
transmission errors and automatically re-send when bad data was
detected or when bytes accidently got lost. Two well-established
protocols that can do these things are kermit and z-modem. The
z-modem protocol is small enough to be practical for an experienced
programmer to re-implement, but you do not appear to be an experienced
programmer, so I would suggest that you simply download kermit
or a file transfer program that is able to handle the z-modem protocol.
This is certainly a better general solution.
kermit for unix is free, but the official kermit program for Windows
is not. You can download a time-limited version of it (kermit95) from
http://www.columbia.edu/kermit/k95.html .


Or PPP, for which there is an opensource implementation. And today
rather wider recognition and support. I love(d) Kermit, but it just
isn't needed nearly as much today, and thus not as much known.

- David.Thompson1 at worldnet.att.ne t
Mar 20 '06 #9

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

Similar topics

21
6555
by: Dave | last post by:
After following Microsofts admonition to reformat my system before doing a final compilation of my app I got many warnings/errors upon compiling an rtf file created in word. I used the Help Workshop program: hcw.exe that's included with Visual Basic. This exact same file compiled perfectly with no notes, warnings or errors prior to reformatting my system. Prior to the reformatting, I copied the help.rtf file onto a CD and checked the box to...
9
4412
by: Tom | last post by:
A question for gui application programmers. . . I 've got some GUI programs, written in Python/wxPython, and I've got a help button and a help menu item. Also, I've got a compiled file made with the microsoft HTML workshop utility, lets call it c:\path\help.chm. My question is how do you launch it from the GUI? What logic do I put behind the "help" button, in other words. I thought it would be os.spawnv(os.P_DETACH,...
4
3354
by: Sarir Khamsi | last post by:
Is there a way to get help the way you get it from the Python interpreter (eg, 'help(dir)' gives help on the 'dir' command) in the module cmd.Cmd? I know how to add commands and help text to cmd.Cmd but I would also like to get the man-page-like help for classes and functions. Does anyone know how to do that? Thanks. Sarir
6
4349
by: wukexin | last post by:
Help me, good men. I find mang books that introduce bit "mang header files",they talk too bit,in fact it is my too fool, I don't learn it, I have do a test program, but I have no correct doing result in any way. Who can help me, I thank you very very much. list.cpp(main program) //-------------------------------------------------------------------------- - #pragma hdrstop #pragma argsused
3
3363
by: Colin J. Williams | last post by:
Python advertises some basic service: C:\Python24>python Python 2.4.1 (#65, Mar 30 2005, 09:13:57) on win32 Type "help", "copyright", "credits" or "license" for more information. >>> With numarray, help gives unhelpful responses:
7
5387
by: Corepaul | last post by:
Missing Help Files When I enter "recordset" as the keyword and search the Visual Basic Help index, I get many topics of interest in the resulting list. But there isn't any information available from clicking on many of the available topics (mostly methods but some properties are also unavailable). This same problem occurs with many, if not most, keywords. Is there any way I can activate these "missing" help topics? HELP!
5
3279
by: Steve | last post by:
I have written a help file (chm) for a DLL and referenced it using Help.ShowHelp My expectation is that a developer using my DLL would be able to access this help file during his development time using "F1" help within the VB IDE. Is this expectation achievable In trying to test my help file in the IDE, I have a solution with 2 projects: the DLL and a tester. VB does not look for my help file; instead, it looks for path to my source code...
8
3235
by: Mark | last post by:
I have loaded Visual Studio .net on my home computer and my laptop, but my home computer has an abbreviated help screen not 2% of the help on my laptop. All the settings look the same on both including search the internet for help, but the help is worthless. Any ideas?
1
6137
by: trunxnirvana007 | last post by:
'UPGRADE_WARNING: Array has a new behavior. Click for more: 'ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?keyword="9B7D5ADD-D8FE-4819-A36C-6DEDAF088CC7"' 'UPGRADE_WARNING: Couldn't resolve default property of object Label. Click for more: 'ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?keyword="6A50421D-15FE-4896-8A1B-2EC21E9037B2"' Label = New Object(){Box1, Box2, Box3, Box4, Box5, Box6, Box7, Box8, Box9, Box10, Box11,...
0
2889
by: hitencontractor | last post by:
I am working on .NET Version 2003 making an SDI application that calls MS Excel 2003. I added a menu item called "MyApp Help" in the end of the menu bar to show Help-> About. The application calls MS Excel, so the scenario is that I am supposed to see the Excel Menu bar, FILE EDIT VIEW INSERT ... HELP. I am able to see the menu bar, but in case of Help, I see the Help of Excel and help of my application, both as a submenu of help. ...
0
9618
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
10259
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
10101
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...
0
9906
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
8933
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
7456
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
5354
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...
0
5482
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
4007
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system

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.