Rs232 data input

Hello,
I am trying to read data into dasylab via Rs232, but I am new to dasylab and havent worked reading in rs232 data before.
I managed to get dasylab to communicate with my device, but I am having trouble parsing the data effectively.
In the rs 232 monitor, without sending any commands, I get a set of data in the format
DA 0 00 20.8 21.5 0.0 0.0<CR><LF>
I've been searching the forums and think this has a very simple solution, I'm just having trouble finding the correct command to put in the "measurement data format" box for each channel
Thanks for the help.

Ok, there are a couple of ways to do this
DA 0 00 20.8 21.5 0.0 0.0<CR><LF>
If the first three groups are constant, then use them as a search string to anchor the first data point.
Channel 0 will be
"DA 0 00 "a\x20
the \x20 is the trailing space, and delimits the data point.
Channel 1 will be
a\x20
If that's all you want, then the rest of the line is ignored, while it searches for the "DA 0 00 " for the next Channel 0 value.
- cj
Measurement Computing (MCC) has free technical support. Visit www.mccdaq.com and click on the "Support" tab for all support options, including DASYLab.

Similar Messages

  • Error in saving  large value with the data input query

    Hi,
       I  am  trying to save a large value in 0Quantity using the data input query into a realtime infocube
    e-g
    123456789.1234
    Error says too many digits.
    When i try to save 8 digits before the decimal point ,no error, if it is 9digits before decimal it's thro' error.
    Is there any limitation before the decimal.
    i know that 0Quantity can take 17 digits including the sign.
    Any suggestions.?
    regards,
    ram

    try budgetting in thousands in stead of units? (setting on query itself)
    D

  • Tree-control for data input?

    Hi,
    I need to program an input screen for values that have hierarchical dependencies (e.g. sums). I feel, the most adequate user-interface would be a tree control, because of the data dependencies and also because the users asked for a possibility to collapse/expand parts of the data during input.
    I had a look at CL_GUI_COLUMN_TREE, but I'm not sure, if it can be used for data input. Has anyone done something like this before or can anybody direct me to some additional sample coding? (the sample coding in the reuse library didn't do it...)
    Thanks for your help, greetings, Kathrin!

    Hello Kathrin,
    Since you say that the user's input is hierarchical in nature, it is nice to have a tree-control for input. But, the choice of using a custom-control-version of the tree is a cause for some concern. I cannot recollect any of the SAP screens where the input can be given through such a tree framework (please do let me know if you have come across one). The problem with such a tree would be in the areas of even-handling. Filling the tree with appropriate data at the right times would be another challenge.
    However, there's one alternative that I would like to direct your attention to. You must have observed another kind of tree, when you select an application component from the APPLICATION HIERARCHY, which is just like a list. Also, the <i>Transport Organizer (SE09)</i>, <i>Menu Painter (SE41)</i> etc., have this kind of a tree. You can use this if you (or rather your users) are very particular on having a tree display. For more information, you can see the Function Group <b>SEUT</b>, which has the required function modules to accomplish the same. The Function Group is well documented, and you might have to work a little on the function modules themselves.
    Please do let me know if this is a suitable option to meet your requirement. All the best,
    Regards,
    Anand Mandalika.

  • [Solved] CUPS: Unable to write print data: Input/output error

    I'm filling this for the benefit of those poor googlers that can reach here.
    Symptoms: After trying to print a "complex" image the printer made too much breaks, and failed.
    The problem is, it then didn't came up. I mean, I restarted the printer, cupsd, the whole system, and nothing.
    I was unable to print again, it showed "Unable to write print data: Input/output error" and refused to print anything.
    I then saw that in /etc/cups I had printers.conf and printers.conf.O files, which differed (other than in StateTime), that printers.conf.O had
    State Idle
    but printers.conf had:
    State Stopped
    StateMessage Unable to write print data: Input/output error
    Reason paused
    Probably due to the ErrorPolicy being stop-printer.
    So seeing I followed the following steps:
    Stop cups
    Replace printers.conf with printers.conf.O (I could also had manually edited it)
    Start cups
    It then went working flawlessly.
    There was probably an option in the web interface combobox for doing that. The problem is that I didn't realise it was stopped, so didn't know how to make it work. Moreover, some posts in the web recommended reinstalling the printer (which would skip the problem by creating a new printer).

    I think that I had this same problem, and fixed it by reinstalling the printer.  Thank you for your post.

  • How to set todays date in message date input field in uix

    Hello everybody,
    Im using jdeveloper 9015+adf+uix
    I am having an input form and in that i want to set the date input field with the current date(default value).
    Does anybody of you know how I should do this.
    Any help is appreciated,
    Thanks in advance

    Hi,
    Did you figure out on how to default system date in a date input field??
    I have a similar requirement in OA framework. Please let me know if you have any ideas.
    Thanks,
    vinay.

  • How to display current system Date in the Date Input field ?

    Hi,
    I am having a Date Input field( binded to Data type). On load, i would like to display the current system date filled in that input field.
    How do i achieve this ?
    Reg/Venkat

    Hi Venkatesan,
    In your view in your init() method add the following code:
    wdContext.currentContextElement().setOrderDate(new Date(System.currentTimeMillis()));
    this is if your Date-attribute is in the root of the context.
    else you have to set the date in the node where the date-attribute is present with:
    IYOURNODEElement node = wdContext.createYOURNODEElement();
    node.setOrderDate(new Date(System.currentTimeMillis()));
    regards,
    Björn

  • ADF 11g  Date input

    I am using date input component in ADF 11g.
    This component let u select only date. but I want the user be able to select date and time as well.
    which date component should I drop on page ?
    thx
    p

    All you have to do to see it in action is give your ADF BC EO date field the type of Timestemp instead of Date, and possibly add a nice format mask under the UI hints like: yyyy-MM-dd HH:mm:ss
    But, I do not have Entity Object in my application. ADF page was generated as part of "right click BPEL Human Task ---- Auto generate ADF Task Form".
    How do I have time as well in this case ?
    thx
    p

  • Calling Stored Procedure with a DATE input parameter

    Hi. A question about Date input parameters when calling a stored procedure...
    I have a procedure that takes a DATE parameter as input. I would like that DATE value to include a Time element.
    My Application Module method takes an input parameter as java.util.Date (myParamDate) - which will preserve a time element(?).
    However when I create the CallableStatement, I'm trying to set the parameter using setDate like this (for param 5):
                st = getDBTransaction().createCallableStatement("begin cs_my_pck.request_values(?,?,?,?,?,?,?,?); end;", 0);           
                Connection myConn = st.getConnection();
                ArrayDescriptor myArrDesc  =  ArrayDescriptor.createDescriptor("CS_FIELD_TABT", myConn);
                Array sqlParamNameArray = new oracle.sql.ARRAY(myArrDesc, myConn, paramNames.toArray());
                Array sqlParamValueArray = new oracle.sql.ARRAY(myArrDesc, myConn, paramValues.toArray());
                Array sqlFilterNameArray = new oracle.sql.ARRAY(myArrDesc,myConn,filterNames.toArray());
                st.setString(1, repType);
                st.setObject(2, sqlParamNameArray);
                st.setObject(3,sqlParamValueArray);
                st.setObject(4,sqlFilterNameArray);
                java.sql.Date myRepDate = new java.sql.Date(myParamDate.getTime());
                st.setDate(5,myRepDate);
                System.out.println("Report Date = " + myRepDate.toString());
                st.setString(6,repUser);
                st.setString(7,repAttach);
                // set out param
                st.registerOutParameter(8, Types.NUMERIC);
                st.execute();I understand java.sql.Date does NOT include a Time element. But setDate() accepts only a java.sql.Date so my procedure parameter ends up with a zero time element.
    How do I call this procedure retaining the Time element?
    Thanks.

    It includes time element, if you want more precision go with timestamp.
    http://docs.oracle.com/javase/6/docs/api/java/sql/Date.html

  • Multithrea​ding and RS232 data too slow processed

    Hello,
    Hope someone could help with this issue.  I have simple application which process ASCII data coma separated from serial port at speed of 115.2kbps. There is 6 columns  of unsigned short data .  I set-up COM call back function to receive data and I created separate thread function to plot data  on a 6 graphs - PlotWaveform() used.  Plots roll-over from beginning every time it receives more then 3000 samples. There is couple of more command buttons to set-up serial port, save data to a file, and exit application.
    What is problem?  Application runs as intended but more and more slow with each received data sample. It is visible how graph plotting slows down. Apart from this,  all command buttons do not respond on cliks. (I need to click few minutes on them to get attention.)
    Thanks
    Solved!
    Go to Solution.

    Thanks Roberto,
    a) I continiously receive RS232 data from external device without request. I install  COM callback func.
    InstallComCallback (comport, eventMask, notifyCount,eventChar, ComCallback, NULL);  where is:
    static int eventChar =13;   
    static int notifyCount =115;
    Call back functions where I process data and store them into 6 arrays of 3000 elements:
    void CVICALLBACK ComCallback(int portNo, int eventMask,void *datax);
    b)  I assume ComCallback is called every notifyCount samples.
    c)  Second thread what I installed plots only 6 received data arrays in the ComCallback(). 
    static int CVICALLBACK PlotingThreadFunc (void *functionData)
      while(1)
                      if(plotFLAG == TRUE)
                                        plotFLAG = FALSE;
                                        //Plot Array1
                                        PlotWaveform (panelHandle, PANEL_GRAPH, CapMeasureArrayData1,
                                                      ​                                          u16_DataIndexC, VAL_UNSIGNED_SHORT_INTEGER, 1.0, 0.0,
                                                      ​                                          0.0, 1.0, VAL_FAT_LINE, VAL_EMPTY_SQUARE, VAL_SOLID, 1,
                                                      ​                                          VAL_RED);
                                             to ..........
                                        //Plot Array6
                                        PlotWaveform (panelHandle, PANEL_GRAPH_CAP6,
                                                      ​                                          CapMeasureArrayData6, u16_DataIndexT,
                                                      ​                                          VAL_UNSIGNED_SHORT_INTEGER, 1.0, 0.0, 0.0, 1.0,
                                                      ​                                          VAL_FAT_LINE, VAL_EMPTY_SQUARE, VAL_SOLID, 1,
                                                      ​                                          VAL_RED);
     return 0;
    The plotFLAG is set in the ComCallback() when data is received.
    d)  I plot as above, whoole data arrays when data is received.
    e)  “Plots Roll-Over”  I meant: Plots are window into data steram and when it is plotted max. number of elements (3000) then arrays are erased and start new data plot from beginning.

  • Why Excel insert cell block, hasn't input for data input?

    Hi
    I found a block for insert new row in excel, but there is no input for data input. how should I insert data by this block to excel file? can you help me?
    that block name: Excel insert cells
    in report generator toolkit
    Best Reagards

    behzad1 a écrit :
    I could work with  Excel insert cell block, but when I want add new data to an old row continuation, last row shift downward! while I want add data to old row. anyone can help me?
    Nobody will be able to identify the problem without seeing your code. Excel Insert Cells.vi is used to add cells to an existing spreadsheet, not to set the cell value. To do this is a more specific way than the Append Report Text.vi you can use Excel Easy Text.vi or Excel Insert Table.vi. With these vis you can specify the range where you want to insert something.
    For your other question (Two different data types) you can use the Excel Set Cell Format.vi to format a range as a date or something else. You will need to use the Excel format specifiers for this.
    Ben64

  • Combine year + period as one dimension for data input

    Existing Hyperion Planning has 2 dimension to keep the year and period. Our users would like to have the data entry web form title to show the year+period e.g. Jan 2009 instead of two rows. Is it very difficult to build such a label or a dimension for data input?
    Thanks in advance.

    Jake_Turrell wrote:
    You could do this with custom JavaScript, although I have to say the work would outweigh the benefits.
    Why is it important that they see the year and month with a specific layout on a web input form? Are they printing the form, or using it as a "report"? If so, I would direct them to Financial Reporting, where it is much easier to format labels, etc. Forms shouldn't be used as reports as a general rule.
    - JakeI am referring to the web form. Because there are 12 months in a year and they need to input more than 10 years budget, the label on the web form is not easy to view from our end user point of view. They say that sometimes they will input data in the wrong year. So they prefer to the column label as Jan2009, Feb2009, etc instead.
    Thanks for your help.

  • Open/close line for data input depending on characteristic value

    Hi,
    assume we have an input ready query linked to an analysis item.
    material qty
    1            100
    2              50
    3              70
    How can we achieve that only the line 2  is open for data input by the user
    and the other lines 1/3 are closed.
    Regards
    Paul

    Hi,
    You can use data slice for this. Activate the data slice for sl no 1 and 3  and the appln will not allow you to enter for these records.
    Data slice can be made dynamic to activate/deactive as per your requirement.
    pratyush

  • Developed VI for data input from a Serial RS485 S. Himmelstein 700 Series Signal Conditioner

    Has any one developed a VI for data input from a serial RS485 connection with S. Himmelstein 700 series signal conditioner. Multiple displays and channels. Labview 2009

    Hi 
    I am using the same vi which you have suggested and i have selected proper com port and other settings, but i am not getting any data,but if i send "ADC0" and "*IDN?\n" command alternatively then it is giving the data...but if i do that i will get zero and data alternatively.I want to get data without zero in between.. any solutions on why i have to send *IDN?\n?
    Expand.Evolve.Influence
    Attachments:
    Hammltn.jpg ‏91 KB

  • Most efficient way to constantly read, queue and parse multi-size​d RS232 data (multi-thr​eaded)

    I've tried tackling this problem a few different ways, and figured it was time to get some others' advice.  My system essentially works, although it looks like a hackjob and not entirely confident.
    My RS-232 connection has the following properties/constraints:
    -Will be getting unsolicited data at a high data rate.  (ya thats subjective, but assume near constant at whatever baud rate its set at up to 115200)
    -Different segment lengths of data receiving
    -Two stop bytes (0x10 0x03), while start byte is 0x10.  (Byte stuffing/packing implemented)
    -There is a size byte within a packet (3rd one in), however currently relying on stop bytes only.
    I have tried the ComCallback within CVI only to find that it is VERY slow at processing events compared to implementing it manually in its own thread.  In addition, it can only trigger 1 stop bit, not 2.  Triggering on size is sometimes okay, but I found that it was possible it would get triggered on only part of the data, the when its called the qlength be larger, and then sometimes I would only read part of a data packet, and half of my segment was still in the queue.  And sometimes, I would get semaphore locks and lots of waiting, and ya it was a mess (hence you will see lots of CMT locks commented out)
    I tried implementing a FIFO type queue (copied below), but I have very little experience in doing this, and may not be very efficient in the way I implemented and could definately use some advice in this area.  Also perhaps in how thread safe I have everything.
    I thought about a circular buffer, but since data can be different segment lengths, it kind of makes it difficult to cleanly wrap around and read.  I think its still possible, just may require additional checks which I haven't seen done anywhere when google searching. (and made me think a FIFO queue was better).
    So if anyone has any good suggestions or examples, that would be great.  Using Labwindows 2010.
    //in Main before GUI loaded
    programRunning = 1;
    CmtScheduleThreadPoolFunction (DEFAULT_THREAD_POOL_HANDLE, ComCallback, NULL, &funcID);
    /* Function Used to parse Com data */
    static int ComCallback (void *callbackData)
    static int bufLen = 0;
    int strLen,qLen=0;
    unsigned char tempBuf[1024];
    int packet_length = 0;
    char temp_string[250];
    unsigned char *start_ptr;
    int i;
    int start_offset;
    while(programRunning) {
    //First lets copy all data from com port to output buffer
    if( com_open) qLen = GetInQLen (comPort);
    if( qLen <= 0 ) {
    ProcessSystemEvents();
    } else {
    if( qLen > 1024) qLen = 1024-bufLen; //set max length to read
    strLen = ComRd (comPort, tempBuf, qLen);
    //CmtGetLock(lock);
    memcpy(readBuf+bufLen,tempBuf,strLen);
    bufLen += strLen;
    //CmtReleaseLock(lock);
    //Try to read until we hit stop bytes, or until we think we have at least 1 or 2 packets to process
    if(tempBuf[strLen-2] != 0x10 && tempBuf[strLen-1] != 0x03 && bufLen < 100 ) )
    goto skip;
    //ensure start pointer is at beginning command (0x10 0xAA) (in event we just started reading in middle of packet???)
    i = 0;
    while ( (readBuf[i] != 0x10) && (readBuf[i+1] != 0xAA) && (i < strLen) )
    //start_ptr++;
    i++;
    start_offset = i;
    parse_some_more:
    start_ptr = readBuf + start_offset;
    //lets try to do one packet at a time.
    for(i = start_offset; i < bufLen-start_offset-1; i++)
    if(readBuf[i] == 0x10)
    if(readBuf[i+1] == 0x03)
    i += 2;
    break;
    //trial of unpacking/unstuffing byte buffer
    else if( readBuf[i+1] == 0x10 ) //two tens in a row, remove it
    memmove( &readBuf[i],&readBuf[i+1],bufLen-i);
    bufLen--;
    //at this point, we should have a full packet. What if we don't....???
    packet_length = i - start_offset;
    //CmtGetLock(lock);
    ParseResponse(start_ptr,packet_length);
    PostPacketToOutputBuffer(start_ptr,packet_length);
    if(start_ptr[start_offset] == 0x10 && start_ptr[start_offset+1] == 0xAA )
    com_Send_Acknowledge(comPort);
    start_offset = packet_length + start_offset;
    if(start_offset < bufLen-1)
    goto parse_some_more;
    //For now, assume everything else we don't care about in buffer, however, probably shouldn't. Should it be bufLen -=start_offset; if so, need to handle partial data better; timeout??
    bufLen = 0;
    //CmtReleaseLock(lock);
    skip:
    return 0;
    Thanks!

    Hi ngay528,
    I think there is a great example for you to use that comes with CVI which can be found by clicking Find Examples on the splash screen or Help >> Find Examples in your project. From there, click into Optimizing Applications >> Multithreading. In that folder there is a project that is called BuffNoDataLoss that shows how to create a thread safe queue and setup a producer/consumer type program. In this example the data is a random sine wave but could be adapted to your RS232 data. If you have any questions concerning this example please let me know but this should be a great starting point.
    Patrick H | National Instruments | Software Engineer

  • Use data input form in workflow

    Greetings,
    I need to input some fixed asset information from FI-AA master data in a data input form and route through a workflow process before finally update the asset master data. Does anyone does something similar before? Is it technically possible? Is there any guide available here.
    Thanks
    Steve

    Hi,
    you can put several table controls / alv grids on one dynpro.
    find example in :
    SE38 - environment - reuse library
    Andreas

Maybe you are looking for