How to implement reading data from a mat file on a cRIO?
Hi all!
I am not even sure, this is plausible, but I'd rather ask before i start complicating. So far, I have not found any helpful info about reading in data to a RT device from a file (kind of a simulation test - the data is simulated).
I have the MatLab plugin that allows the data storage read a MAT file, which has a number of colums representing different signals and lines representing the samples at a given time (based on the sample time - each sample time has it's own line of signal data).
I have no idea of how to implement this to cRIO.
The idea is:
I have some algorithms that run on the RIO controller in a timed loop. As the inputs to these algorithms, i would need to acces each of the columns values in the line, that corresponds to the sample time (kind of a time series - without the actual times written).
I am fairly new to RT and LV development, so any help would be much appreciated.
Thanks,
Luka
Solved!
Go to Solution.
Hi Luka!
MAT file support in LabVIEW is handled by DataPlugins. Here you can find the MATLAb plugin:
http://zone.ni.com/devzone/cda/epd/p/id/4178
And here you can find information on how to use DataPlugins to read or write files of a certain format:
http://www.ni.com/white-paper/11951/en
There is also an open-source project that addresses the problem, you can find it at
http://matio-labview.sourceforge.net/
Unfortunately, RT systems are not supported by DataPlugins, so fist you'll have to write a VI on the Host computer to convert your files to a usable format (I suggest TMDS for compactness and ease of use), and the work on the converted files in the cRIO VI. If you have other questions about DataPlugins or anything else, please get back to me.
Best regards:
Andrew Valko
National Instruments
Andrew Valko
National Instruments Hungary
Similar Messages
-
How do you read data from a text file into a JTextArea?
I'm working on a blogging program and I need to add data from a text file named messages.txt into a JTextArea named messages. How do I go about doing this?
Student_Coder wrote:
1) Read the file messages.txt into a String
2) Initialize messages with the String as the textSwing text components are designed to use Unix-style linefeeds (\n) as line separators. If the text file happens to use a different style, like DOS's carriage-return+linefeed (\r\n), it needs to be converted. The read() method does that, and it saves the info about the line separator style in the Document so the write() method can re-convert it.
lethalwire wrote:
They have 2 different ways of importing documents in this link:
http://java.sun.com/docs/books/tutorial/uiswing/components/editorpane.html
Neither of those methods applies to JTextAreas. -
Is it possible to read data from MATLAB *.mat file using LabVIEW?
I have *.mat file from Matlab with some data. Does anybody know how to extract them from this file. I need to know the file format.
Oleg Chutko.The Mathworks site is pretty good about having documentation for the formats of their file types. I recommend looking there for the format.
-
Help! How to read data from an Excel file?
Hi,
I need to read data from an Excel file that may contain more then one table in a sheet. How can I read them?
I would be eternally grateful to anyone who can give me any information.Did you try POI from Apache?
http://jakarta.apache.org/poi/index.html -
Need to read data from a text file
I need to read data from a text file and create my own hash table out of it. I'm not allowed to use the built in Java class, so how would I go implementing my own reading method and hash table class?
It's not possible to read from a file without using classes from the core API*. You'll have to get clarification from your instructor as to which classes are and are not allowed.
[http://java.sun.com/docs/books/tutorial/essential/io/]
*Unless you write a bunch of JNI code to replicate what the java.io classes are doing. -
View Object to read data from a java file
Hi,
I am using JDeveloper 11.1.1.4 and ADF-BC in my application.
For one of my view objects , I want the data to be read from a java file which exposes some method to return a collection.
I cannot use a static view object in this case.
Please suggest the best way to implement this requirement.Basically build a view object that should read data from a java file.
Thanks,
PraveenDepending on your use case you can either use a programmatic VO or directly expose the JV class as a data control.
http://docs.oracle.com/cd/E18941_01/tutorials/jdtut_11r2_36/jdtut_11r2_36.html -
Read data from a text file, one line at a time.
I need to read data from a text file, and display each line in a String Indicator on Front Panel. It displays each line, but I get Error 4, End Of Line, unless I enter an extra line of data in the file that I don't need. I tried Read From Text File.vi, made by Nat Instr, and it gave the same error.
The Read from Text File.vi reads data from a text file line by line until the user stops the VI manually with the Stop button on the front panel, or until an error (such as "Error 4, End of file") occurs. If an error occurs, the Simple Error Handler.vi pops up a dialog that tells you which error occurred.
The Read from Text File.vi uses a while loop, but if you knew how many lines you wanted to read, you could replace the while loop with a for loop set to read that many lines from the file.
If you need something more dynamic because the number of lines in your files vary, then you could change the code of the Read from Text File.vi to the expect "Error 4, End of file" and handle it appropriately. This would require unbundling the error cluster that comes fro
m the Read File function with the Unbundle By Name function, so that you can expose the individual error "status" and error "code" values stored in the cluster. If the value of the error "code" is 4, then you can change the error "status" from true to false, and you can rebundle the cluster with the Bundle by Name function. Setting the error "status" to false instructs the Simple Error Handler to ignore the error. Otherwise, pass the original error cluster to the Simple Error Handler.vi, so that you can see what the error is.
Of course, if you're not interested in what the errors are, you could just remove the Simple Error Handler.vi, but then you wouldn't see any error messages.
Best of Luck,
Dieter
Dieter Schweiss
Applications Engineer
National Instruments -
hey guys
i installed the sqlite and sqlite-net as requested in other answers i found, changed to x86, and add the .db3 file in my project.
but the problem is how to retrive the data that already in the file( i am not creating any table or data in the app, just read)
all the answer i found is to create a table first and then read the table, i tried to skip the step of creating a table, and read from the table directly, but failed with " no such table", by the way, i set the property of the .db3 file as "content",
"copy if newer"
can anyone please help? i appreciate that !Hello,
From your description, you want to read data from available sqlite file. When you add the sqlite file into your project, you need to change the sqlite file build action to content. After deploying to device, the sqlite file is located in installation folder,
you need to copy that file into storage folder before reading data. Please try the following code snippets.
private async void Button_Click_9(object sender, RoutedEventArgs e)
//check if file exists in storage folder, and then copy to local storage
bool flag = await FileExistsAsync("Data.db3");
if (!flag)
var folder = await Package.Current.InstalledLocation.GetFileAsync("Data.db3");
await folder.CopyAsync(Windows.Storage.ApplicationData.Current.LocalFolder);
// open sqlite and read data
public async Task<bool> FileExistsAsync(string fileName)
try
await Windows.Storage.ApplicationData.Current.LocalFolder.GetFileAsync(fileName);
return true;
catch (FileNotFoundException)
return false;
Regards,
We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place. Click HERE to participate
the survey. -
Read data from a log file to flex textarea while deploying
Hi,
I am new to flex. I am able to read data from a log file that placed in C drive and able to write that data into flex textarea, but I am unable to read the same file while it is deployed into weblogic sever.
Could anyone please tell me how to solve this problem.
Thanks,
Sri.Do you have it trying to read that same file on your C drive or is the file actually deployed somewhere on the server?
-
Reading data from an excel file
Hi,
I want to read data from the excel file and display it in
jsp page. Iam getting the following error:
[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con =
DriverManager.getConnection("jdbc:odbc:mydsn","","");
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("select * from [holidays$]");
Here i have created the dsn with the name "mydsn". I have the
following data in the mydsn.dsn file:
[ODBC]
DRIVER=Microsoft Excel Driver (*.xls)
UID=admin
UserCommitSync=Yes
Threads=3
SafeTransactions=0
ReadOnly=1
PageTimeout=5
MaxScanRows=8
MaxBufferSize=2048
FIL=excel 8.0
DriverId=790
DefaultDir=D:\WorkSpace\Projects\VINET\devl\webroot\jsp
DBQ=D:\WorkSpace\Projects\VINET\devl\webroot\jsp\list_of_holidays_2003.xls
thanks in advance
phani.You might want to look at the POI project (an open source Jakarta sub-project) that allows you to create/modify/read excel files via Java code. That might be more flexible and easier than what you're currently trying to do.
Cheers -
GUI_UPLOAD to read data from an Excel File
Hi Folks,
I'm using FM GUI_UPLOAD to read data from an Excel File. But all I see in the table returned is 1 row with garbage values (special chacaters). Excel Workbook has proper data in the sheet, but its not getting uploaded properly. Sy-subrc is 0.
What could be the reason?
Thanksuse FM : ALSM_EXCEL_TO_INTERNAL_TABLE
See the example program to get from XLS file to Internal table
REPORT ZLWMI151_UPLOAD no standard page heading
line-size 100 line-count 60.
*tables : zbatch_cross_ref.
data : begin of t_text occurs 0,
werks(4) type c,
cmatnr(15) type c,
srlno(12) type n,
matnr(7) type n,
charg(10) type n,
end of t_text.
data: begin of t_zbatch occurs 0,
werks like zbatch_cross_ref-werks,
cmatnr like zbatch_cross_ref-cmatnr,
srlno like zbatch_cross_ref-srlno,
matnr like zbatch_cross_ref-matnr,
charg like zbatch_cross_ref-charg,
end of t_zbatch.
data : g_repid like sy-repid,
g_line like sy-index,
g_line1 like sy-index,
$v_start_col type i value '1',
$v_start_row type i value '2',
$v_end_col type i value '256',
$v_end_row type i value '65536',
gd_currentrow type i.
data: itab like alsmex_tabline occurs 0 with header line.
data : t_final like zbatch_cross_ref occurs 0 with header line.
selection-screen : begin of block blk with frame title text.
parameters : p_file like rlgrap-filename obligatory.
selection-screen : end of block blk.
initialization.
g_repid = sy-repid.
at selection-screen on value-request for p_file.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = g_repid
IMPORTING
FILE_NAME = p_file.
start-of-selection.
Uploading the data into Internal Table
perform upload_data.
perform modify_table.
top-of-page.
CALL FUNCTION 'Z_HEADER'
EXPORTING
FLEX_TEXT1 =
FLEX_TEXT2 =
FLEX_TEXT3 =
*& Form upload_data
text
FORM upload_data.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
FILENAME = p_file
I_BEGIN_COL = $v_start_col
I_BEGIN_ROW = $v_start_row
I_END_COL = $v_end_col
I_END_ROW = $v_end_row
TABLES
INTERN = itab
EXCEPTIONS
INCONSISTENT_PARAMETERS = 1
UPLOAD_OLE = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
write:/10 'File '.
ENDIF.
if sy-subrc eq 0.
read table itab index 1.
gd_currentrow = itab-row.
loop at itab.
if itab-row ne gd_currentrow.
append t_text.
clear t_text.
gd_currentrow = itab-row.
endif.
case itab-col.
when '0001'.
t_text-werks = itab-value.
when '0002'.
t_text-cmatnr = itab-value.
when '0003'.
t_text-srlno = itab-value.
when '0004'.
t_text-matnr = itab-value.
when '0005'.
t_text-charg = itab-value.
endcase.
endloop.
endif.
append t_text.
ENDFORM. " upload_data
*& Form modify_table
Modify the table ZBATCH_CROSS_REF
FORM modify_table.
loop at t_text.
t_final-werks = t_text-werks.
t_final-cmatnr = t_text-cmatnr.
t_final-srlno = t_text-srlno.
t_final-matnr = t_text-matnr.
t_final-charg = t_text-charg.
t_final-erdat = sy-datum.
t_final-erzet = sy-uzeit.
t_final-ernam = sy-uname.
t_final-rstat = 'U'.
append t_final.
clear t_final.
endloop.
delete t_final where werks = ''.
describe table t_final lines g_line.
sort t_final by werks cmatnr srlno.
Deleting the Duplicate Records
perform select_data.
describe table t_final lines g_line1.
modify zbatch_cross_ref from table t_final.
if sy-subrc ne 0.
write:/ 'Updation failed'.
else.
Skip 1.
Write:/12 'Updation has been Completed Sucessfully'.
skip 1.
Write:/12 'Records in file ',42 g_line .
write:/12 'Updated records in Table',42 g_line1.
endif.
delete from zbatch_cross_ref where werks = ''.
ENDFORM. " modify_table
*& Form select_data
Deleting the duplicate records
FORM select_data.
select werks
cmatnr
srlno from zbatch_cross_ref
into table t_zbatch for all entries in t_final
where werks = t_final-werks
and cmatnr = t_final-cmatnr
and srlno = t_final-srlno.
sort t_zbatch by werks cmatnr srlno.
loop at t_zbatch.
read table t_final with key werks = t_zbatch-werks
cmatnr = t_zbatch-cmatnr
srlno = t_zbatch-srlno.
if sy-subrc eq 0.
delete table t_final .
endif.
clear: t_zbatch,
t_final.
endloop.
ENDFORM. " select_data -
Read data from a sequential file to fill an arrray
I am trying to read data from a sequential file to fill an array and then use the array for calculations. I believe my program is reading the file; however when I try to use the data for calculations the results show up as boxes rather than numbers. Can someone please take a look and give me some insight into where I am going wrong. The sequential file has the following data:
5.0
5.35
5.5
5.75
Here is my code from that portion of the program. I can send the entire program if necessary.
private void calcResults(TextArea loanResults, double amount, double interest, int term ) throws IOException {
DecimalFormat df = new DecimalFormat("$###,###.00");
NumberFormat formats = new DecimalFormat("#0.00");
StringBuffer buffer=new StringBuffer();
loanResults.append("Month No.\tMonthly Payment\t\tInterest\t\tBalance\n");
double monthlyPay = amount*Math.pow(1+interest,term)*interest/(Math.pow(1+interest,term)-1);
monthlyPayment.setText("" + (formats.format(monthlyPay)));
double principal= amount;
* Loop through each month of a given loan
int month;
for (int i=0; i<term; i++)
try {
int j = 0;
BufferedReader in = new BufferedReader(new FileReader("rates.txt"));
String temp = "";
while((temp = in.readLine()) != null) {
j++;
strRate[j] = temp;
RateValue1 = Double.parseDouble(loanAmountTxFld.getText());
in.close();
catch (FileNotFoundException e) {
System.out.println("Can't find file rate.txt!");
return;
month= i+1;
double rate =principal*interest;
double balance=principal+rate-monthlyPay;
loanResults.append((month) + "\t\t" + (formats.format(principal) + "\t\t" + (formats.format(rate) + "\t\t"
+ (formats.format(balance) + "\n"))));
principal=balance;
GraphArea.append(formats.format(balance) + "\n");
*Method for determining which loan option was chosen
private void calc() throws IOException{
String interestTerms = (String) cOption.getSelectedItem();
if (interestTerms.equalsIgnoreCase("5 yrs at 5.00"))
calcResults(loanResults, Double.parseDouble(loanAmountTxFld.getText()), 0.05/12, 60);
else if (interestTerms.equalsIgnoreCase("7 yrs at 5.35"))
calcResults(loanResults, Double.parseDouble(loanAmountTxFld.getText()), RateValue1/12, 84);
else if (interestTerms.equalsIgnoreCase("15 yrs at 5.50"))
calcResults(loanResults, Double.parseDouble(loanAmountTxFld.getText()), 0.0550/12, 180);
else if (interestTerms.equalsIgnoreCase("30 yrs at 5.75"))
calcResults(loanResults, Double.parseDouble(loanAmountTxFld.getText()), 0.0575/12, 360);
else if (interestTerms.equalsIgnoreCase(" "))
calcResults(loanResults, Double.parseDouble(loanAmountTxFld.getText()), Double.parseDouble(loanInterestTxFld.getText())/100/12,Integer.parseInt(loanTermTxFld.getText())*12);
}ok, I fixed my program per your suggestion and I still cannot get it to work. I get the same result where the ouput is just a bunch of boxes. I also tried to print to see what I am getting and all I see is the values of the array [5.0,5.35,5.5,5.75] but I cannot seem to pass that to the calculations. I wish I could figure this out. Does anybody have any suggestions as to what I am doing wrong. This is the portion of my code that I am having issues with:
private void calcResults(TextArea loanResults, double amount,double interest, int term ) throws IOException {
DecimalFormat df = new DecimalFormat("$###,###.00");
NumberFormat formats = new DecimalFormat("#0.00");
StringBuffer buffer=new StringBuffer();
loanResults.append("Month No.\tMonthly Payment\t\tInterest\t\tBalance\n");
double monthlyPay = amount*Math.pow(1+interest,term)*interest/(Math.pow(1+interest,term)-1);
monthlyPayment.setText("" + (formats.format(monthlyPay)));
double principal= amount;
* Loop through each month of a given loan
int month;
for (int i=0; i<term; i++)
month= i+1;
double rate =principal*interest;
double balance=principal+rate-monthlyPay;
loanResults.append((month) + "\t\t" + (formats.format(principal) + "\t\t" + (formats.format(rate) + "\t\t"
+ (formats.format(balance) + "\n"))));
principal=balance;
GraphArea.append(formats.format(balance) + "\n");
private void readFile() throws IOException
try {
int j = 0;
BufferedReader in = new BufferedReader(new FileReader("rates.txt"));
String temp = "";
while((temp = in.readLine()) != null) {
strRate[j] = temp;
j++;
RateValue1 = Double.valueOf(((String)(strRate[1]))
).doubleValue();
// RateValue1 = Double.parseDouble(loanAmountTxFld.getText());
in.close();
catch (FileNotFoundException e) {
System.out.println("Can't find file rates.txt!");
return;
*Method for determining which loan option was chosen
private void calc() throws IOException{
String interestTerms = (String) cOption.getSelectedItem();
if (interestTerms.equalsIgnoreCase("5 yrs at 5.00"))
calcResults(loanResults, Double.parseDouble(loanAmountTxFld.getText()), 0.05/12, 60);
else if (interestTerms.equalsIgnoreCase("7 yrs at 5.35"))
calcResults(loanResults, Double.parseDouble(loanAmountTxFld.getText()), RateValue1/12, 84);
else if (interestTerms.equalsIgnoreCase("15 yrs at 5.50"))
calcResults(loanResults, Double.parseDouble(loanAmountTxFld.getText()), 0.0550/12, 180);
else if (interestTerms.equalsIgnoreCase("30 yrs at 5.75"))
calcResults(loanResults, Double.parseDouble(loanAmountTxFld.getText()), 0.0575/12, 360);
else if (interestTerms.equalsIgnoreCase(" "))
calcResults(loanResults, Double.parseDouble(loanAmountTxFld.getText()), Double.parseDouble(loanInterestTxFld.getText())/100/12,Integer.parseInt(loanTermTxFld.getText())*12);
} -
Error in Reading data from a xml file in ESB
Hi,
i created a inbound file adapter service which reads data from a xml file and passes it to the routing service and from there updates to the database.....
(everything created in jdeveloper)
But i am getting error....it is not getting updated to the database...when i check the database(select * from table) its showing one row selected but i couldnt find the data....
Transformation mapping also i did...
i think may be some error in reading the data from the xml file but not so sure.....
please reply to this mail as soon as possible its very urgentMichael R wrote:
The target table will be created when you execute the interface, if you set the option on the flow tab as instructed in step #6 of the "Setting up ODI Constraint on CLIENT Datastore" Section.
Option Value
CREATE_TARG_TABLE trueHi Michel,
This was not my required answer.I am sorry that I was unable to clarify my question.Actually
+This project executed successfully with some warning.Target Table is automatically created in database and also populated with data.But when I right-click Target Datastore(in >Mapping Tab of the Interface), and then select Data to View Data that needs to be inserted in the target table.I get some error like this:-...+This above line is the result of my project my problem is
when I right-click Target Datastore(in Mapping Tab of the Interface), and then select Data to View Data that already inserted in the target table.Is not shown by the view data operation.
I meant to say I am facing this error
At the10(1010 written) step of
Creating a New ODI Interface to Perform XML File to RDBMS Table Transformation
wehre it says
Open the Interface tab. Select Mapping tab, right-click Target Datastore - CLIENT, and then select Data. View Data inserted in the target table. Close Data Editor. Close the tabs...
In my case when I use my sqldeveloper I can see data successfully inserted in my target table and also in error table (data that can't satisfy the constraint) .But I was unable to check this by following the above mentioned 10 th step and got this error.
Thanks -
Need to read data from pipe separated file using POJO?
Hi,
I need to read data from pipe separated file using POJO.
There is config.properties file which consists of the
data mapping.
Can you help me with sample code or help?
Regards
Regards
Taton
Edited by: Taton on Mar 7, 2009 4:41 PMIt's not possible to read from a file without using classes from the core API*. You'll have to get clarification from your instructor as to which classes are and are not allowed.
[http://java.sun.com/docs/books/tutorial/essential/io/]
*Unless you write a bunch of JNI code to replicate what the java.io classes are doing. -
How do I read data from a DMM or DC Power Supply at a specified rate?
I have a PXI system with 4071 DMMs and 4110 DC Power Supplies. I want to be able to measure the power consumption of my DUT as it performs various operations. This is what my process flow looks like:
1. Configure DMM and Power Supply
2. Wait for DUT to go into a certain mode
3. Start Acquiring data from DMM and PS.
4. Wait for DUT to get out of this mode
5. Stop Acquiring data from DMM and PS.
Since the duration of step #4 is uncertain, I cannot tell the units to collect a predetermined number of samples and give it back to me. Instead I have to take readings as long as it's required.
I'm attaching screenshots of my setup and read process. The reading is done inside a timed loop which is running at 1kHz.
The problem is that using niDMM Read Multi-Point or niDCPower Measure Multiple takes 5-9ms before I get a reading, so I'm not really getting 1ms resolution in my data. I'm sure there are other folks who have had the need to read data from these devices with better time-resolution, so if anyone can point me in the correct direction, it would be great. I'm pretty sure I'm not doing the correct thing here.
Attachments:
1-Setup.PNG 12 KB
2-Read.PNG 9 KBWhat is really confusing to me is why you are even using the multi-point function when you set the sample count to 1. If you want multiple points, request multiple samples and let the DMM acquire them at a rate you specify. If you want a single sample, use the normal Read. You also need to pay attention to how fast the DMM can acquire. If you want the fastest sample rates, you might be a lot better off with a DAQ board.
Maybe you are looking for
-
I can see my ipod in My Computer, but not in itunes - Why?
I can see my ipod nano in My Computer, but can't see it in iTunes under available devices. I have tried uninstalling iTunes, reinstalling but this doesn't help. I can see the ipod using someone else's iTunes. What is wrong?
-
CR2008 rt on IIS 6: COMException (0x8004100f): Database logon failed
I have installed the CR 2008 runtime msi on IIS6. It's the initial CR 2008 runtime - not sp0. Database = MS SQL Server 2000 Connectivity= OLEDB On the first run all the reports run ok. If I refresh the page in the browser, all the reports run ok. Onc
-
so basically the official apple headphones work in other iPads, iPhones and computers but they won't work in my iPhone 5. So does this mean there is an issue with my jack? But why do any other alternative earphones work and it's just the apple ones w
-
How to add additional fields created to selection screen too ? I have created some additional fields in the infoset . but when i am trying to create a Query the fields are only appearing as output fields ... normally the fields should appear both
-
Not able to see business area in some fi doc
hi , In some FI doc for inventory g/l account in which direct posting is not allowed does not display business area however we can able to see business area in corresponding migo document . how to avoid this . Thanks and Regards , Shikha