Multiple sequential pattern match in a HSDIO acquisition app

I am quite a newbie about HSDIO apps and I would like to implement a
start-triggered app via Pattern Match. I wonder if I could recognize a
sequence of pattern matches (various samples) in order to start a
generation.
I use a NI-6541 device.
Thanks a lot.

Hello Matt,
Well, I'm sorry for the fact of being confusing. I'll try to clarify:
> ... Are you saying that you want to acquire on one port and then
> generate data on another port based on matching a pattern on the
> acquisition? ...
Yes, this is what I want to do. Also, sample clock is a external
signal (20MHz) connected to 'STROBE' pin. Generation and acquisition
sessions both use the same sample clock. Acquisition port has 2 lines/
inputs (dio28, dio29) and generation one has 28 outputs
(dio0..dio27).
Well, I have to do the following process (let's cross fingers):
1. When one '0' is detected in dio28 line, then device must wait until
dio28 is '1' and dio29 is '1'. There's no generation between these
events.
2. After that, a generation of a certain waveform is performed at
once, up to a certain number of samples in lines <dio0..dio27>. then,
dio29 is '0'.
3. Finally, pseudocoded: 'wait until dio28=1 and dio29=1. Then, go to
step 2 with another waveform parttern.' Device ends when 288 diferent
waveforms are written.
> ... I also wanted to know what version of the NI-6541 you are using? PCI or
> PXI? ...
PXI.
I hope to be more accurate.
Many Thanks In Advance

Similar Messages

  • Error-1074396120 Not an image, problem with IMAQ Learn multiple geometric patterns

    Error-1074396120 Not an image, problem with IMAQ Learn multiple geometric patterns
    Hi!
    I've tried to modify the example of  "multiple geometric patterns matching" , and just use two patterns, but when I run the VI this error appear and I doon't know how to solve it! , the error appears in the "IMAQ Learn multiple geometric patterns" block.
    Running on:
    - labview 32 bits
    - windows 7 64 bits
    - usb camera 2.0
    Any sugestion would be helpful..... !  Regards
    Attachments:
    template_12.png ‏150 KB
    template_11.png ‏123 KB
    vision_multiple_pattern_matching.vi ‏127 KB

    thanks all for your replies, the problem was on my template images, I had to give them information about the pattern matching, and I did it with NI Vision Template Editor, within Vision utilities, and I chose template with Feature Based. 
    Thank you again and Regards!

  • How do I set multiple pattern matching Vi's and make overlappin​g pattern matches to count as one?

    Hello! I'm a student and I'm currently making a project using pattern matching.
    My patterns are from chick foot/feet.
    I'm  created multiple pattern matching VI's to detect all the feet because I find it difficult/impossible to match all the feet with a single pattern/template.
    However, when using multiple pattern matching VI's some pattern matches detect the same foot, hence overlapping.
    So how can I make the overlaping pattern matches to be counted as one?
    Thank you in advance

    Thank you for replying Sir Zwired1.
    I'm still a newbie in using LabVIEW so pardon me if I can't understand fully
    The objective of my project is to detect all the feet through pattern matching and count the pattern matches made.
    "Keep a 2D array of counts, initialized to zero and the same size as your array of possible locations, and increment the value every time you get a match. If multiple pattern matching attempts result in a match a given location in your count array might be "3" but all you care about is if the number is greater than zero."
    I'm sorry, but how do you do this? BTW, I'm using vision assistant.

  • Multiple ROIs for Pattern matching

    I want to define multiple regions of interest for pattern matching so that if one fails an alternative ROI might be used.The acquistion is continuous. I have a system that works with single ROI. I want to use the same with multiple ROI.

    Are you looking for the following examples?
    http://sine.ni.com/apps/we/niepd_web_display.displ​ay_epd4?p_guid=B45EACE3E07356A4E034080020E74861&p_​node=DZ52500&p_source=external
    http://sine.ni.com/apps/we/niepd_web_display.displ​ay_epd4?p_guid=B45EACE3E8E356A4E034080020E74861&p_​node=DZ52505&p_source=external
    Hope it helps.

  • Mod_security: Access denied with code 405. Pattern match "!(GET|HEAD|POST)

    Hi all,
    After Cloning facing an issue
    mod_security: Access denied with code 405. Pattern match "!(GET|HEAD|POST)"
    and not able to get the login prompt
    EBS: 12.1.3
    DB:11G
    Please help as this is urgent.
    Regards,
    Raj.

    Hi Hussein/Srini,
    My OS details are as follows
    Source OS : OE Linux 5X
    Target : REHL
    DB : 11.2.0.3
    In my previous cloning the R12 login URL was not getting redirected to https from http. This backup was given by client last week and I completed the cloning and post cloning procedures without any error, but unable to login as the page is redirecting to https:/hostname:port/OA_HTML/AppsLogin.
    I have done the following so far, but the issue is not getting resolved.
    1) Generated JAR files using ADADMIN (Force)
    2) Compiled JSP
    3) Ran autoconfig multiple times without any error in both db and application tiers.
    4) DB alert log did not have any error.
    5) Executed relink all from APPL_TOP
    6) Able to launch http://XXXXXXXXX:XXXX/forms/frmservlet?
    Kindly help me out on this
    Regards

  • Slowness of color pattern matching vi

    Hi,
    We're trying to implement a SLAM (simultaneous localization and mapping) algorithm in Labview based on kinect. In order to do so, the mapping robot should spot landmarks in real-time from the kinect image. We found the color pattern matching VI which does exactly what we need but the problem is that it's very slow (about 1.5 seconds for each image and total of 3 images each iteration). Is this the normal time for detecting landmarks in a kinect image? The robot can't map accurately when the iteration is so slow.
    Thanks,
    Rap Master
    Attachments:
    detect landmarks.vi ‏61 KB

    Given that the pattern matching VI is an IMAQ (Image Acquisition) VI, this question will be best served by posting in our Machine Vision forums.
    Blake C.
    Applications Engineer
    National Instruments
    www.ni.com/support

  • Can I use differnet patterns for a "digital pattern match start trigger"

    Hello,
    Currently I would like use different patterns for a trigger the PCIe-6537 board to start capture data, for example, two patterns: 1101 and 1100 in digital IO lines line0:3, whenever one of this two pattern happens, start capture.
    It seems like "digital pattern match" in DAQmx trigger can use one pattern only.
    thanks!

    Hi tt_ni,
    Pattern I/O only allows the acquisition
    based off of one pattern. This is a “limitation” of the hardware based on the
    registers being set a certain way and monitoring a change from that. You could
    add external circuitry to OR your patterns and based the pattern I/O off of the
    output of that external circuitry. The other option is to look at an FPGA
    option.
    Mark E.
    Precision DC Product Support Engineer
    National Instruments
    Digital Multimeters (DMMs) and LCR Meters
    Programmable Power Supplies and Source Measure Units

  • Pattern matching using Regular expression

    Hi,
    I am working on pattern matching using regular expression. I the table, I have 2 columns A and B
    A has value 'A499BPAU4A32A386KBCZ4C13C41D20E'
    B has value like '*CZ4*M11*7NQ+RDR+RSM-R9A-R9B'
    the requirement is that I have to match the columns of B in A. If there is a value with * sign, this must be present in A like 'CZ4' should exit in string A.
    The issue I am facing is that there are 2 values with * sign. The code works fine for first match (CZ4) but it does not look further as M11 does not exist in A.
    I used the condition
    AND instr(A,substr(REGEXP_SUBSTR(B, '*[^*]{3}'),2) ,1)=0
    First of all, is this possible to match multiple patterns in one condition?
    If yes, please suggest.
    Thanks

    user2544469 wrote:
    Thanks a lot Frank. This query worked wonderful for the test data I have provided however I have some concerns:
    - query doesnot include the column BOOK which is a mandatory check.Sorry, that was my mistake. It was a very easy mistake to make, since you posted sample data where it didn't matter. Instead of doing a cross-join between vn and got_must_have_cnt, do an inner join, using book. That means book will have to be in got_must_have_cnt, and all the sub-queries from which it descends. Look for comments that say "March 22".
    If you want to treat '+' in test_cat.codes as '*', then the simplest thing is probably just to use REPLACE, so that when the table has '+', you use '*' instead.
    WITH     got_token_cnt     AS
         SELECT     cat
         ,     book                                        -- Added March 22
         ,     REPLACE (codes, '+', '*') AS codes                    -- If desired.  Changed March 22
         ,     LENGTH (codes) - LENGTH ( TRANSLATE ( codes
                                                       , 'x*+-'
                                      , 'x'
                             ) AS token_cnt
         FROM    test_cat
    ,     cntr     AS
         SELECT     LEVEL     AS n
         FROM     (  SELECT  MAX (token_cnt)     AS max_token_cnt
                 FROM        got_token_cnt
         CONNECT BY     LEVEL     <= max_token_cnt
    ,     got_tokens     AS
         SELECT     t.cat
         ,     t.book                                        -- Added March 22
         ,     REGEXP_SUBSTR ( t.codes
                         , '[*+-]'
                         , 1
                         , c.n
                         )          AS token_type
         ,     SUBSTR ( REGEXP_SUBSTR ( t.codes
                                       , '[*+-][^*+-]*'
                               , 1
                               , c.n
                   , 2
                   )          AS token
         FROM     got_token_cnt     t
         JOIN     cntr          c  ON     c.n     <= t.token_cnt
    ,     got_must_have_cnt     AS
         SELECT       cat, book                                   -- Changed March 22
         ,       COUNT (CASE WHEN token_type = '*' THEN 1 END) AS must_have_cnt
         FROM       got_tokens
         GROUP BY  cat, book                                   -- Changed March 22
    SELECT       mh.cat
    ,       vn.vn_no
    FROM       got_must_have_cnt     mh
    JOIN                    vn  ON  mh.book     = vn.book               -- Changed March 22
    LEFT OUTER JOIN      got_tokens     gt  ON     mh.cat                  = gt.cat
                                     AND INSTR (vn.codes, gt.token) > 1
    GROUP BY  mh.cat
    ,            mh.must_have_cnt
    ,            vn.vn_no
    HAVING       COUNT (CASE WHEN gt.token_type = '*' THEN 1 END)     = mh.must_have_cnt
    AND       COUNT (CASE WHEN gt.token_type = '-' THEN 1 END)     = 0
    ORDER BY  mh.cat
    - query is very slow with 60000 records in vn table. Cost is somewhere around 36000.See these threads:
    When your query takes too long ...
    HOW TO: Post a SQL statement tuning request - template posting
    Relational databases were designed to have (at most) one piece of information in each column. If you decide to have multiple items in the same column (as you have a variable number of tokens in the codes column), don't be surprised if that makes things slower and more complicated. Most of the query I posted, and perhaps most of the time needed, is jsut to normalize the data. If you stored the data in a narmalized form, perhaps something like got_tokens, then you wouldn't need the first 3 sub-queries that I posted.
    Edited by: Frank Kulash on Mar 22, 2011 12:04 PM

  • New language feature: lazy local pattern matching

    <p>In the upcoming release of the Open Quark Framework, CAL gets a new language       feature: lazy local pattern matching.</p> <p>The new local pattern match syntax allows one to bind one or more variables to       the fields of a data constructor or a record in a single declaration inside a       let block.</p> <p>      For example:</p> <p>      // data constructor patterns:<br />      public foo1 = let Prelude.Cons a b = ["foo"]; in a;<br />      public foo2 = let Prelude.Cons {head=a, tail=b} = ["foo"]; in a;<br />      <br />      // list cons patterns:<br />      public foo3 = let a:b = [3]; in a;<br />      <br />      // tuple patterns:<br />      public foo4 = let (a, b, c) = (b, c, 1 :: Prelude.Int); in abc;<br />      <br />      // record patterns:<br />      public foo5 = let = {a = "foo"}; in a; // non-polymorphic record pattern<br />      public foo6 = let {_ | a} = {a = "foo", b = "bar"}; in a; // polymorhpic record       pattern<br />      <br />      Whereas a case expression such as (case expr of a:b -> ...) forces the       evaluation of expr to weak-head normal form (WHNF), a similar pattern match       declaration (let a:b = expr; in ...) does not force the evaluation of expr       until one of a or b is evaluated. In this sense, we can regard this as a form       of lazy pattern matching.<br /> </p> <p>Thus,</p> <p>      let a:b = []; in 3.0;</p> <p>is okay and would not cause a pattern match failure, but the case expression</p> <p>      case [] of a:b -> 3.0;</p> <p>would cause a pattern match failure.</p> <p>This laziness is useful in situations where unpacking via a case expression may       result in an infinite loop. For example, the original definition of List.unzip3       looks like this:</p> <p>// Original implementation of List.unzip3<br />      unzip3 :: [(a, b, c)] -> ([a], <b>, [c]);<br />      public unzip3 !list =<br />          case list of<br />          [] -> ([], [], []);<br />          x : xs -><br />              let<br />                  ys =       unzip3 xs;<br />              in<br />                  case x       of<br />                  (x1,       x2, x3) -><br />                      //do       not do a "case" on the ys, since this makes unzip3 strictly evaluate the list!<br />                      (x1       : field1 ys, x2 : field2 ys, x3 : field3 ys);<br />              ;<br />          ;<br /> </p> <p>The use of the accessor functions field1, field2 and field3 here is necessary,       as the alternate implementation shown below would result in "unzip3 xs" to be       evaluated to WHNF during the evaluation of "unzip3 (x:xs)". Thus if the input       list is infinite, the function would never terminate. </p> <p>// Alternate (defective) implementation of List.unzip3<br />      unzip3 :: [(a, b, c)] -> ([a], <b>, [c]);<br />      public unzip3 !list =<br />          case list of<br />          [] -> ([], [], []);<br />          x : xs -><br />              let<br />                  ys =       unzip3 xs;<br />              in<br />                  case x       of<br />                  (x1,       x2, x3) -><br />                      case       ys of // the use of "case" here is inappropriate, as it causes "unzip3 xs" to       be evaluated to WHNF<br />                      (y1,       y2, y3) -> (x1 : y1, x2 : y2, x3 : y3);<br />                  ;<br />              ;<br />          ;<br /> </p> <p>With the new syntax, the original implementation can be expressed more nicely       without changing its semantics:</p> <p>// New implementation of List.unzip3, revised to use the local pattern match       syntax<br />      unzip3 :: [(a, b, c)] -> ([a], <b>, [c]);<br />      public unzip3 !list =<br />          case list of<br />          [] -> ([], [], []);<br />          x : xs -><br />              let<br />                  (y1,       y2, y3) = unzip3 xs; // using a tuple pattern to perform a lazy local pattern       match<br />              in<br />                  case x       of<br />                  (x1,       x2, x3) -><br />                      (x1       : y1, x2 : y2, x3 : y3);<br />              ;<br />          ;<br /> </p> <p style="text-decoration: underline">It is important to note that in places where       a case expression can be used (without having an unwanted change in the       laziness of the expression being unpacked), it should be used instead of this       local pattern match syntax.</p> <p>Things to note about the new syntax:</p> <p>      - local type declarations on the pattern-bound variables are allowed, and these       type declarations can have associated CALDoc comments. On the other hand, the       actual local pattern match declaration itself cannot have a type declaration       nor a CALDoc comment.</p> <p>      - this syntax cannot be used for top-level definitions, only local definitions       in let blocks</p> <p>      - one cannot use patterns with multiple data constructors, e.g.</p> <p>      let (Left|Right) = ...;</p> <p>      is not allowed</p> <p>      - one cannot specify a variable for the base record pattern, e.g.</p> <p>      let {r | a, b} = ...;</p> <p>      is not allowed, but this is okay:</p> <p>      let {_ | a, b} = ...;</p> <p>      - patterns without no variables are disallowed, e.g.</p> <p>      let _ = ...;<br />      let [] = ...;<br />      let () = ...;<br />      let : = ...;<br />      let {_|#1} = ...;      <br /> </p>

    If you use just / it misinterprets it and it ruins
    your " " tags for a string. I don't think so. '/' is not a special character for Java regex, nor for Java String.
    The reason i used
    literal is to try to force it to directly match,
    originally i thought that was the reason it wasn't
    working.That will be no problem because it enforces '.' to be treated as a dot, not as a regex 'any character'.
    Message was edited by:
    hiwa

  • How to accelerate the processing time of pattern match

    How to accelerate the processing time  of pattern match
      If my camera acquire an image in 50ms, but when we analyze this image with pattern match, we need about 300ms. Except using queue to seprate acquisition
    and analysis to different loops, there is another way to directly accelerate the processing time  of pattern match ? Maybe compact rio with FPGA ?
    But I saw a paper in NI web, there is no this function in c-rio ?  
    Any suggersion will be very apperciated ~
    Ricky
    Attachments:
    aa.png ‏65 KB

    Hello,
    what matching algorithm are you using? You can reduce time using the Gaussian pyramids algorithm.You can fine tune the parameters using the advanced options.
    What is your template size/image resolution?
    I suppose using a computer with better performance would also work...
    Best regards,
    K
    https://decibel.ni.com/content/blogs/kl3m3n
    "Kudos: Users may give one another Kudos on the forums for posts that they found particularly helpful or insightful."

  • Multiple like patterns

    what should be the SQL statement for multiple 'LIKE' patterns. I am giving the statement like this on a dummy 'EMP' table.
    SELECT * FROM EMP WHERE ENAME LIKE 'JOHN%' OR ENAME LIKE 'PETER%'
    Is the above statement correct for multipe patterns which is using 'OR' statement for pattern matching. Please help in solving my doubt as i need it resolved urgently.
    Regards

    Upper, lower case in Ename ????
    Try :
    SELECT * FROM EMP WHERE Upper( ENAME ) LIKE 'JOHN%' OR Upper( ENAME ) LIKE 'PETER%'

  • Gige + pattern matching

     Hi all,
               I am new to Labview image processing . 
               i need to achive pattern match. from that i need to find fiducail location . but here i am facing some problems like .
               1. aquiring image is corrupted like black lines (i am using GigE camera 5MP 2/3" ) . 
               2. here i am doing pattern match by live grab method ( like continous aquring) . so that my CPU uasge is reachs nearlly  90 %
               3. my task is to find fiducail using pattern match from that i need to assign ROI for main pattern  (is it possible to snap image -> pattern match - > result) 
                i have attached my vi code and image .. 
    Attachments:
    6.png ‏75 KB
    PM_TEST.vi ‏121 KB

    Hi please learn basics and then apply over...
    1)What are the black lines in image? you didn't provide any screenshot/corrupted image.
        -Are you getting images properly NI MAX?
        -Did you allow jumbo packets ?
    2)Please understand what is grab and snap by using built-in examples provides. And your cpu usage is not because of continuous acquisition.
       -I cannot comment on the cpu usage now, but sure it's not because of gab.
       -Use producer-consumer pattern to do parallel acquisition and processing.
    3)Once you understand the difference between grab and snap, this you'll understand automatically.
    Thanks
    uday,
    Please Mark the solution as accepted if your problem is solved and help author by clicking on kudoes
    Certified LabVIEW Associate Developer (CLAD) Using LV13

  • How do I synchronize multiple *sequential* clips using audio waveforms in Premiere Pro CC?

    I recorded a concert at my kids' school.  I ended up with:
    Video in six separate clips (video+audio) from my Canon 5D Mark III camera
    A single audio clip from my Zoom H4n recorder
    The 5D Mark III can only record clips of up to 4GB in size, and clips 30 minutes in length.  The clips broken up by the 4GB size limit are adjacent to each other, but the clips broken up by the 30-minute limit have a stop-pause-restart gap of a few second.
    On past such projects, I have used PluralEyes 3.0 to synchronize the clips.  But PluralEyes converts each stereo audio track into dual mono tracks, which I don't like.
    I just happened upon this video:  http://tv.adobe.com/watch/learn-premiere-pro-cc/merge-clips-automatically-using-audio-wave forms/?t=0  It shows how to synchronize a single video+audio clip with another audio clip.  It also shows how to synchromize multiple concurrent video+audio clips with another audio clip, for multi-camera editing.  But it doesn't show how to synchronize multiple sequential video+audio clips, as I got from my Canon 5D Mark III.
    It seems that every time I select multiple video clips, the Synchronize item in the pop-up menu is disabled.  When I select only the first video clip and the full-duration audio clip, I can synchronize them with audio waveforms.  But then when I try to select the second video clip and the full-duration audio clip and synchronize them, it breaks the sync of the first video cilp
    Can Premiere Pro CC synchronize multiple sequential video clips using the audio waveform method?
    I am running Premiere Pro CC version 7.2.1 (4).
    Thanks.

    I'm an editing newbie but this was the very first task I needed to do, i.e. align multiple video clips with a single audio track. My setup is similar. I'm shooting with a Canon 70D, which breaks up video into 4gb clips, which are continuous and easy to align end to end. But the 70D like the 5D only shoots for 30 minutes continuously, so a second or two is lost hitting record again. My external audio was recorded continuously with a camera mounted Tascam (like a zoom) with a line in to the camera. So, in theory, the audio should be the same on the external audio and the audio associated with the video clips, which probably helps the software identify the identical wave forms.
    I found that I could roughly align the video clips based on the audio wave forms and then "synchronize" the audio as shown in the video (Merge clips automatically using audio waveforms | Adobe Premiere Pro CC tutorials). I found that this aligned the audio perfectly but separated the video from its associated audio track. But it's easy to select the video and snap it back into alignment with its audio. While it would be nice to have everything merge automatically, using synchronize sequentially did not take much time.
    Hope that all makes sense.

  • Trouble using a pattern match in the GO URL when the value starts with %

    Hi guys,
    We are trying to use a Go URL as follows:
    [http://hostname.com:9704/analytics/saw.dll?Go&Path=/users/administrator/Test/TestReport&Action=Navigate&col1=TestReport.SUBJECT&op1=like&val1="%25D8D8%25"|http://hostname.com:9704/analytics/saw.dll?Go&Path=/users/administrator/Test/TestReport&Action=Navigate&col1=TestReport.SUBJECT&op1=like&val1="%25D8D8%25"]
    Basically, we want to send the filter : SUBJECT like '%D8D8%' in the GoURL. However, the report that opens up does not fetch any rows because BI somehow messes up the clause by not recognizing the leading %25 (which is an escaped % character). Instead it resolves the %25D8D8%25 into something like �D8% .
    As you can see, the %25 at the end however gets resolved correctly but somehow the one at the beginning gets clubbed with the leading D8 to give �.
    Any idea, how to get BI to accept a leading escaped % character when doing a pattern match in the Go URL?

    I'm heading to the Apple Store in Danbury CT tomorrow to test out a MacBook Pro. I'll happily post what I like and dislike here.
    Waiting for a MacBook Pro...   Other OS  

  • How can I read a template and differentiate if it is a pattern matching template or a geometric matching template?

    Hey all,
    I would like to know how can I read a template´s information to know if it is a pattern macthing or a geometric matching template? 
    In my code, users provide templates and the algorithm must match them using pattern matching or geometric matching depending on the template.
    At the moment I am doing it by including a P or a G in the name of the file, but I would like to avoid this and read the information from the file.
    Any ideas?
    Thanks in advance,
    Esteban
    Solved!
    Go to Solution.

    Hey Esteban,
    you can use the VI "IMAQ Is Vision Info Present 2 VI" to reice the information:
    IMAQ Is Vision Info Present 2 VI - NI Vision 2011 for LabVIEW Help - National Instruments
    http://zone.ni.com/reference/en-XX/help/370281P-01/imaqvision/imaq_is_vision_info_present_2/
    Take a look at the attached VI
    Stephan
    Attachments:
    Determine Pattern type.zip ‏13 KB

Maybe you are looking for

  • Report MRP data - Fixed Vendor

    Hi All, I am trying to build a report by query, to display MRP data and related fixed vendor (if available). I tried joining the tables MARC, MAKT, EORD and LFA1, but did not get the output as desired. The report shows only the material with a source

  • Logic required for the requirement (urgent)

    HI experts, can anyone help me out regarding the following logic. The logic will check for both complete and partial goods receipts and invoice receipts. Based on the PO line item history it will calculate the totals into following categories: (1) To

  • Computer hangs

    I have a mid-2011 Intel 27 inch - the first ones that came out with the Thunderbolt port.  Several days ago, I was having problems working on a Final Cut Pro project - FCP was constantly crashing.  I rebooted the computer and all was well.  Then this

  • Setting classpath and creating packages

    Hi I am new to Java and my questions are basic. 1)I am using the kawa IDE and i dont know how to create and use packages. 2)Creating classpath to compile and run java programs from the Dos prompt. I would appreciate any help on these questions

  • Can't import custom ringtones

    Hello there, I just updated my iTunes to the latest 10.6 version, iPhone4(5.1.1), currently using Windows 7. Now I can't drag and drop custom ringtones/text tones I want, although I was able to before. I follow the usual change from mp3 to m4r, and t