I'm fairly acquainted with VB but the underlying .Net and many of the controls and whatnot I'm not all that familiar with. Hence, I have a real hard time trying to come up with ways to solve certain problems. I figure the best way to start is try to get some general guidance and go from there.
I have an external electronic device that gathers data (no need for details here) and has an internal micro-controller that interfaces from the device to a USB port. I need to build a PC based program in VB 2010 that can get the data from the device and plot it on a graph...possibly a fairly customized graph. Let's assume there is already a driver for this device that sets up a COM port (pseudo-serial I guess it's called).
Now what part of the VB toolbox of methods, controls, objects etc (what's the terminology for that again?) should I be looking at to start such an application? I don't want specific code or anything like that but what areas in this "toolbox" should I be looking at to begin?
I am trying to plot a set of data using a function I have defined as an array: Private Sub calculate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles calculate.Click range(1) = min.Text For i = 2 To 100 [Code] ..... Range(i) I want to be my x values and fee(i) to be the y values. When I try to select range() and fee() as the x and y values for a series, I get an error because they are not of type double.
So I have a 2D array of data, specifically, one "Cv" value for every 10% increment. I have been able to get the Cv's plotted vs % open with the following method:
Private Sub btnPlot_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPlot.Click Dim tempString As String
[Code]....
I haven't yet looked into this, but if there's any way to also export this graph as an image into an excel spreadsheet, We will be creating several spec sheets as excel workbooks and we will need to be outputting standardized sheets, which is why I'm trying to make this an application instead of directly implementing the code in Excel with VBA.
I have a controller board that is built by us that sends strings to the serial port based on inputs that it receives. The app we are working on seems to be receiving the data fine but it is displaying it in an odd way and I'm sure it is a simple problem I am overlooking. Here is the incoming code so far:
Private Sub SecuritySerialPort_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SecuritySerialPort.DataReceived ReceivedText(SecuritySerialPort.ReadExisting()) 'Automatically called every time a data
Private Sub receive_data(ByVal sender As System.Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived Dim aBuffer(255) As Byte Do While SerialPort1.BytesToRead > 0
[code]....
Basically, what I am trying to do is everytime I receive data from the serial port, I turn that data into an array (aBuffer) and I then call another sub using that info.The problem I'm having is that everytime I receive data, the array only fills up to the first 8 bytes! This isn't a problem when I receive smaller packets of 6 bytes but anything else gets chopped off.
What is really frustrating is that it seems quite fickle. I've read somewhere that this happens because the computer is handling the bytes received faster than they are being put in the buffer?? Not really sure but if I put a couple of breakpoints during debug, sometimes the array fills up correctly... Note the maximum size of any one incoming message would be 255 bytes.
This is an amateur radio project. I have a TNC (modem) that receives a digital stream (AX.25) from my radio. The TNC decodes the AX.25 frames and translates them to KISS frames (the protocol used between the TNC and the PC, see documentation here: [URL] It sends the data as HEX values.
What I'm looking for on the serial stream is the beginning of a data frame marked by 0xC0 0x00 and ending with 0xC0. Should be easy. Using serialport.readbyte() I should get binary data that I can convert to hex and look for the beginning of a data frame and then convert the subsequent data to ascii, as it will be text from a chat session.
Just to try it out and see the raw data coming from the port, I use teraterm or realterm and capture the data and it's a mix of junk (control frames and what not) and valid text. When I display the same data in a text box in VB I get data that look like this:
I'm trying to pass a data packet from the serial data received event.The code can capture the data without any issues.I'm spinning my wheels on getting the data packet out of the thread for further processing.[code]
connected to my Arduino. Using the VB.NET (2010) GUI I request which LED I want on (via buttons) and the I2C device then sends a reply confirming which LED actually turned on (basic feedback). Ok, sounds great right? Here's where I get issues. Well when I try to read the serial data sent to VB and display the real-time stream on the GUI, a) I get a bit of a mess as an output (values are ok, just spewn across GUI) and b) when I select a new LED to turn on, the GUI data does not refresh to this change. The stream being sent from the Arduino is ok, I looked at the data in a serial monitor.
Public Class Form1 Dim ticktock As Integer Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
To send serial data from Arduino Mega 2560 to a VB.Net PGM, then the VB.NET pgm will read data then send to via FSUIPC (an Addin DLL) to ms flight simm 2004.OK that said here is the question: how can I write or phrase or construct the proper syntex needed to 1-limit the data sent,or in reading the data-limit the data read?I have enclosed the VB.NET code and the Arduino code. Please take a look. I am very new to both,but I try hard. all the code works but I get strange all most random data in VB. The FSUIPC end works OK, I can send to and receive from Ok.It's the VB pgm that gets the data wrong some of the time. say 8 out of 10 it is OK then button x will also turn on or off another check box then do what was aked. It seems that I am not clearing the receive buffer so I get a last chr sent before.I have tryed readline, readexisting,readbyte but I don't know how to phrase or construct any but the readline. I have tryed to flush the buffer in both codes but, well I am stuck. [code]
I have conquered the problem of the database however what i need is the serial port data sent to a database and outputted on screen however i keep getting cross thread errors ..
Imports System.Data.OleDb Imports System Imports System.ComponentModel Imports System.Threading
I'm trying to make a rs232 serial data logging program, that accepts a 12 bit hex RFID tagID from an RFID module. My end objective is to save this RFID tagID into a database and assigned to a person for a personnel management system.I had to use button3 to add the value of the variable 'msg' into textbox1 because I was getting the following error "Cross-thread operation not valid: Control 'TextBox1' accessed from a thread other than the thread it was created on". It is a temporary workaround.When I do press button3, I get the incomplete hex number, instead of "4C00A2C82A0C", I get "A2C82A0C", and sometimes I get random digits like 1,A,C etc etc.
Public Sub OpenPort() Try If SerialPort1.IsOpen Then SerialPort1.Close()
Im working on a HSD 32 bit data bus to serial converter via a microcontroller. Now first I want to make a sort of data sniffer to read the data bus (32Bit) .All on the controller side is working and the stream of bytes are coming in via RS232 as 4 bytes in HEX like FD,A5,45,8B . I already converted the bytes in Dec and ASCII to determine what is passed true the bus and how fast and stuff.. Now that is all correct and working very well if the LSB (least significant bit) of the 32 data bus is Data line 0 and the MSB (most significant bit) is Data line 31 but if that is not the case I need to invert the 32Bits (like as I would invert the connector on the bus) . How do I best do this using the 4 bytes I send from the micro controller.
Example:
(MSB) 01001000 01100101 01101100 01110000 (LSB) HEX= 48 65 6C 70 DEC= 72,101,108,112 ASCII= H E L P
i am a absolute beginner and i want to use vb to receive data from micro controller through serial port using rs232 standards, i found this code to receive the data serially, can any one tell me where should i paste this code, so that the data received will be displayed in message box.Private Sub DataReceived(ByVal sender As System.Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) HandlesSerialPort1.DataReceived
I'm currently working on a project where I am transmitting data from a comm device via the serial port and resorting the raw data (in binary) to its respective ascii values. The problem I'm facing is determining the most efficient method to accomplish my goal. Essentially, I have 68 bytes coming in, the first and second bytes represent the page and packet number and the data itself ranges from 3 to 64, the remaining for my checksum.
What I am needing to do is, grab 50 consecutive bytes per variable in my array, and that is where I'm confused. I have easily pulled my 3-64 bytes and stored that data to a string. I just don't know the most efficient method to accomplish my goal. Should I write directly to file all my data, as there are like 8 pages, of 128 packet data. [Code] I can capture the the first 50 by using a for-loop easily, but what would be the preferred method to track what data chunk I've taken? The more I think about it, I think I may just want to write to file, all my data, and then just take them back to back in 50 byte chunks. Is that the most efficient method?
I am using Visual Basic express to create a serial interface to a multi-room audio controller. I have started by creating a form that can connect to the controller and I can receive data from the Controller and display Zone status, volume etc in corresponding texts box thaks to help from Stanav and Tassa in my previous thread.
My next problem is to do with receiving lots of data from the serial port and my application getting out of sync. This is mainly caused by turning the volum control as each time it is turned a little bit the controller sends out the new status of the Zone being effected
eg ****Turning Volume knob on Zone 1*** Status returned from Controller: #Z01PWRON,SRC3,VOL05<CR>
I was writing a program on a web form which is reading a file and then plot the file as a 2d graph.
the file looks like
c1 number1 number2
[Code].....
where c1 c2and c3 is the header which the readfile stream should ignore and the total "number" numbers are decided by the user which can be a variable.
the graph will take the c1,c2,c3values as x-axis and the number values as y-axis.
how can I draw the graph from reading this file? can some one kind enough to show me some code?
I wanted to plot a graph for one of my application in VB.net. I want a Time (X-axis) Vs Temperature (Y-axis) graph, where:
1. X- Axis has vertical lines every 10 minutes. So there are 6 vertical lines between 1 hr. The labels on the Axis should be written at every hour even though the vertical lines are at every 10 minutes. (Eg: 10:00, 11:00, 12:00, 13:00, 14:00...)
2. Y-Axis should have horizontal lines every 10 degrees C. So there are 10 Horizontal lines between 100 degrees. The labels on the axis should be written at every 100 degrees (Eg: 0 deg C, 100, 200, 300...)
I have to send the user-input data to the serial port. From the serial port the Modbus controller reads the data in Modbus/RTU mode.Now consider the following:Private WithEvents sp as serialport Now when I send sp.Write "192" to the serial port, I was that the complete data go as one data packet. Instead what I find that when this data is sent to a hardware controller, I find that the serial port first transmits 1, then 9 and then 2. Because of this my modbus does not recognize this data and throws and error. I tried sending "12" and again i find that it goes as "1" and then "2". Is there any way to send the data as one data packet so that my modbus can read "192" as one data packet value and not as 3 data packets of 1, 9, and 2?
I am using Visual Basic express to create a serial interface to a multi-room audio controller. I have started by creating a form that can connect to the controller and I can type commands into a text box and have set up a button that sends that text to the serial port. This text is displayed in a big text box as well as the feed back from the serial port (multirom audio controller).
Here is an example of what I send and receive to and from the controller;
I send *Z01STATUS (query's the Zone 1 status of the controller)I then receive the data from the controller #Z01PWRON,SRC4,VOL99 (This tells me Zone 1 is on, Source 4 is selected and the volume is at level 99 I can easily create buttons to turn the zones on and off and control the unit. My problem is I want to make things change on my form coresponding to the data received. ie I want to display the current volume of each zone and whether thetay are on or off etc. How do I get the individual bits of data from the data received. IE how do I get the VOL99 to show 99 in a text box?
I have an global array of points that i want to plot in VB. say X and Y points, and typically they have values of +/-12000. Now I've not done graphics work for a long time and when I did, I used OpenGL with C. Now I need a GUI i'm using VB 2008. Firstly, what's the best method of rendering the array of points? should I use some port of OpenGL? GDI? or what?
Secondly, can I simply print to perhaps a Panel on hit of a button? Thirdly, do I have to place any line drwing code in an "OnPaint" event handler? Finally (for now) if my array represents points in a space much larger than the painting surface, how would I scale and scroll the final image within the the proposed Panel? I look forward to your advice.
I am a total beginner to software development, I have purchased a copy of Visual Studio 2008 and have been working through a self teach book on Visual Basic.NET. I have some ideas for applications that I want to develop and am in need of some pointers.
I want to plot graphical objects and standard lines and rectangles based on coordinate data that I have imported into an array from a tab delimited text file. I have some bitmap symbols that I have created and I want to plot these in my programme along with some labels and save the output as a bitmap file or other suitable image file.
I am having trouble finding any help in the online documentation and want know where I need to start. Do I plot the graphics directly onto a form or do I need to add them to a picture box? When I get this far how to I create the image file?
This is my first attempt at doing something in VB.net. I would like to be able to read a text file consisting of a column of data values and then pass the data as a variable to a sub that produces a line graph and updates it with each iteration through the loop. So far I have the code to read the file as well as some code that produces a line graph using hard coded values.
I am unsure how to call this sub from my loop such that I can pass that data value read from the file to the graphing sub.
How can I call the "PictureBox1_Paint" sub from my loop? How can I pass variables read from the data file to "PictureBox1_Paint" when I am calling it? Is there anything different that needs to be done if I want the graph to update with each iteration through the loop (for each data point)?
Public Class Form1 Private Sub Start_button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Start_button.Click
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ' Make the data array. Dim people(3) As Person people(0) = New Person("Ann", "Able") people(1) = New Person("Ben", "Baker") people(2) = New Person("Cindy", "Carruthers")
[CODE]...
Above is my code for vb.net to plotting the array list into datagridview. It is success to plotting, but why the datagridview unable to manual add row after plotting?
Currently, my circuit is connected to a power supply and is connected to the computer via a RS232 cable. Voltage level is extracted and the real-time voltage level is plotted (see attached image) and it will keep movingBut you will realise that there isnt any time shown on the X-axis. I would like to display time in such a way:Each long marker will represent 1 second and there are 4 long marker, which will represent up to 4 seconds.When the (5th second) voltage is sense and the real-time voltage is drawn, i would like the new time (5th second) to replace into the 1st marker postion, the (6th second) to replace the 2nd marker position, so on and so forth. The replacement will continue