Reading the Comm Port of PC
hi friends
We have a requirement to read the <b>Comm port</b> of the a local PC to get some data....so is that possible by any means from SAP r/3 system......
Look at the methods of the class; CL_GUI_FRONTEND_SERVICES in se24.
The method GET_IP_ADDRESS would get you the IP Address.
Regards,
Ravi
Similar Messages
-
How to open the comm ports?
Hi,
im using javacomm to detect my comm ports.i have two serial
and a parallel port (com1,com2 and LPT1) but it found no ports and throws
as follows,
found: javax.comm.CommPortEnumerator@e83912
found: 0 open ports
i placed .properties file in ..\jdk1.5.0\jre\lib
comm jar file in ..\jdk1.5.0\jre\lib\ext
and WIN32COM.DLL in ..jre\bin
am i doing right?
Here is the code,
import javax.comm.CommPortIdentifier;
import javax.comm.SerialPort;
import javax.comm.PortInUseException;
import java.util.Enumeration;
import java.util.Vector;
public class TestEnumeration {
public static void main(String args[]) {
Vector portslist = TestEnumeration.getAvailableSerialPorts();
System.out.println("found: "+portslist.size()+" open ports");
public static Vector getAvailableSerialPorts() {
CommPortIdentifier pId=null;
SerialPort sPort=null;
Enumeration pList=null;
boolean foundport=false;
pList = CommPortIdentifier.getPortIdentifiers();
String port=null;
Vector ports=new Vector();
if(!pList.hasMoreElements()) {
System.out.println("found: "+pList);
return ports;
while (pList.hasMoreElements()) {
pId = (CommPortIdentifier) pList.nextElement();
if (pId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
foundport=true;
try {
sPort = (SerialPort)pId.open("serialport", 1000);
} catch (PortInUseException e) {
foundport=false;
System.out.println(pId.getName()+ " is closed");
} finally {
if(sPort!=null) {
try { sPort.close(); } catch(Exception e) {}
if(foundport) {
ports.add(pId.getName());
System.out.println(pId.getName()+ " is open");
return ports;
please help me on how to open the comm ports..Try this, It workd for me. Before doing this make sure you have serial ports on you r computer by following these steps:
open "regedit"
go to "HKEY_LOCAL_MACHINE" > HARDWARE > DEVICEMAP
and check if there is any serial ports. If htere is any, then use following program to enumerate throught the ports:
class SimpleRead() {
portList = CommPortIdentifier.getPortIdentifiers();
while (portList.hasMoreElements()) {
portId = (CommPortIdentifier) portList.nextElement();
if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
if (portId.getName().equals(defaultPort)) {
System.out.println("Found port: "+defaultPort);
portFound = true;
SimpleRead reader = new SimpleRead();
if (!portFound) {
System.out.println("port " + defaultPort + " not found.");
} -
Hello everybody,
I am designing a general purpose block in system generator. I pass the user parameters to the block through masking it. Some user parameters can change the block configuration. The input port data type, width and rate can also affect the block configuration.
The problem is that these values (input port data type, width and rate) are subject to change. So I should read them dynamically, then change the block configuration through programming the "Initialization Commands" field. But unfortunately there is no straight way to read the input port information.
There are some methods in for example the "Black Box". these are:
input_width = this_block.port('din').width;
input_rate = this_block.port('din').rate;
But these methods are not applicable to a masked subsystem.
I have tried other ways also. You can find them below. None of them worked.
Does anybody know how can I solve this problem?
Other ways I tried:
1)
design_name([],[],[],'compile')
q=get_param(gcb,'PortHandles');
get_param(q.Inport,'CompiledPortDataType')
get_param(q.Inport,'CompiledPortWidth')
get_param(q.Inport,'CompiledPortDimensions')
design_name([],[],[],'term')
2)
ssGetInputPortDataType
3)
ts = Simulink.Block.getSampleTimes([gcb '/Input'])
Today we rely on Simulink to perform parameterization of your designs in two ways:
Parameterizable Subsystems and Blocks : Parameters themselves can be MATLAB expressions that need to be evaluated for which we need the MATLAB interpreter
The very useful Rate and Type propagation or Simulink compilation that allows us to specify types & rates in one location that gets systematically propagated to all.
To truly make the HDL Netlist that is generated from SysGen parameterizable, we would have to implement some of this capability in the HDL netlist itself by:
Using Generics(VHDL) or Parameters(Verilog) - We would have to capture the bit width(type) propagation through levels of hierarchies and finally parameterize the IP itself based on this value
Since IP itself does not have this capability through generics, we would have to package a separate tcl script that updates the IP parameterization appropriately in response to top level parameters(or GUI parameters)
Interpreting MATLAB expressions and translating them into VHDL/Verilog expressions (alternatively tcl expressions of IP). In simulink, mask parameters can be passed from one level to the next. Also parameterization of a block can be composed of Matlab expressions using variables from ancestor masks & the MATLAB interpreter – so we will need to somehow capture that as well.
-
Hello,
I am working with LabView 7.0 and with Windows 98. I want to read the
parallel port, but I don't get it. I am using the I Saw In port.Vi but
I don´t read anything, but however with the function Out Port.vi if
that get
to write in the port. Is somebody able to throw a hand?
Thank youHi,
Hope this gives some light to your problem:
http://digital.ni.com/public.nsf/3efedde4322fef19862567740067f3cc/c80752c53094c296862565f3007ac765?O...
Regards,
Jaime Cabrera
Ni Applications Engineering Spain
Regards,
Jaime Cabrera
NI Applications Engineering Spain -
Reading the same port on the same machine
Hello,
i'm working on DatagramSocket to broadcast DatagramPacket (IP 192.168.xxx.255) and a fixed num port. The problem is that I can't have 2 threads that read (datagramSocket.read) on the same port, on the same machine.
How can I perform my tests ?
java.net.BindException: Address already in use
at java.net.PlainDatagramSocketImpl.bind(Native Method)
at java.net.DatagramSocket.bind(DatagramSocket.java:368)
at java.net.DatagramSocket.<init>(DatagramSocket.java:210)
at java.net.DatagramSocket.<init>(DatagramSocket.java:261)
at java.net.DatagramSocket.<init>(DatagramSocket.java:234)Well, the short answer is that you can't.... at least I've never heard of a way how. Basically, when an application requests a port number, it basically owns that port number until it gives it up. You do this when you create the DatagramSocket. Each DatagramSocket is its own request, and therefore must have an unique identifying port. Otherwise, how would your operating system know who to give the data to when it receives a packet on your machine for port XXXX? Also, it would be a secuirity problem if other applications could listen on the same port as you use for other things like surfing the web, making online purchases, email.
However, what you could do is have one owner of the DatagramSocket... and share it among the other threads. When that owner receives a packet, it can notify the other threads it received a packet and pass the data to each one. Set it up something like how listeners work. Also, if you want it to span processes, you could use RMI or pass the data through other deined network connections between the processes.
Does that make sense? :) -
Problems reading the serial port with labview 5.1.
I open the example serial.vi , I select write to serial port, run the programm, I don`t have any problem. But when I select read serial port, I get the error code 16392and hex code error x4008. I need to know what can I do? Thanks a lot
Any time you get an error in LV you can right click on the error cluster indicator and do a "Explain Error".
If you do this for the error code you reported, the explanation says that it was a framing error.
In serial communications, a framing error indicates that the hardware was not able to detect a start bit, data then the stop bits that comprise a frame.
This prompts me to suggest that you check you port setting on the serial port. You want to make sure you are setting the port for the correct;
Number of start/stop bits,
Baud rate
data bits
parity (just for good measure)
and hardware handshaking.
I hope this helps,
Ben
Ben Rayner
I am currently active on.. MainStream Preppers
Rayner's Ridge is under construction -
How can I autoindexi​ng data from vi that read the serial port (CODE)
Hello. I´m working in a proyect in the company, the proyect consist in read two incremental encoders for the inspection of automotors supension. I have a Digital Read Out System that read the 2 linear encoders, the DRO it has a serial RS-232 interface, i can read the data from the DRO to my computer, but now, I want to storage the information in Arrays (for autoindexing) for then make a graphic, If you want check the program, and if you tell me information, or a example code thanks for yor help.
P.D. Only if the data is diferent is sotraged. (I have LabVIEW 5.1.1)
Atn. Ing. Jorge Cardozo. San Luis Rassini Corporation. Piedras Negras Coahuila Mexico.
Thank you for your help.
Attachments:
KA-COUNTER (Comparacion).vi 77 KBhi there
to collect scalar data in an array you can use a so called "Shift register". To display the history of scalar data you can use a Waveform Chart (not a "Graph", a "Chart"). See attachments. because i can't save the vi as 5.1 i appended some screenshots of the front panel and the block diagramm.
Best regards
chris
CL(A)Dly bending G-Force with LabVIEW
famous last words: "oh my god, it is full of stars!"
Attachments:
KA_Counter_BD.JPG 122 KB
KA_Counter_FP.JPG 86 KB -
Accessing RS232 Port (Comm Port) from Applet
I have an interesting "problem". I would like to create an applet that allows me to read the Comm port of the client machine but obviously I get a security exception when I try to do this. Firstly is this possible (I know it can be done from an application)? If so, how would I go about doing it?
Thanks,
Rishiyou need to install the jre, and place the win32.dll at JavaSoft\JRE\1.3.1_06\bin, that properties file place at JavaSoft\JRE\1.3.1_06\lib, comm.jar at JavaSoft\JRE\1.3.1_06\lib\ext\
and in ur code try to use it to open ur com port
public String test() {
String drivername = "com.sun.comm.Win32Driver";
try
CommDriver driver = (CommDriver) Class.forName(drivername).newInstance(); driver.initialize();
catch (Throwable th)
{* Discard it */}
drivername = "javax.comm.*";
try
CommDriver driver = (CommDriver) Class.forName(drivername).newInstance(); driver.initialize();
catch (Throwable th)
{* Discard it */}
portList = CommPortIdentifier.getPortIdentifiers();
while (portList.hasMoreElements()) {
portId = (CommPortIdentifier) portList.nextElement();
if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
if (portId.getName().equals("COM2")) {
//if (portId.getName().equals("/dev/term/a")) {
try {
serialPort = (SerialPort)
portId.open("SimpleWriteApp", 2000);
} catch (PortInUseException e) {}
try {
outputStream = serialPort.getOutputStream();
} catch (IOException e) {}
try {
serialPort.setSerialPortParams(9600,
SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
} catch (UnsupportedCommOperationException e) {}
int i=0;
while(true)
try {
messageString="hi";
System.out.println(i++);
outputStream.write(messageString.getBytes());
} catch (IOException e)
System.out.println(e);
messageString=String.valueOf(e);
return messageString;
and yet u need to signed the applet
1. Compile the applet
2. Create a JAR file
3. Generate Keys
4. Sign the JAR file
5. Export the Public Key Certificate
6. Import the Certificate as a Trusted Certificate
7. Create the policy file
8. Run the applet
Susan
Susan bundles the applet executable in a JAR file, signs the JAR file, and exports the public key certificate.
1. Compile the Applet
In her working directory, Susan uses the javac command to compile the SignedAppletDemo.java class. The output from the javac command is the SignedAppletDemo.class.
javac SignedAppletDemo.java
2. Make a JAR File
Susan then makes the compiled SignedAppletDemo.class file into a JAR file. The -cvf option to the jar command creates a new archive (c), using verbose mode (v), and specifies the archive file name (f). The archive file name is SignedApplet.jar.
jar cvf SignedApplet.jar SignedAppletDemo.class
3. Generate Keys
Susan creates a keystore database named susanstore that has an entry for a newly generated public and private key pair with the public key in a certificate. A JAR file is signed with the private key of the creator of the JAR file and the signature is verified by the recipient of the JAR file with the public key in the pair. The certificate is a statement from the owner of the private key that the public key in the pair has a particular value so the person using the public key can be assured the public key is authentic. Public and private keys must already exist in the keystore database before jarsigner can be used to sign or verify the signature on a JAR file.
In her working directory, Susan creates a keystore database and generates the keys:
keytool -genkey -alias signFiles -keystore susanstore -keypass kpi135 -dname "cn=jones" -storepass ab987c
This keytool -genkey command invocation generates a key pair that is identified by the alias signFiles. Subsequent keytool command invocations use this alias and the key password (-keypass kpi135) to access the private key in the generated pair.
The generated key pair is stored in a keystore database called susanstore (-keystore susanstore) in the current directory, and accessed with the susanstore password (-storepass ab987c).
The -dname "cn=jones" option specifies an X.500 Distinguished Name with a commonName (cn) value. X.500 Distinguished Names identify entities for X.509 certificates.
You can view all keytool options and parameters by typing:
keytool -help
4. Sign the JAR File
JAR Signer is a command line tool for signing and verifying the signature on JAR files. In her working directory, Susan uses jarsigner to make a signed copy of the SignedApplet.jar file.
jarsigner -keystore susanstore -storepass ab987c -keypass kpi135 -signedjar SSignedApplet.jar SignedApplet.jar signFiles
The -storepass ab987c and -keystore susanstore options specify the keystore database and password where the private key for signing the JAR file is stored. The -keypass kpi135 option is the password to the private key, SSignedApplet.jar is the name of the signed JAR file, and signFiles is the alias to the private key. jarsigner extracts the certificate from the keystore whose entry is signFiles and attaches it to the generated signature of the signed JAR file.
5. Export the Public Key Certificate
The public key certificate is sent with the JAR file to the whoever is going to use the applet. That person uses the certificate to authenticate the signature on the JAR file. To send a certificate, you have to first export it.
The -storepass ab987c and -keystore susanstore options specify the keystore database and password where the private key for signing the JAR file is stored. The -keypass kpi135 option is the password to the private key, SSignedApplet.jar is the name of the signed JAR file, and signFiles is the alias to the private key. jarsigner extracts the certificate from the keystore whose entry is signFiles and attaches it to the generated signature of the signed JAR file.
5: Export the Public Key Certificate
The public key certificate is sent with the JAR file to the whoever is going to use the applet. That person uses the certificate to authenticate the signature on the JAR file. To send a certificate, you have to first export it.
In her working directory, Susan uses keytool to copy the certificate from susanstore to a file named SusanJones.cer as follows:
keytool -export -keystore susanstore -storepass ab987c -alias signFiles -file SusanJones.cer
Ray
Ray receives the JAR file from Susan, imports the certificate, creates a policy file granting the applet access, and runs the applet.
6. Import Certificate as a Trusted Certificate
Ray has received SSignedApplet.jar and SusanJones.cer from Susan. He puts them in his home directory. Ray must now create a keystore database (raystore) and import the certificate into it. Ray uses keytool in his home directory /home/ray to import the certificate:
keytool -import -alias susan -file SusanJones.cer -keystore raystore -storepass abcdefgh
7. Create the Policy File
The policy file grants the SSignedApplet.jar file signed by the alias susan permission to create newfile (and no other file) in the user's home directory.
Ray creates the policy file in his home directory using either policytool or an ASCII editor.
keystore "/home/ray/raystore";
// A sample policy file that lets a JavaTM program
// create newfile in user's home directory
// Satya N Dodda
grant SignedBy "susan"
permission java.security.AllPermission;
8. Run the Applet in Applet Viewer
Applet Viewer connects to the HTML documents and resources specified in the call to appletviewer, and displays the applet in its own window. To run the example, Ray copies the signed JAR file and HTML file to /home/aURL/public_html and invokes Applet viewer from his home directory as follows:
Html code :
</body>
</html>
<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
width="600" height="400" align="middle"
codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,1,2">
<PARAM NAME="code" VALUE="SignedAppletDemo.class">
<PARAM NAME="archive" VALUE="SSignedApplet.jar">
<PARAM NAME="type" VALUE="application/x-java-applet;version=1.3">
</OBJECT>
</body>
</html>
appletviewer -J-Djava.security.policy=Write.jp
http://aURL.com/SignedApplet.html
Note: Type everything on one line and put a space after Write.jp
The -J-Djava.security.policy=Write.jp option tells Applet Viewer to run the applet referenced in the SignedApplet.html file with the Write.jp policy file.
Note: The Policy file can be stored on a server and specified in the appletviewer invocation as a URL.
9. Run the Applet in Browser
Download JRE 1.3 from Javasoft
good luck! [email protected]
i already give u many tips, i use 2 weeks to try this to success, hopw that u understand that, a result of success is not important, the process of how to get things done is most usefull! -
Identifying a comm port using java communication API
HI ALL,
i'm using the communication API to detect the comm port to which my modem is attached.
i say CommPortIdentifier c = CommPortIdentifier.getPortIdentifier("COM3");
then i SOP(c.getName())
i get an exception saying noSuchPortException
i've put the javax.comm.properties file in jdk/lib but to no avail.
i also have a win32com.dll file that is there inside lib.
but this hasn't helped. Now the properties file has a driver mentioned. do i have 2 download that driver or does it come with the OS (i've no idea)
i would be helpful if anybody could help me out with this problem.Try putting tha javax.comm.properties file in you <java>/jre/lib folder as well... It worked for me !
-
How to read the ParallelPort in windows
When I read the port ,the unsupportedCommOperationException is throwed out.
I must read the port in the window,I know the comm.jar for window from sun has a bug,but I have to use it ,please tell me ,thanks
[email protected]Have you tried reading the parallel port with any other application ?
Are you sure the parallel port is set up under Windows ?
Best to rule out the basic problems first !
Ps. I wouldn't give out your e-mail so freely, spammers may trawl through the forums scanning for e-mail addresses....
regards,
Owen -
Function for reading from serial port
Hi experts,
We are trying to read data from the serial port with the following function we got from internet.
The problem is when creating the object with the sentence CREATE OBJECT o_obj '"MSCOMMLib.MSComm.1"'.
This returns a sy-subrc = 2 and shows the exception NO_CREATE_OBJECT.
We already copied the file MSCOMM32.OCX in c:\windows\system32 and we successfuly registered it, with regsvr32.exe.
We tried it with Windows XP and Vista.
Anybody has any idea?
Thanks in advance
FUNCTION ZSERIALCOM.
""Interfase local
*" IMPORTING
*" REFERENCE(MODE) TYPE I DEFAULT 0
*" REFERENCE(COMMPORT) TYPE I DEFAULT 1
*" REFERENCE(SETTINGS) TYPE C DEFAULT '2400,N,8,1'
*" REFERENCE(OUTPUT) TYPE C OPTIONAL
*" EXPORTING
*" REFERENCE(INPUT) TYPE C
*" EXCEPTIONS
*" NO_CREATE_OBJECT
TYPE-POOLS: sabc.
INCLUDE ole2incl.
PERFORM init.
PERFORM open_port USING commport settings.
IF mode = 0.
PERFORM read_port
CHANGING input.
ENDIF.
IF mode = 1.
PERFORM write_port
USING output
CHANGING input.
ENDIF.
PERFORM final.
ENDFUNCTION.
DATA: o_obj TYPE ole2_object.
*& Form Init
text
--> p1 text
<-- p2 text
FORM init.
DATA:
wa_repid LIKE sy-repid.
wa_repid = sy-repid.
CALL FUNCTION 'AUTHORITY_CHECK_OLE'
EXPORTING
program = wa_repid
activity = sabc_act_call
application = 'MSCOMMLib.MSComm.1'
EXCEPTIONS
no_authority = 1
activity_unknown = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CREATE OBJECT o_obj '"MSCOMMLib.MSComm.1"'.
IF sy-subrc <> 0.
RAISE no_create_object.
ENDIF.
ENDFORM. " Init
FORM open_port *
--> COMMPORT *
--> SETTINGS *
FORM open_port USING commport settings.
SET PROPERTY OF o_obj 'CommPort' = commport.
SET PROPERTY OF o_obj 'Settings' = settings.
SET PROPERTY OF o_obj 'InputLen' = 0.
SET PROPERTY OF o_obj 'PortOpen' = 1.
ENDFORM. "open_port
FORM read_port *
--> INPUT *
FORM read_port
CHANGING input.
DATA:
wa_buffer TYPE i.
DO 10 TIMES.
GET PROPERTY OF o_obj 'InBufferCount' = wa_buffer.
IF wa_buffer > 0.
GET PROPERTY OF o_obj 'Input' = input.
EXIT.
ENDIF.
ENDDO.
ENDFORM. " read_port
FORM write_port *
--> OUTPUT *
FORM write_port
USING output
CHANGING input.
DATA:
wa_buffer TYPE i.
SET PROPERTY OF o_obj 'Output' = output.
DO 10 TIMES.
GET PROPERTY OF o_obj 'InBufferCount' = wa_buffer.
IF wa_buffer > 0.
GET PROPERTY OF o_obj 'Input' = input.
EXIT.
ENDIF.
ENDDO.
ENDFORM.
*& Form final
text
--> p1 text
<-- p2 text
FORM final.
SET PROPERTY OF o_obj 'PortOpen' = 0.
FREE OBJECT o_obj.
ENDFORM. " finalbligwHi ,
I want to read value form weigh bridge through COMM port. I have developed the FM and done the setting as mentioned in the below link
Read COMM port using ABAP w/o third party software
but while executing the FM independently I am able to get the value from the COMM port,but when I call the FM from a program I am not able to get the output value from the FM.I am calling the FM from the report program.please find the code below.
report test.
data : lv_input TYPE c.
CALL FUNCTION 'ZFM_WEIGHINTERFACE'
EXPORTING
MODE = 0
COMMPORT = 1
SETTINGS = '1200,N,8,1'
OUTPUT = ''
IMPORTING
INPUT = lv_input
EXCEPTIONS
NO_CREATE_OBJECT = 1
OTHERS = 2
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
if I execute the FM independently the output is getting perfectly.but while calling from a program i am facing the issue..
any suggestion is appreciated.
Thanks
Vivek -
i'm trying to send an sms thru a serial port but while i'm sending an sms if i recieve one then the message i'm trying to send gets clubbed with the msg that being sent. is there a way to block the comm port while this happens?
plz help me outi'm using java communication API. jdk1.2.2
i've a java file XYZ that listens to the comm port using javax.comm.SerialPortEventListener.
i've 2 functions
a) one that recieves a messgae, processes the message and puts it in a database
b)another one that sends the processed message using AT commmands
i've a another java file ABC that continously reads the database,picks the message to be sent and calls the method in XYZ to send the message.
Now the problem is while sending this message if i recieve another messgae, then the actual sending never happens.
is there a method whereby i can block the comm port from recieving a messgae while a messgae is being sent -
Select serial comm port in sub vi during run-time
Hi, would like to be able to select the comm port (serial RS232) in sub vi to use in main vi during run time. How can I do this? Have tried and failed, for on startup an error occurs because I have not selected a port yet. An example would be invaluable! Thanks alot, Madri
Hi Madri !
What you could do is to intercept the com errors, and open a configuration vi either if there is an init error or if the user has pressed a "Change port" boollean (or menu...). Do not forget to close the previously opened serial port, and to open/init the new one. I have attached a small example of this idea.
Of course com errors can have various origins, and do not require always to change the serial port. So, you have some additional work to do.
Hope this helps
CC
Chilly Charly (aka CC)
E-List Master - Kudos glutton - Press the yellow button on the left...
Attachments:
Select_port.vi.zip 12 KB
Com_with_serial_init_vi.vi.zip 13 KB -
How to unbundling binary structure coming through the serial port
Hi to all
I have a board that is transmitting a binary stream. This stream is a structure repeated constantly ... the payload of this structure looks like this
I have no problem reading the serial port and disaplying ASCII data but this is not my application.
ANALOG_COUNT is (2)
typedef struct
uint16_t light;
float TempAmbient;
float TempTarget;
uint16_t ADC[ANALOG_COUNT];
int16_t AccX;
int16_t AccY;
int16_t AccZ;
}StreamContext_t
The idea is for me to, once I get the 20 bytes that comprise the strcture I want to brake it into its elements to feed it to graphs or what ever.
Thanks
Alejandro
Solved!
Go to Solution.You are still making life to difficult. Try this. It is much simpler to understand and it will work correctly. Ok, there may be some debugging.
There are only two ways to tell somebody thanks: Kudos and Marked Solutions
Unofficial Forum Rules and Guidelines
Attachments:
Start.vi 18 KB -
MEASURING FORCE ON BALANCE USING AN ELECTRONIC BALANCE FROM THE SERIAL PORT
Hi,
I am trying to measure FORCE using an electronic BALANCE from the serial port. My measurements are strange! The BALANCE sometimes give ZERO reading! Is it because of the sample rate, baud rate etc? I have attached the readings concerned.
Attachments:
databalance.doc 144 KBI think your problem is due to the way you read the weight :
1/ask the balance to send the data
2/oversee the byte number on the serial port until it is constant
3/read the bytes received
4/convert to number
During step 2, you compare the bytes at serial port with the previous value. So far, you have been very lucky to be able to read something : the answer here is always ZERO since the readings occur BEFORE the balance has been able to send anything! means that your loop stops immediately (if you are not convinced, jujst add an indicator to display the loop index. However, since you added a wait (0.8 s), when going to step 3, the balance has had some time to send something. Here, you should not have read again the number of bytes at serial port, but that unwillingly corrects the previous error and you can read most of the received data...
You should modify completely your algorithm. Usually, a balance send the weight as a string with some terminator (RC or LF). Accordingly, the algorithm should be :
1/ask the balance to send the data
2/read the serial port, concatenating the received chars until a terminator char is received or a timeout has occured
3/convert to number
CC
Chilly Charly (aka CC)
E-List Master - Kudos glutton - Press the yellow button on the left...
Maybe you are looking for
-
My hd makes clicking noises...
I just got the 30GB iPod video yesterday and I noticed at the start and finish of a video, and occasionally while playing music, the HD makes quite obvious clicking noises. The reason I'm worried is because I though HD's only make the noise of starti
-
Ora-02084 : database name is missing a component
hai all, i am a newbee to oracle. i am struggling to create a database, any help would be highly appreciated. i have installed Oracle 9i on a RH8.0 system. but while creating database through DBCA, i am getting the error message, "ORA -02084:Oracle d
-
How can I save an EXE front panel image to a file?
The methods to save a VI front panel image to a file don't work on executable applications. How can I save an EXE front panel image to a file? (LabVIEW 6.1)
-
I want to transfer photoshop elements 6 from my old computer to my new computer. I have the serial number. How do I do this?
-
I have an MBP with a 500GB 10.6 on it and have been running Leopard on a FW drive to boot when I have to run apps in 10.5. I would like to know if I can partition my current drive without having to reformat it? I would like to put Leopard on a partit