DAQmx trigger

I'm relativley new to labview and I have a problem, try to configure the trigger with DAQmx

Im am using NI 6210 to acquire data of probe of HAVE - what Im I'm wanting to do is aquire data whenever the proxistor is triggered since my digital input.

So what I am asking is to capture 1 cycle of data and save data on each cycle to be used at a later date to remove some samples at a specified time.

I installed a test (VI attached) that, for the moment, uses through Boolean to see when the proxistor goes high and start this accurs task and the data entered and the task is stopped when the proxistor is low. This seems to work ok from what I was told that is - this isn't a very good way of timing and I see that captured samples are not the same each cycle so I need to look at another way to capture 1 full cycle of dat using the DAQmx trigger for the aquistion. I have been thorugh the examples NOR but these cant find a way to implement the trigger for what I need. I also read that this series of card does not re - trigger that I need to implement?

Any help/advice would be greatly appreciated.

Hi David,

Sorry for the late reply-

Yes the VI you provided helped me a lot and is a good start for me to help me do what I have to do.

Thanks for your help

Lee.

Tags: NI Software

Similar Questions

  • DAQmx Trigger: Error 2200077

    Hello

    I am trying to create a program to trigger a hammer signal, using a USB-6211 card and 4 analog inputs (via 1 DAQmx create channel HAVE voltage to the hammer and 3 others at the exit of the accelerometer). Having as a basis for some examples of LabView as "Acq Cont & voltage chart ' and 'Impact Test (DAQmx) [.vi SVXMPL_Impact Test (DAQmx)]', I built my program, but it does not work.

    If I don't put the relaxation and the task to start, my programme without any problem (in this case I use 4 DAQmx create channel HAVE tension, a DAQ Timing, linked to the DAQmx Read located on the loop). But when I add the trigger (start analog Edge) out of the loop, so that between the time the DAQmx Read, error-200077 apears and DAQmx. This same error apears too when I try to run the sample of "Cont Acq & voltage graph" (even if I change the sample rate and the number of samples, the error is still the same). The error-200431 apears when I try to launch the second example ("Impact Test (DAQmx) [SVXMPL_Impact Test (DAQmx) .vi]), but in this case probably the DAQ card is not suitable to run this program.

    When I add a task to start before the loop (where is located the DAQmx Read function) on my program without the shutter button, the error-200278 appears. And if I add the trigger and Start Task, just the apperas-200077 error function. However, the startup task is not bothering me as much as the trigger, because when I do not use the trigger on the example "Acq Cont & chart tension" and the task of beginning is always there, this program runs normally. In this case the problem is probably on my prgram and not on my data acquisition card.

    I just want to know if my card cannot run this trigger function (early analog Edge) or if there is something else, because it's strange how a relatively simple example can be run using my data acquisition card.

    Thank you

    Hi, FCB,.

    The USB-6211 can only be released digitally.

    The attached document allows you to see the specifications of your card:

    http://sine.NI.com/NIPs/CDs/view/p/lang/en/NID/203224

  • Capture camera IMAQ via DAQmx trigger operation

    Hi all

    I thought I could re - this poster in this forum to see if I get more ideas!

    I work with a PCIe-1427 card connected by link to a camera (SUI Goodrich) and also using a card PCI-6731 to which I attached a connection block M SCC-68 series.

    I managed to write code to control the .avi capture the camera and write separate code to control the lighting of optical switch connected to the SCC-68.

    The two lines of the optical switch Relay different info and I will in turn present this information to the camera for analysis.  Ideally, I'd like to trigger the acquisition of the capture of the camera with the optical switching so that each image contains information of a single channel only, but I still fell in the integration of the operation of DAQmx meter with IMAQ camera code.

    Is this possible?  I see 1 previous post by using a RTSI cable can I connect the two devices together (or alternatively use the DAQmx to produce a trigger on the digital).  Can someone offer information or an example on how to route signals via the RTSI to IMAQ DAQmx?  Also do I tuned regarding the generation of pulses to the switch that allows signals to pass through RTSI?

    I find it by running my camera and counter code in vi even both will work (not in sync)-if I connect the RTSI and select the camera settings to accept the RTSI triggers, if it was a simple solution?

    I would greatly appreciate any ideas you may have. my time runs out very quickly and is really distressing.

    Sincere greetings and thanks,

    Miika

    Miika salvation,

    If I understand what you try to do in VI you attached, you want the output of the counter of the task DAQ to serve the trig by buffer task it IMAQ via RTSI.

    To do this, use the property node of channel DAQmx to configure the output terminal of the impulse to be RTSI 0:

    Select property > counter output > Pulse > output terminal

    B. change the node property to write.

    C. create a constant and select/Dev1/RTSI0

    On your IMAQ configure Trigger VI, RTSI value as type, set to 0 the number of line, set the action to trigger each buffer and set the polarity to rising edge.

    Oh yes, make sure to connect the RTSI cable for two cards.  I forgot that before and felt really stupid later.

    -Jeff

  • counters with DAQmx software on a 6602 trigger OR

    Hello

    I want to software trigger several counters for output of digital signals with different initial delays. I'm using an NI PXI-6602.

    In my first attached vi, I show you how to send a singal digital camera on a counter.

    In the second vi I set up two meters and added a daqmx trigger vi. But I'm not sure of what trigger source to use and how create the software trigger. Plase help.

    Thank you!

    A few possibilities:

    1. If you know what counter will have the lowest initial delay ahead, you can just do the other trigger of counters out of the in-house production of this counter (together the appropriate initial delays compared to the output of the first counter).  Or if you have an unused counter, you can use it for this purpose.

    2. you can trigger all counters in a single material on a PFI line signal.  You can use a task outputs digital timing software to strobe the high line once you have all your armed counters.

    I didn't look at your screws also because the computer I'm running LV 2011 for the moment.

    Best regards

  • How can I create a single delayed output (analog voltage) of a Trigger (analog voltage) input reference pulse?

    I am working with a combustion chamber and using a system of data acquisition (with the hardware OR SCB - 68) to read the pressure in the cylinder (such as analog voltage). I'm trying a pulse delayed, 1 millisecond to 5 volts of output once the pressure in the cylinder is high above 5 bar (which corresponds to an analogue voltage of 0.25 V). I would also like to record 30 ms samples before the trigger and 220 ms samples after the outbreak. The following image shows visually what I'm talking about.

    I created a LabVIEW VI (which is attached), but I keep running into 2 issues:

    1. When I run with samples finished after a period of time, I get error-200281which I don't quite understand.

    2. Using the Express VI 'Out of time' to keep time for the pulse I can not get a resolution of 1 millisecond, the pulse is not generated when I put the window between 0.003 and 0.004 seconds for high pulse (i.e. the resolution of 'Elapsed Time' seems to be too coarse).

    I'm a beginner to LabVIEW sorry if my questions are trivial or my VI makes no sense, but I was stuck on this during more than a week. Any help would be greatly appreciated!

    Thank you

    Morgen

    This isn't a good way to trigger a pulse.
    Use a trigger DAQmx to send the pulse when your acquired signal exceeds 250 mV you specified.

    See this for DAQmx trigger:

    http://www.NI.com/white-paper/2835/en/#toc4

  • Trigger (acquisition of data for input analog power)

    Hello

    I want to acquire a signal from a controller of the machine and save the data in a PDM file. In order to develop this application, I created a simulated task. Everything is going well so far, except the start of data acquisition. I want the application to start recording of the data when the signal passes a specific value and stop it when the signal is lower then the value, is obtaining current data which records data only when it is higher then the set limit.

    I already tried to use the DAQmx Trigger Vi but I always get the following error message when I use it.

    Requested value is not supported for this property value. The value of the property may be invalid because it is in conflict with another property.

    Property: Start.TrigType
    Requested value: analog edge
    Possible values: Digital Edge, no

    I also read a lot of different posts on this topic, but I'm still not able to get it going.

    I'm pretty new to LabVIEW please excuse if I have a few questions.

    A photo and Vi itself is attached.

    Updated the code has beed saved in LV2014

  • synchronization and clock cDAQ-9174

    I have a cDAQ-9174 with chassis

    HAVE - 9205 OR 9205

    HAVE - NOR 9219

    DIO - OR 9401.

    "NOR-DAQmx allows the on-board clock routing synchronize acquisition or generation of data transactions. A single sync signal or a trigger can be shared between multiple operations on the same device to ensure that the data are synchronized. These signals is shared by the simple signals routing functions that allow connections integrated hardware DAQ. " (from http://zone.ni.com/devzone/cda/tut/p/id/6829)

    When I check the itineraries device in MAX tab' for chassis and c modules individually, I found many clocks with the Green blocks (direct Route). "Once a physical connection is determined, the NOR-DAQmx driver lets the user quickly and easily use this connection to synchronize operations".

    Now my question is how do you choose among these clocks available. What is the frequency of these clocks? The highest frequency the better? What is the difference between /Ctr0SampleClock, /Ctr0InternalOutput, /Ctr0Source, /Ctr0A?

    For example, why well/Dev1/I/SampleClock or Ctr0InternalOutput or of others, especially as a source for the .vi DAQmx Timing (sample clock)?

    Thanks a lot for your help

    Bing

    Concerning

    Hello NCLbingji,

    I think you mix instructions from the manuals of different material. The link you posted refers to the synchronization of several separate devices, while your cDAQ with its modules really is like having one device almost. You will find more relevant information in your manual of cDAQ chassis. For multiple devices, you indeed have a "physical connection", but with the cDAQ is not necessary. You set up these connections in the software in any way, and this should get the routing sorting at the driver level.

    Try to identify which channel will be your a 'primary', the one driving all others and synchronization, the value then asked SampleClock of this string as the rest (DAQmx Trigger.vi) trigger ('secondary') channels, then start all 'secondary' jobs and finally start your "primary" task This will trigger all tasks at the same time. Take a look at the attached picture, which is another application that I worked on, but I think this will help.

    I hope this helps.

    Kind regards

    Michael S.
    Technical sales engineer
    NEITHER UK & Ireland

  • With the help of the cDAQ timers to repeat an impulse of finite samples clocked by train clock material

    Hi all

    A complex project I have to implement an interface acquisition of material for a linear motion sensor using the output of the synchronous serial (SSI) commune in the control of the industrial movement. (I have a bit of experience in digital electronics, but I'm new to hardware synchronized timer e/s digital in LabVIEW).

    To do this, I need to create a clock timed by the busted hardware signal pulse train TTL. Each burst consists of 25 down transitions, with a period of complete cycle of 2.67 microseconds (375kHz). The output is then held high until the next outbreak, that produce at 1ms intervals.

    Using of cDAQ timers and a NI 9401 (based on the example http://www.ni.com/example/30256/en/), I was able to create the pulse train burst as described (see attached image VI). Then I need to configure another timer to set off this explosion to repeat at 1ms intervals.

    Someone at - it guidance on how best to accomplish the hardware timing for the repetition of the pulse train?

    Any suggestions of alternative strategies or observations about the way that my noobish code is stupid or ineffective are welcome as well!

    Thank you!

    Hello RyanBiggs,

    You will need to perform the following operations based on the code that you have joined.

    1. Set up a second output continuous counter task which will give an impulse to 1000 Hz.
    2. Set up your first task of meter output to start according to the configuration in the first step using the vi DAQmx trigger.
    3. Configure the first task of the meter output to redeclenchables via the property node so that the output meter pulses when he sees a rising from the second task of meter output.

    The implementation is shown below.

    Kind regards

    Izzy O.

    Product Support Engineer

    NI.com/support

  • problems syncing multifunction with PCI-6229

    Hi, I use PCI-6229 and LabVIEW 8.0 for synchronized of the thermocouples and voltage measurements. The diagram is attached here. Here are my questions:

    (1) with the analog inputs of TC is ranked very first and followed with inputs analog voltage, as shown in the diagram, it works fine. But once the tension AIs are placed first and followed with AIs for thermocouples, thermocouple reading makes no sense, for example telling 25 deg C, the program shows strong fluctuating temperature 10-80 deg C.

    (2) the delay time using DAQmx Trigger, here I put the Start.Delay = 2, Start.DelayUnits = ticks. And sampling rate = 1000 Hz for sample clock VI. Then, is equal to 2 X (1/1000 second) delay time = 2ms? If no deadline is set, which is the time between the trigger signal and actural reading? Will it be the time device resolution 50 ns?

    All entries would be very appreciated.

    Hi Matt11,

    (1) the order that you specify strings in your task will affect the order of scanning.  In other words, when you add the channels voltage before channels of temperature, the material can enjoy the tension or s channels followed by the string (s) temperature.  Since the 6229 is multiplexed, it comes to each channel sequentially switching in a single ADC.  In your case, it seems that the tension on the ADC to measure voltage not had time to resolve completely prior to taking the measure of temperature.  We refer to this sometimes as ghosts in extreme cases where the value measured on channel b mimics the tension on the channel.

    I think that you have found that you can get this by adding the TC task first.  You could probably also get the same result by allowing more break-in between channels on your scan list.  You can set the time between the channels with a Timing DAQmx property node (you can set the property is the clock frequency convert, which is the opposite of a waiting time).  For slow sampling rates, sets DAQmx convert a default clock rate up to a minimum of 1/14 US (on the x 622).  If your overall sample rate is less than 1/14 us (about 71 kHz) then you should have room to lower the clock rate to convert more of this if you wish to allow more time to settle between the channels.

    I'm a little surprised that you see errors because of it (generally, the problem comes from a signal source of high imepdance measure or when sampling at higher rates), but then again, the temperature measurement would be very sensitive to small voltage fluctuations since you deal with thermocouple voltages at room temperature.  Given the order of scanning affects your measure the problem is almost certainly introduced leaving not enough time for the ADC to settle after reading your string tension.

    (2) ticks means actually timebase tick rather than the graduations to sample.  The minimum is always 2, but this match 2 graduations of 20 MHz (100 ns) time base from which the sample clock (unless you choose otherwise or specify a sampling rate less than 20 MHz / 2 ^ 32), instead of 2 graduations of the 1 kHz sample clock (2 ms).  In fact the trigger is probably performed asynchronously at the base of your time, if you are anywhere between the graduations of 1-2 the basis of delay time (50-100 ns) according to the relative phase of the trigger to the time base.  If no time limit is set, the default value according to me is still 2 ticks which is the minimum that allows hardware (you can check on your own by reading the property node if you wish).

    These points should be compatible between different driver versions, with the exception that DAQmx chose by default convert rate differently in earlier versions of 7.4.  Select the conversion rate is a compromise between the settling of deadlines and the channels are sampled how "simultaneously" on the MULTIPLEXED Board.  The final result in point 7.4 of DAQmx was a compromise apparently arbitrary add 10 US for the minimum conversion period and use this as the maximum by default between the channels.  The user can of course always set the clock to convert to all what best fits their application (in your case, you might want to allow a settlement more between each channel).

    Best regards

  • Can I stop a separation of two edges with infinite time-out?

    Hello!

    I use the example VI: "soul two Edge Separation.vi ' (see the Archives of this message) with a USB-6251and NI a timeout that is infinite because I Don t know when I need start a new measurement. With the features I need to stop the DAQmx VI "DAQmx Read.vi" If this VI Don t stop in a PRE-DETERMINED time (10 seconds), but I do not know how I should do.

    I can´t use a guard dog, because the NI USB-6251 haven´t housing a guard dog. I try to reset the daq with "DAQmx Reset Device.vi", but when I do, the daq break. I also try to use 'DAQmx control Task.vi', "DAQmx's task made" and "DAQmx Trigger.vi" with reference - no, but this screw never run until the end of the "DAQmx Read.vi.

    Thank you.

    Try the joint.  It is registered as 8.0 because I do not know what version of LabVIEW you use.

    The card I have in my machine cannot perform the task you want, so I don't have a chance to test it.

  • Analog triggering PXI-4472

    Hello everyone,

    I am currently having a grip on analog option trigger PXI 4472 Council. I found on this forum a few years ago an engineer designs OR the vi ' "(attached here) Acq Cont & chart voltage-Int Start of Clk-analog as a good starting point to become familiar with the option of analog trigger for this Council.". " The VI seems to be starightworward for my level of knowledge on Labview base, but apparently I'm missing something.

    Here's my problem, as far as I understand in the manual, I can use a 8 ports on 4472 as input for analog signal that can function as a trigger. In the code, edge DAQmx start analog. VI requires the source of the "APFI0" command and the help file, it should be a virtual channel through which signal will. I created the virtual channel named "APFI0" and ai0 connected to it, but I get the error message:

    {Error-200265 occurred at DAQmx start Task.vi:1 Possible reason (s):}

    Attempted to use an invalid trigger analog source.
    Make sure you specify the command source is the name of the virtual
    channel of the job or is the name of a terminal that is not readable which
    the appliance can use as a source of analog control.
    Property: Start.AnlgEdge.Src
    {Value: APFI0}

    I'm guessing that I'm not quite following how the dedicated line for the trigger is initialized. On the fron VI Panel, it is mentioned that the APFI0 is called a standard pin for M-type unit, that I (6221 PXI with BNC-2110 block), but I don't intend to use it as an analog input.

    Can someone suggest how to approach this problem correctly?

    Thank you in advance,

    Oleks

    Hello Oleks,

    Maybe this will help. On the block diagram, make another copy of the list of physical channels and connect to the trigger on the DAQmx Trigger.vi Source input. There will be a red dot of coercion, but it will ensure that you get the right format for your relaxation.

    What is the way analog, you choose to use a trigger, make sure it is included in the task, as below:

  • How do I turn 3 forms different finite life span of output voltages and synchronize the other with an input channel?

    Hello

    I'm doing a tension of 3-story ramp.  One who goes from 0V to-1V can-1V to + 1V and finally wear the voltage of + 1V to 0V.  The main feature is that I try to sync input only a channel for the median ramp.  I get the expected input but my output voltage on the oscilloscope is not correct.  The entry and exit and goes a box NI USB-6229. On the oscilloscope, you can consider the following issues:

    1. There is a gap between the end of the 1st ramp and the beginning of the 2nd ramp

    2. once the main finished once, ramp voltage immediately returned to-1V and again another ramp until it reaches 0V, then levels out for another short period of time

    3. the cycle then repeated from the beginning, completely missing ramp 3

    If all those who think they might help in any way, I would appreciate any input.  If someone tries the attached program: I used these settings: entry rate = 1000; #data points = 200; DT = 0.0005

    -Kyle Shiel

    If you want to copy your ramp of 3 floors without any pause between steps, you must accumulate the entire waveform (all 3 steps concatenated) and write in your output task at once (similar format This example, but no need to start and you need to replace with your own generated table waveform).

    I would just at the entrance to the beginning of the analog analog output task.  You can use the DAQmx Trigger Start.Delay property if you want to wait for the 2nd phase begin to acquire, or you could simply acquire all 3 steps and analyze what you need.

    Best regards

  • Digital triggering PCI-6024E problem

    In my view, the PCI-6024E is intended to support that integrates digital triggering. However, I get the following message if poster every time I try a digital triggering:

    "Error-200452 is produced in property Node DAQmx trigger (arg 1) in DAQmx Start Trigger (PowerPlay) .vi:1-> relaxing test.vi.

    Possible reasons:

    Vital statistics: Property specified is not supported by the device or is not applicable to the task.

    Property: Start.TrigType

    "Task name: _unnamedTask<245>"

    I'm on 8.9 DAQmx and Labview 8.6.

    I've included the simple vi, I tried to test a digital triggering with where I made some stupid mistakes.

    Thank you!

    Hey Ptuinluff,

    Have a look here for information and an example on how to use another subsystem to allow the trigger to start.  Let me know if you have any questions.

    John S

    Technical sales engineer

    National Instruments

  • Mounted daqmx calendar/trigger on 2 chassis mxi-express

    I have 2 chassis SMU (including one with a RT controller) connected with SMU-SMU/8384-8381-MXI-express boards.

    I can see all the devices in both chassis and can configure DAQmx tasks in each chassis individually, but I can't create any single task with a device of two chassis. When there is a feature of two chassis in the task, I get:

    Error-89125 occurred at DAQmx start Task.vi:7220002

    No registered trigger could be found between the devices in the range... Make sure that there is a trigger line available on the bus triggering shared between devices.

    Is this possible in the software? Or should I add material?  I can't find any docs or examples on this subject, other than a promising article on Veristand (ni.com/white-paper/14637/en/, #2) but I can't implement in MAX or NV. Timing is not critical (50 to 100 ms is very good), I just need many devices on 2 sites, so the MXI solution seems to fit in. I thought the solution was to use the local clock on each chassis and set up a trigger shared/exported, but impossible to find something that works.

    Thank you!

    Hey brimcd,

    You are right; It is not a way to send a trigger between chassis without timing card.  This link goes into a bit more detail: http://digital.ni.com/public.nsf/allkb/D91582EBF0810F4486256E70004E4145

  • Trigger with NOR-DAQmx in Ansi C/C++ and OR USB-6210

    Hello

    We need to read an analog signal each time a trigger signal it is does not know how to get the trigger to work. Here is the code that we have found so far:

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    ...
    DAQmxErrChk (DAQmxCreateAIVoltageChan (analogInputTaskHandle, "Dev1/ai0", "AI0', DAQmx_Val_Diff,-10, 10, DAQmx_Val_Volts, NULL));

    Int32 numSampsPerChan = 20;
    uInt64 sampsPerChan = numSampsPerChan;
    float64 timeout = 0; Time in seconds to wait for the function read String-> 0 try to read only once; -1 wait infinitely;
    bool32 fillMode = DAQmx_Val_GroupByChannel; Reading non-interlaced channel
    const uInt32 arraySizeInSamples = 20; Number of samples that are read
    float64 analogValuesFromDevice [arraySizeInSamples];
    sampsPerChanRead of Int32;
    bool32 * reserved = NULL;

    char startTrigger [256] = ' / PFI0/Dev1;
    int startEdge = DAQmx_Val_Rising; rising edge

    DAQmxErrChk (DAQmxCfgSampClkTiming (analogInputTaskHandle, "", 10000.0, DAQmx_Val_Rising, DAQmx_Val_FiniteSamps, 10));

    DAQmxErrChk (DAQmxCfgDigEdgeStartTrig (analogInputTaskHandle, startTrigger, startEdge));

    DAQmxErrChk (DAQmxStartTask (analogInputTaskHandle));

    DAQmxErrChk (DAQmxReadAnalogF64 (analogInputTaskHandle, numSampsPerChan, timeout, fillMode, analogValuesFromDevice, arraySizeInSamples, & sampsPerChanRead, reserved));

    DAQmxErrChk (DAQmxStopTask (analogInputTaskHandle));

    Frees the memory of the task
    DAQmxErrChk (DAQmxClearTask (analogInputTaskHandle));

    ...

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    This is the error message we receive.

    DAQmx error: relation to the outbreak of the reference or the beginning reading
    position of pre-trigger samples before the acquisition is completed.

    Wait until the acquisition is complete before reading or increase your reading timeo
    UT. Additionally, make sure that the equipment is set up and wired correctly, the signal for
    the reference trigger is correct, and that the reference trigger occurs during th
    e device is data acquisition.
    Property: DAQmx_Read_RelativeTo
    Value: DAQmx_Val_FirstPretrigSamp

    Task name: ReadAnalogInput

    State code:-200281

    Can you tell us how to expect the acquisition supplement or increase our reading timeout? We think these are the problems we face.

    Thanks for all your help.

    Update:

    We use is no longer a trigger, so it's resolved.

    We believe that we receive at the origin of the mistake because we weren't using a TTL signal.

Maybe you are looking for

  • Office jet 4500 G510-g, the imaging device not found

    I have an Officejet 4500 with a wired Ethernet connection. For some reason any, that my computer has ceased to be able to scan from it, I can still print and everything very well. I don't remember to make changes to the system and other computers on

  • can I move my itunes music on external drive

    Hello world I want to make space on my internal hard drive. Is it possible to get out all my itunes music on an external hard drive? If so, how do you? Many thanks and best wishes Jim

  • Laptop HP 15-R119TU: version 8.1 of Windows which was this original system comes with?

    So I know that it was Windows 8.1 x 64... But exactly which variation my model comes with? House? Only one language? "N" ? .... Cannot be Pro. Is there any way to determine from the embedded in my BIOS product key? Many sites say it's 'Windows 8.1 wi

  • Roku or Amazon streaming stick does ' t connect to the router WNDR3400

    I have a router WNDR3400 wireless and have problems connecting to a media streaming device. I tried a Roku and Amazon streaming the stick. During installation, the Unit continuously can see my wireless network, after entering my password (set to WPA2

  • parameters of Lenovo

    Hi everyone note most battery options are now missing or broken, for example not able to define a threshold of support, battery reset button is broken.anyone knows why they did this? or is - it just me thanks in advance.ps worked very well until that