VS 2008 Using Serialport On 2 Different Forms?
Aug 25, 2009I'm using one form to make contact with the serial port with the next
Imports System.IO.Ports
Imports Microsoft
Public Class Menu
[Code].....
I'm using one form to make contact with the serial port with the next
Imports System.IO.Ports
Imports Microsoft
Public Class Menu
[Code].....
I 'm a beginner and have a project that I'm using to turn lights on and off. I need to use separate forms for display on remote monitors. My problem is each form needs the same serial port open to work and the port won't open unless it's closed in the previous form. Using a module works for opening and closing the port, but only for one round. If I try to revisit a form I already accessed it doesn't work.
Public Sub sp1(byval SerialPort1)If Form2.SerialPort1.IsOpen = TrueThen Form1.SerialPort1.Close() If Form3.SerialPort1.IsOpen = TrueThen Form3.SerialPort1.Close() Form1.SerialPort1.Open() end sub
Public Sub sp2(byval SerialPort1) If Form1.SerialPort1.IsOpen = TrueThen Form1.SerialPort1.Close() If Form3.SerialPort1.IsOpen = TrueThen Form3.SerialPort1.Close() Form2.SerialPort1.Open() EndSub
Public Sub sp3(byval SerialPort1) If Form1.SerialPort1.IsOpen = TrueThen Form1.SerialPort1.Close() If Form2.SerialPort1.IsOpen = TrueThen Form3.SerialPort1.Close() Form2.SerialPort1.Open() EndSub
end Module
i want to receive data to my pc from external hardware but i don't know how to do it since i am new to vb.net. the code in vb.net to receive data using serial port rs232.
View 1 RepliesI have wrote this program (for PDA), to connect a PDA to the PC via RS232.It only works half way.
If I send anything from the pda to the pc, I receive data correctly.If I send anything from the pc, then the pda hangs up.Can anybody tell me what I'm doing wrong?
Also, how do I make sure the port on PDA is closed when quitting the application?
[Code]...
I am trying to access a printer via the serial port in VB Express 2008. I wrote a small prog with buttons on the form to exercise the escape codes in a Windows Vista 32 laptop with a USB to serial adapter. Only 3 codes worked, BEL, reset and a printer specific command. Also, when i try to receive data, it justs times out. So, I tried to move to a WinXP machine with real serial ports. The program now has an illegal argument exception and the message is to the effect that the name of the port for the property portName does not start with COM/com. Which is very puzzling because I did verify the portname and it is com1.Is this a known issue or am I doing something wrong? The form works on Vista but not in XP.
[Code]...
I am trying to send and receive data using the SerialPort component. I am sending data to an Texas Instruments MSP430 which simply echos the sent character. I wanted my VB solution to read characters from a file, send a single character, and wait until the echoed character is received before sending another.
I have been fairly successful thus far but I have run into a little catch. When I attempt to send large files (323505+ characters) my MSP430 just hangs there and will not receive any more characters. My VB app return to VS '08 with timeout errors (timeout set to 1 minute).
I wanted to post my VB code here to see if the problem is from my VB app. I will be posting this problem on the IT usergroup to sort out anything on the MCU end. Here is the pastbin of the data write and the data receive subs:[URl]..
My program has been running fine for months and still is, but I now have this warning, (which must have shown up since upgrading to VB2008 from 2005 a month ago).
It regards the serial port encoding setup and reads as follows -- serialport1.Encoding = encoding.GetEncoding(1252) 'for char > 127
Warning 1Access of shared member, constant member, enum member or nested type through an instance; qualifying expression will not be evaluated. Perhaps there was an update on this with 2008 and it's now redundant or something?
I want to use IO.ports.serialport to receive ASCII data from an instrument (A Luxmeter for those interested). So far, i've been unable to read any single byte from the instrument using the IO.ports.serialport.A terminal window shows the datastream just fine, and I've used MScommlib to read the data without problems. I just had other problems with the latter, so I thought I'd give this IO.ports.serialport a try.The code runs fine, no errors. It just doesn't receive anything.Bytestoread stays 0 forever.I distilled the code to it's bare essence. What am I missing? Is it something obvious, or did I completely misunderstand the whole concept? (Which is not unlikely..)I did check the obvious, of course: settings, baudrate, cable is connected, instrument is sending, etc.[code]
View 6 RepliesI was attempting to clean up my serial port example that is in the code bank. I had decided to use a modem, thinking that a lot of computers still had them. By using the loopback feature of the modem I am able to simulate / emulate various features of the serial port.All was going well, and then I got a Blue Screen with this error after running for 10 minutes or so:DRIVER_IRQL_NOT_LESS_OR_EQUALSTOP 0x000000d1 etc.I then went back to using my GPS receiver, which sends messages constantly to a serial port. This test ran for several hours(4). It received messages correctly during the entire test.I then created a new, not as complex, version and it also receives the Blue Screen. I have made sure that the modem drivers are up to date, searched for the error, etc. My gut is telling me that it is the modem driver. I have attached the project. This is the scaled back version, but it uses the same functionality.
View 7 RepliesI need to create some serial port controlls manually. My program reads through a config file, and it if comes across an entry called COMPORT then I need to create a contol to talk to this port. The entries in the ini file might be
COMPORT=COM1
COMPORT=COM3
COMPORT=COM7
So here is my problem! I'd like to create the variable control name with part of the com port number, so I can always refer back to it.
EG.
Dim strVar as sring = "COM1"
Dim CName+strVar As New System.IO.Ports.SerialPort
There is a problem in my project. It has a class with several properties. When I set the property, it send command to device through serialport. But the problem is when I get the property, it need to send request command to device, and device return value back. How can I update the property?
View 2 RepliesI have this sample code...
Private Sub DataReceived( _
ByVal sender As Object, _
ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) _
[code]....
this displays in a text box the received data from a serial port. And it works like a charm but the data received has custom start and end of line characters. A line begins with chr(&H2) and ends with chr(&H3). What i want is on the text box those characters to be hidden and the chr(&H3) to start a new line.
I have a program that reads data from a scanner via the serial port.This program works fine on Windows XP.We have a terminal server set up running Windows Server 2008.I run HyperTerminal on our test terminal, it connects and reads the scanner data fine through COM1.I run my app on that same test terminal and get nothing when I scan.My app connects to COM1 without errors and disconnects without errors.BUT, the DataRecieved event is NEVER getting fired.Neither is the ErrorReceived event.I have played with the Handshaking, with the RecievedBytesThreshhold and pretty much every setup setting I found.Set it up exactly like the settings on Hyperterminal.I have even tried starting a timer on a different thread to call ReadByte every second to try to KICK this thing into doing SOMETHING.Nothing has worked.
I have been trying to fix this for an entire day now.Added events to my class trying to see EVERYTHING that is going on. All I know is, it connects to the port and it disconnects from the port correctly but nothing happens in between.No data when I scan.No event fired at all between connecting to and disconnecting from the port.I have also downloaded other's simple serial communications applications.Nothing in .NET works.[code]
just wondering if it is possible to add a method to all forms in my project without having to do it on one form and Inherit all my other forms from that one
View 3 RepliesI am trying to read caller id from a internal modem. modem is caller id enable and it works in hyper terminal. but when i try from vb.net it only shows 'RING'. here is my full code
[Code]...
I am using VB 2005 and need to trap a serial port timeout. I use a standard try/catch block, but if no characters arrive the code still hangs at the ReadByte call. Here is the code:
Try
SerialPort.ReadTimeout = 200
' read timeout of 200 mSecs
thisByte = SerialPort.ReadByte()
[code]....
Recently while trying to help someone with an issue using USB SerialPort's I discovered sometheing interesting when the ports Handshake was set to RequestToSend. My setup COMx <---> BreakOutBox <---> COMy COMx and COMy are on the same PC. The breakout box is used to create a null modem, pins 2 & 3 crossed, pin 20 to pin 6.When the handshake was set to RequestToSend every Write resulted in Carrier Detect and Ring being raised. Is this just my adapter or are all USB SerialPorts like this?Serial Port Random Microsoft® Community Contributor 2011
View 2 Repliesi have a problem with trying to get 2 forms to close at different times using a timer on each of the 2 forms.
This is my form layout:
Quote:
frmMain
Frm1
Frm2
Frm1 and Frm2 are identical to each other. FrmMain has 2 buttons on it. One button to call Frm1 and the other to call Frm2.Frm1 and Frm2 each has a timer. It counts down to 0 and then does a .close(). However, if i pause between clicking the second button they both seem to always disappears at the same time.I would do something like this...
Click on the first button (showing the Frm1 form)
wait about 10 secs...Click on the second button (showing the Frm2 form)they both are shown on screen...hen they both disappear at the same time.... which shouldn't happen since i clicked the Frm2 box 10 seconds AFTER Frm1... So Frm1 should hide before Frm2 does...but it does not.
[code]....
Looking for serial port communication using ASP.NET 4.0. I have a cardwriter/reader from IDTECH which talks through a comport. Is there any way to accomplish with .net through the web.
I read things but most of the topics on speaking about .net 2.0 and I was not sure if they created something to handle this in .net 4.0
We have been debugging a problem with serial communications with an embedded device on 115200 baud, Even parity, 8 databits and 2 stopbits. The problem: a lot of extra 0x00 are sometimes received from the serialport.
1) We build a real basic sample program that only handles the data exchange. It was completely build according the serial-port-vb.doc from msdn. It was build in vb.net 2010. So this was the most basic setup possible on the PC side. This simple tool clearly shows the datareceived event spitting out extra bytes.
2) We used a scope to look at the hardware bits/levels. No problems / differences seen between good and bad messages. No extra bytes visible that the serialport event send to our programm.
3) We tapped the serial communication and received no wrong data on the tapping system but still on the .net tool. Again the serialport datareceived event gave us many extra 0x00 bytes.
So our only possible conclusion is that there is a problem in the serialport component from .net. My question: Are there any know issues? Can I get in contact with a microsoft engineer?
I want to send some data through a serialport (USB) permanently and got a problem once the USB interface crashes. Sometimes it just happens, but if I ask the PC "serialport2.isopen ()" I will get a TRUE, even though the USB cable was uplugged. How can I check if a connection is still available. CDHolding wasnt working either. I am using VB 2008 Express
View 7 Replieshow to use the SerialPort in Visual Basic Express?
I have this in the Serial Port Data Recieved event
Code:
SerialText = SerialText & SerialPort1.ReadChar
TextBox1.Text = SerialText
I get : Cross-thread operation not valid: Control 'TextBox1' accessed from a thread other than the thread it was created on. As soon as the event is triggered.
I'd like to display the recieved info in a textbox and transmitt info as well, but I don't know how...
i am coding a tool which is able to connect GPS devices over the IO.Ports.SerialPort function in .NET..Everything works fine, but to list all available COM interfaces it looks like: [code] its impossible to connect to a device which is called COM3°. If i simply try to connect manually to COM3 it works perfect. [code]
View 3 RepliesI have an application that requires several threads, otherwise the main UI thread would end up frozen.i am after a little advice as i have not really don alot of threaded applications.
First Question;
I have a thread which handles data coming in from the serial port( this wil become much more complicated), is it safe to use a synclock on the serialport object : -
[code]...
Im using VB express 2008 (compiled with .NET 3.5) to write a program that communicates with a USB device. The USB device is a communication class device and thus will emulate the usual rs232 serial port once attached to the PC. The USB device sends a fixed number of bytes and i have set the threshold received byte property to this value. I have run the program and it seems to read the USB device "correctly" but when i debug the code, i realise that the datareceived event of the serial port gets fired on the eventtype = EOF. I am using the Read function to read the bytes from the serial port and the Newline property is set to "" (but i thought that this is irrelevant if im not using ReadLine). When the datareceived event fires with EOF, the Read function blocks until one byte arrives, reads it and calls the function that processes the data. I went through the forum and realised that the EOF eventtype is no longer supported, is this true? I dont think that getting this eventtype is logical anyways in my case.
View 5 RepliesI'm trying to enable a timer within a SerialPort.PinChanged even is reached but the timer tick even never starts. Has anyone ever tried this? I am using vb.net 2008 express so I dont know if that is the issue or not.
[Code]....
I'm using the following to read a serial port. When run it displays the data correctly but stepping through the program I find that it loops through the serialdatarecieved event for each character of the port input rather than reading all of it. So _msg only equals one letter at a time. I'm trying to set a variable equal to the entire input stream but only get one character of it.The end goal is to capture all of the data available on the port when the event triggers so that this data can then be processed. I tried using the bytestoread function, which gets the correct number of bytes to read, and then looped through to read a byte at a time but that didn't seem to work as I expected either. It just kept reading the first byte.
Imports System.IO.Ports
Public Class CommTest
Dim WithEvents SerialPort As New SerialPort
[code]....
I am doing a sms project using VB .net to connect to my gsm modem via serialport. All the connection and everything was working great and I can send and receive sms. Then here come a problem, I need to send long sms more than 160 chars. I read and did some research and I know that I need to use the pdu and udh. I managed to understand slightly of the pdu packet but is still quite confuse on that part.
Anyone can briefly explain the exact way to do the concatented sms (long sms)?Another problem is how can I use vb to encode the data into pdu gsm 7bit data? Is there any built in functions or do i need to write them myself?
I am writing a program which detects a development board I designed which communicates with an FTDI chip. Right now my program scans any COM ports and generates a list, which the user will then choose from and connect with that device. The problem is that I want to isolate that list to only the devices which I designed. The FTDI has a unique manufacturer and device ID, but I only know how to access this data 'the old fashioned way' (i.e. through device manager).
What I would like to know how to do is determine the VID and PID of a COM port from VB, so I can dynamically get rid of any devices which do not meet the proper requirements and thus my list will only show the correct devices.
I'm working on application which uses SerialPort Control to send/receive commands to/from microcontroller.
Here is the basic
CODE:
I maybe missing something because the reaction of microcontroller very accidential! I mean, sometime it works from the first click and sometime from the third... I must make a number of clicks until it reacts back!