Generating a custom signal through a simulated device

Hello,
I am acquiring 6 channels of strain gauge data simultaneously through the SCXI-1000 chasis with the SCXI 1520 card.  I want to create a synthetic input signal so I can test my programming structure.  I created a simulated device and simulated channels, but I cannot figure out how to control the simulated signal that is being generated.  I would like to be able to specify a waveform, frequency, and amplitude of the simulated data so that I can test some special cases of my application.  i cannot use the 'simulate signal' subvi because my code needs to remain unchanged to truly test this.  please let me know if this is possible through a simulated device.  your help is much appreciated.
thanks,
jt

jt,
You can write your own simulated signal source.   Make a copy of the DAQ Read VI with a different name.  This gives you a VI with the same connector pane so it can be substituted into your program.  Open the simulation VI and remove all of the DAQ stuff.  Put your simulation code in its place.  Substitute the simulation VI for the DAQ Read VI in the main program.
Now, how do you "specify a waveform, frequency, and amplitude of the simulated data?"  
You can add a cluster with controls for all those variables to the connector pane if there is a terminal available. Or you can use an Action Engine.  Call the action engine with the command set to Write in your setup code or in a separate VI for the purpose.  Inside the simulated DAQ Read VI call the AE with the command Read to get the parameters for your simulation.  Your flexibility with this approach is limited only by your imagination and your coding skills.
Lynn 

Similar Messages

  • Generating customized signal

    Hello all,
    I've been trying to generate a customized signal on LabVIEW. It needs to be repeated periodically. I wrote a C-code and implemented it in the function block and put the block inside a while loop that is time-controlled using a tick counter. The signal works properly, when I tried plotting it within the while loop. However, when I try to read the data from outside the while loop, I am unable to. Is there any way I can extract the data outside the while loop or use a different timing mechanism that doesn't involve a while loop?
    I tried using a queue but the values weren't passed outside the loop even when I used the queue.
    Thanks!
    sirius18
    Attachments:
    C++ Loop (1).vi ‏31 KB

    Wow, you're determined to stick to a text based programming language even inside a LabVIEW block diagram!
    I'm not sure your VI is working the way you want it to. There is nothing slowing down the while loop. It will loop as fast as the CPU can handle.
    The timing primitives on your block diagram are just giving a millisecond timer value, they aren't providing any periodic timing.
    Your formula node is supplying 1 value pair at a time, these pairs need to be collected somehow. When the XY graph is placed on the the block diagram a "Build XY Graph" express VI is also added to collect the XY data points for you, otherwise you will only ever see a single value pair. The bit that isn't obvious is that you need to wire the "reset" input to the "Build XY Graph" express VI. Otherwise its default value is True and it resets at every iteration and you only ever see one value.
    There is a "First Call?" primitive you can use to reset the Build XY Graph VI once at the start and then switch over to collecting data.
    I've also added a "Wait millisecond multiple" inside loop to slow it down and give you consistently timed data points. Without it you will get countess millions of unpredictably timed data points a second.
    I think this will get you to the next step.
    Troy
    CLDEach snowflake in an avalanche pleads not guilty. - Stanislaw J. Lec
    I haven't failed, I've found 10,000 ways that don't work - Thomas Edison
    Beware of the man who won't be bothered with details. - William Feather
    The greatest of faults is to be conscious of none. - Thomas Carlyle
    Attachments:
    C++ Loop (2).vi ‏32 KB

  • Is PCI-6036E suitable for me to send out analog signal to controll a device?

    Hello
     I need to controll and generate an analog signal to control a nanopositioning stage and I would like to know which one will be better using PCI-7344 board through UMI-7764 or using PCI-6036E board through SCC-68 I/O connector. additional question, I have actualy four wiring pigtailed with LEMO connector, the LEMO connector have two PINs which will be connected to the device, and the 4 wires which will be connected to the signal conditioner, the two pins Ain+ and Ain- with respect to the device, the other 2 wires one is the shield ground and the other one is ground also, the device is CGND, shall I connect the only two differential wires which will be connected in the analog out at the UMI-7764 snd the other one in AOGND at UMI-7764, and the other 2 will be ignored. please may I get any help or advice with full of thanks.
     Aneece
    Message Edited by Aneece on 04-09-2009 10:22 AM

    The XXXXX's means it's recording sys-ex information from somewhere, probably from your Yamaha. It also means you're probably recording onto an audio instrument track, or a MIDI track, not an audio track.
    Without assuming too much on my end, I would suggest, obviously, of course, that you spend a day or two really learning how Logic operates. Learn the terminology, really digest it, and take baby steps.
    Plug in one MOTU interface, and get audio in and out of that. Then plug-in the Yamaha, and do the same. Once you get that under your belt, set up the aggregate device, and by that point, you should be well on your way.
    Focus on the "Getting Started" guide, and after you have a handle on that, try pumping audio in and out of the interfaces, one interface at a time.

  • Generating a digital signal

    Hello,
    I am trying to  generate a digital signal which can be controlled in terms time i.e. Switching ON for 10 minis off for 5 minutes. I tried to generate a digital signal which is going high but unable to control it. As I am the beginner in labview any kind of help is appreciated.
    Please see the attachment for the developed block diagram
    Attachments:
    digital signal generation.vi ‏17 KB

    It appears that all you posted is one of the shipping examples. Is that all you've tried? You can't control it because you're not actually doing anything inside the loop. You're simply setting the value high before the loop starts, and not changing it in the loop. What kind of device do you have? Is it software controlled? If so, you will need to keep track of the time inside the loop. You can use the Elapsed Time VI to do this. Attached is a simple example to get you started to see how this can be done. I'm sure you can figure out how to integrate what you did and what I've shown you.
    To learn more about LabVIEW it is recommended that you go through the introduction material, tutorial(s), and other material in the NI Developer Zone's Learning Center which provides links to other materials and other tutorials. You can also take the online courses for free.
    Attachments:
    Switching signal.vi ‏29 KB

  • Apple TV worked until today. Message says unsupported signal check your output device.  I have checked hdmi cable with another device and it's fine. Put on a different tv and same message.  Went out yesterday and bought a new Apple TV and same problem.

    Apple TV worked until today. Message says unsupported signal check your output device.  I have checked hdmi cable with another device and it's fine. Put on a different tv and same message.  Went out yesterday and bought a new Apple TV and same problem.

    Which TV do you have.
    You may wish to try the following:
    Press and hold the menu and the up button simultaneously on the remote for six seconds, the Apple TV should then begin to cycle through the various resolutions available to it at 20 second intervals.. If you see a picture appear up on your screen, use the remote to scroll down to the OK option and select it.

  • Sending and receiving Signal through Internet connection

    Hello,
    I want to send data that is a continuous generated signal through internet.
    I want to transmit this signal live through internet technology.
    I don't have any background of web development
    Can anyone suggest me how could I send and receive data using internet.
    Regards

    Hello,
    I have made a basic VI using Network Stream, it send Random Number generator which i want to plot on a waveform chart on the other side.
    But when i run the VI on continuous mode it gives an error as End point broken on the client side.
    Kindly guide where i am lagging.
    Regards
    Attachments:
    streams.vi ‏14 KB

  • Changing input buffer size slows down simulated device?!?

    hi,
    my basic problem is having a 200279 buffer overflow.
    for a quick fix I increased the buffer size using DAQmxSetBufInputBufSize, but now the signal coming from the simulated device is much slower.
    how can it be?
    thanx!

    Hi,
    Buffer overflow errors occur when data is written to the buffer faster than it is being read off of it. Buffer underflow errors occur when data is being read off the buffer faster than new data is being added. In order to avoid either of these, a general rule of thumb for NI devices is to acquire around 1/10th of a second of data. For example, for a sample rate of 100 Hz, set samples to read at 10 samples.
    Is it possible for you to decrease the sample rate?

  • How to Generate a Custom Message for A Custom Code.

    Hello,
    Can anyone guide me on this -
    Application : 11.5.10.2
    We have a cutom Trigger through which we want to display a custom message.
    We have re-generated the .msb, but it seems that something is missing.
    Following are the Steps We have followed to generate a custom message.
    1. Responsibility "Application Developer"
    2. Go to Applications
    3. Select Message
    4. Define a new custom message.
    5. Save
    6. Run Request " Generate Message"
    Now when the trigger gets fired , we are not able to see our Custom message.
    How do we call this messge in the custom code.
    Pl. help on this , also can i get some reference note id's on this.
    Thanks in advance.
    Regards,
    Jenny

    CREATE OR REPLACE TRIGGER KPC_RCV_TRANSACTIONS_INTERFACE
         AFTER INSERT OR UPDATE ON APPS.RCV_TRANSACTIONS_INTERFACE
         REFERENCING NEW AS NEW OLD AS OLD
         FOR EACH ROW
    ---     This Trigger Validates following things
    ---     1.     Creation date is not modified and is greater than system date.
    ---     2.     RTV should not be possible before ERS is generated.
    ---     3.     Inspection should not be possible through Deliver Transactions Responsibility
    ---     4.     Delivery of Material should not be possible through Inspection Responsibility
    ---     5.     Item is Excisable and Excise Invoice No Or Excise Invoice Date is Missing
    ---     6.     Only Inspected and Accepted material is Delivered to Subinventory
    ---     7.     Check for Existance of 57F4 for Subcon Job Receipts
    ---     8.     Check Taxes are not Missing
    ---     9.     Check Taxes are Correct
    ---     Declaring The Variables
    DECLARE
         v_grade                    number          :=     0;
         v_employee_id               number          :=     0;
         v_responsibility          varchar2(100)     :=     'Z';
         v_closed_taxes_count          number          :=     0;
         v_taxes_count               number          :=     0;
         v_invoiced_status_code          varchar2(01)     :=     'N';
         v_57f4_id               number          :=     0;
         l_date_ok               varchar2(01)     :=     'N';
         l_gate_date_ok               varchar2(01)     :=     'N';
         l_cenvatable_flag          varchar2(01)     :=     'N';
         l_excise_ok               varchar2(01)     :=     'N';
         l_rtv_ok               varchar2(01)     :=     'N';
         l_inspection_ok               varchar2(01)     :=     'N';
         l_delivery_ok               varchar2(01)     :=     'N';
         l_rej_delivery_ok          varchar2(01)     :=     'N';
    BEGIN     
    --      Get Looged in Responsibility Name
         begin
              SELECT      upper(responsibility_name)
                   INTO v_responsibility
              FROM      apps.fnd_responsibility_vl
              WHERE      responsibility_id = apps.fnd_global.resp_id;
         EXCEPTION
              WHEN      NO_DATA_FOUND THEN
                   v_responsibility := 'Z';
              WHEN      OTHERS THEN
                   v_responsibility := 'Z';
         END;
    ---     Modifications Done by SMT to Bypass checking for following Users
         if     (apps.fnd_global.user_id     <     1091)     then
              return;
         end     if;
    ---     if     (apps.fnd_global.user_id     in     (1090,1111,1112,1126,1540,1591,1570,1881))     then
    ---          return;
    ---     end     if;
    ----     Collect the Information Required from Other Tables
    ---     Check whether item is cenvatable
         l_cenvatable_flag     :=     'N';
         begin
              select     'Y'
              into     l_cenvatable_flag
              from     apps.ja_in_po_line_location_taxes     jipll
              where     upper(jipll.tax_type)          in     ('EXCISE','CVD')
              and     jipll.po_header_id          =     :new.po_header_id
              and     jipll.po_line_id          =     :new.po_line_id
              and     jipll.line_location_id          =     :New.po_line_location_id;
         EXCEPTION
              WHEN      NO_DATA_FOUND THEN
                   l_cenvatable_flag     :=     'N';
              WHEN      OTHERS THEN
                   l_cenvatable_flag     :=     'N';
         end;
    ---     Check whether Taxes are closed
         v_closed_taxes_count     :=     0;
         begin
              select     count(distinct jit.tax_id)
              into     v_closed_taxes_count
              from     apps.ja_in_tax_codes               jit,
                   apps.ja_in_po_line_location_taxes     jipl     
              where     nvl(jit.end_date,sysdate)<     sysdate               
              and     jit.tax_id          =     jipl.tax_id
              and     po_header_id          =     :new.po_header_id
              and     po_line_id          =     :new.po_line_id
              and     line_location_id     =     :new.po_line_location_id;
         EXCEPTION
              WHEN      NO_DATA_FOUND THEN
                   v_closed_taxes_count     :=     0;
              WHEN      OTHERS THEN
                   v_closed_taxes_count     :=     0;
         end;
    ---     Check Existance of Taxes
         v_closed_taxes_count     :=     0;
         begin
              select     count(distinct jit.tax_id)
              into     v_taxes_count
              from     apps.ja_in_tax_codes               jit,
                   apps.ja_in_po_line_location_taxes     jipl     
              where     nvl(jit.end_date,sysdate)<     sysdate               
              and     jit.tax_id          =     jipl.tax_id
              and     po_header_id          =     :new.po_header_id
              and     po_line_id          =     :new.po_line_id
              and     line_location_id     =     :new.po_line_location_id;
         EXCEPTION
              WHEN      NO_DATA_FOUND THEN
                   v_taxes_count     :=     0;
              WHEN      OTHERS THEN
                   v_taxes_count     :=     0;
         end;
    ---     Modifications Done by SMT to Get Invoice Status Code of the Original Transaction
         v_invoiced_status_code     :=     'N';
         BEGIN
              SELECT      'Y'
              INTO      v_invoiced_status_code
              FROM      apps.ap_invoices_all          ap,
                   apps.rcv_shipment_headers     rcv
              WHERE      ap.invoice_num               like     '%'||rcv.receipt_num||'%'
              AND     ap.org_id               =     rcv.ship_to_org_id
              AND     rcv.shipment_header_id          =     :NEW.shipment_header_id;
         EXCEPTION
              WHEN      NO_DATA_FOUND THEN
                   v_invoiced_status_code          :=     'N';
              WHEN      OTHERS THEN
                   v_invoiced_status_code          :=     'N';
         END;
    ---     RAISE_APPLICATION_ERROR(-200151,'Incorrect Transaction Date...');     
    ---     Check the transaction_date is correct or not
         l_gate_date_ok          :=     'Y';
         IF     ((:new.ship_head_attribute6     is     null)                                        or
              (to_date(:new.ship_head_attribute7,'DD-MON-YYYY')     <     (sysdate-3))                    or
              (to_date(:new.ship_head_attribute7,'DD-MON-YYYY')     >     sysdate))                    then
              l_gate_date_ok     :=     'N';
         END      IF;
    ---     Check the transaction_date is correct or not
         l_date_ok          :=     'Y';
         IF     (to_date(:new.transaction_date,'DD-MON-YYYY')     <     to_char(sysdate,'DD-MON-YYYY'))     then
              l_date_ok     :=     'N';
         END      IF;
    ---     Check whether Excise Invoice No and Excise Date is present
         l_excise_ok          :=     'Y';     
         if     (l_cenvatable_flag               =     'Y'               and
              :new.ship_head_attribute1          is     null               and
              upper(:new.destination_type_code)     =     'RECEIVING')          then
              l_excise_ok          :=     'N';
         end     if;
         if     (l_cenvatable_flag               =     'Y'               and
              :new.ship_head_attribute2          is     null               and
              upper(:new.destination_type_code)     =     'RECEIVING')          then
              l_excise_ok          :=     'N';
         end     if;
    ---     Check whether Inspection transaction is being made in correct Responsibility
         l_inspection_ok               :=     'Y';
         if     (upper(:new.destination_type_code) = 'RECEIVING')               then
              if     (v_responsibility like '%RECEIPT%QA%')                    then
                   l_inspection_ok     :=     'Y';
              else
                   l_inspection_ok     :=     'N';
              end     if;
         else     l_inspection_ok          :=     'Y';
         end     if;
    ---     Check whether Delivery transaction is being made in correct Responsibility
         l_delivery_ok               :=     'Y';
         if     (upper(:new.destination_type_code) in ('INVENTORY','SHOP FLOOR'))          then
              if     (v_responsibility not like ('%RECEIPT%QA%'))     then
                   l_delivery_ok     :=     'Y';
              else
                   l_delivery_ok     :=     'N';
              end     if;
         else     l_delivery_ok          :=     'Y';
         end     if;
    ---     Check whether RTV is made prior to generating the ERS Invoice
         l_rtv_ok               :=     'Y';
         if     (upper(:new.transaction_type) in ('REJECT','RETURN TO VENDOR'))          then
              if     (v_invoiced_status_code = 'INVOICED')                    then
                   l_rtv_ok     :=     'Y';
              else
                   l_rtv_ok     :=     'N';
              end     if;
         else     l_rtv_ok          :=     'Y';
         end     if;
    ---     Check Error and Display Proper error message
    ---     Transaction Date Error
         if     (nvl(l_date_ok,'N') != 'Y')          then
              apps.fnd_message.set_name('FND','Wrong GRR Date');
              apps.fnd_message.raise_error;
         end     if;
    ---     Gate Entry Date Error
         if     (nvl(l_gate_date_ok,'N') != 'Y')          then
              apps.fnd_message.set_name('FND','KPC_RCV_CHEK:Wrong Gate Entry Date');
              apps.fnd_message.raise_error;
         end     if;
    ---     Return CENVAT Error
         if     (nvl(l_excise_ok,'N') != 'Y')          then
              apps.fnd_message.set_name('FND','KPC_RCV_CHEK:Enter Excise Invoice No');
              apps.fnd_message.raise_error;
         end     if;
    ---     Return Closed Taxex Error
         if     (nvl(v_closed_taxes_count,1) != 0)     then
              apps.fnd_message.set_name('FND','KPC_RCV_CHEK:Taxes Wrong');
              apps.fnd_message.raise_error;
         end     if;
    ---     Return Taxes Missing Error
         if     (nvl(v_taxes_count,0) = 0)     then
              apps.fnd_message.set_name('FND','KPC_RCV_CHEK:Taxes Missing');
              apps.fnd_message.raise_error;
         end     if;
    ---     Return from trigger, if Transaction Type = 'RECEIVE'
         if     (upper(:new.transaction_type) = 'RECEIVE')     then
              return;
         end     if;
    ---     Return Inspection Error
         if     (nvl(l_inspection_ok,'N') != 'Y')     then
              apps.fnd_message.set_name('FND','KPC_RCV_CHEK:Inspection Not Allowed');
              apps.fnd_message.raise_error;
         end     if;
    ---     Return Material Delivery Error
         if     (nvl(l_delivery_ok,'N') != 'Y')          then
              apps.fnd_message.set_name('FND','KPC_RCV_CHEK:Delivery not Allowed');
              apps.fnd_message.raise_error;
         end     if;
         return;
    END KPC_RCV_TRANSACTIONS_INTERFACE;

  • Adapting custom driver for a robotic device that is interfacin​g with an FPGA

    Hi,
    I have a custom driver for a robotic device that I'd like to interface with an FPGA that is reading the digital encoder signals. I am a novice at programing driver files so any help would be much appreciated.
    Thanks!

    Hey Xaq,
    Well we had some other side projects to work on, and I'm no back working with the Windows/FPGA interface. I have one VI that is able to determine the relative position of the PHANTOM device. We're doing this by using 3 loops (one for each motor), running in parallel. So from LabView I have the x,y,z location of the device. As a first pass I want to build a dll that allows my C program to query to position at any time.
    A couple problems here:
    We probably need to break up the vi into several sub vi's, but I'm not sure where to start. Should the contents of each loop be placed into its own file?
    Also we've just upgraded to 8.2, and I'm noticing the method for building dll's has changed significantly. I was not involved with the conversion process, and I'm a bit confused about the tree structure. Under My Computer we have the FPGA target (this comes from our original *.lep project). If I go to Build Specifications here, the only option is to create a new Source Distribution. If I go back up a level to My Computer, the Build Specifications allows me to build a shared library, but now I can't find the vi listed for the FPGA target.
    Please let me know what I should do next. Thanks!
    --Neel

  • Recording a Line Signal through Motu 828mk3 into Cubase, Please help!

    Hello everyone,
    So i use Motu 828mk3, pair of m-audio monitors, I have logic but find Cubase more compatible for my style. I want to record a line in signal from my DJ mixer (allen&heath xone 62, pair of Pionner cdjs-1000).
    So i connect the main outs (xlr to 1/8") into my Motu analog 1-2 ins. The meter on the Motu reads the signal, i expected the signal to come through my monitors although they are silent. I dont understand what blocks the Main Outs of my Motu.(If i play a song on itunes or a sample in cubase it plays through my monitors)
    I set everything correct on my Motu Audio Setup, i put Default input as my Analog 1-2, and default main outs as Main Outs.
    The Cue mixer which comes with Motu reads the in signal also. I tried to get it connected though cubase too, but im assuming that once i get motu release the signal through my outs i will be able to connect it through cubase.
    Seems like i tried everything in my knowledge, now i need your help. Thank you folks

    Yes i checked on My system preferences, everything is there for Motu, it reads the input and it send out sound from itunes youtube etc.
    In cubase, well first i feel like the input should come out the Main outs of the Motu even if wouldnt want to record anything right ?
    And yes in cubase everything seems to be set to record, drivers are motu on, setting are set, the handle (little speaker) is on to record, in preferences of Device setup motu it set active.

  • Simulated device in MAX, self tests without error and has working Test Panels, but doesn't show up in DAQ assistant.

    I'm trying to create a development machine where we can test new code without using our physical hardware. I've followed this guide in setting up a simulated device. I can get to step 3.2b, but the device does not show up in the DAQ assistant. In MAX, the device self tests and self calibrates successfully, and when I open the test panels, I see some sort of signal. I assume this is a default simulated input since I haven't told the device to look for anything? Note that the two devices I'm trying to create show up in the Devices and Interfaces section, but that even after running Self-Calibrate, the Self-Calibration date is still unspecified.
    When I try to test the device and create a voltage input according to the guide, I am unable to see either device in the DAQ task creator.
    Steps 1 and 2 of this guide are obviously satisfied. Step 3 is not, but this is unsurprising since a simulated device wouldn't be found in the Device Manager anyways. Also, I am not running RT, so step 4 is satisfied.
    Does anyone have any ideas?
    Solved!
    Go to Solution.

    That would be because the PXI 5124 is a digitizer not a analog input device.  You need to use the NI SCOPE driver not NI DAQmx
    Jeff

  • Generating an input signal

    I have completed the FPGA Module tutorial and I am attempting to generate an input signal, but i really don't understand exactly what is going on in the tutorial.  I have two FPGA I/O nodes in the FPGA VI that are labeled "ADC 0 PORT A_I" and a corresponding one labeled Q as well.  I'm assuming that these generate a sine wave that the tutorial used as the input signal.  I want the input to be a sine wave with noise, and Mauricio suggested using DDS, but I don't know exactly how to add this to the existing FPGA VI that I created in the tutorial.  Can anyone help me out on this one? 

    I'm a bit confused by your post. The FPGA Module tutorial guides you through the creation of a VI that acquires a signal. The I/O nodes labled "ADC 0 Port A I" and "ADC 0 Port A Q" are the I and Q elements of the acquired and downconverted signal. Just to be able to test this code, the HOST VI also configures one of the Analog Output channles in "Single Tone Mode" and therfore generates a sine through it. However, the FPGA is not doing anything to generate the sine tone, it's the DAC which is configured to generate the sine tone.
    The I/O nodes that you need to use to generate signals are the "DAC 0 Data" and "DAC 0 TxEnabled". You will also need to use another clock, the "DAC 0 IQ Clk".You might want to read some documentation on the Analog Output and look at the IQ Output example. You can find the documentation on this post: http://forums.ni.com/ni/board/message?board.id=ifrio&message.id=140

  • Does DAQmx 7.5 allow the creation of an PXI-8464/2 as a simulated device?

    I'm using 7.4, but could not find the 8464 in the list of possible simulated devices.  Likewise for the PCMCIA CAN cards - can I create these as simulated devices in 7.5?
    Thanks In Advance - MJD
    Mike Dillon
    Product Manager - Sound & Vibration Software
    MTS Systems Corporation

    Hi Mike,
    The National Instruments' CAN hardware is supported through its own
    driver, NI-CAN. The NI-DAQ (mx) driver software does not interact with
    National Instruments' CAN hardware, only with data acquisition (DAQ)
    devices.
    However, NI-CAN 2.3
    introduced a concept similar to the 'simulated device', where there are
    two virtual ports (CAN256 & CAN257) that are connected to each
    other. Unlike the 'simulated devices' of NI-DAQmx, those two virtual
    ports/interfaces are not visible in the Measurement and Automation
    Explorer.
    For more information on the two virtual ports, please refer to the readme file of NI-CAN 2.3 or to the Frame to Channel Conversion section of Chapter 6, Using the Channel API of the NI-CAN Hardware and Software Manual.
    -B2k

  • Simulated Device Aliases should behave like other device Aliases

    BUG submission:
    Here is a nasty little problem: do the following:
    Replace a USB device neatly:
    Assign an Alias to a USB Device  For simplicity use an NI USB 6008 "MFD1"
    Remove the device from the system
    Plug in a new NI USB 6008
    Run the code here with "Device to rename" = MFD1
    require no further action.  This is desirable behavior!  user's are happy (And if I went to nirvana and wrote the Devmon hook linked from the abResult: Old 6008 becomes "Dev1" New 6008 is MFD1 and existing applications calling resources for "MFD1" ove the swap happened at PnP device discovery)
    Similar techniques can be used for a system where one developer delivered a solution using a DMM as "Dev1" and your app call's it "DMM1"  Yup, Application specific hardware configuration has a lot of potential!
    Contrast that with this:
    Replace a Simulated USB device:
    Assign an Alias to a Simulated USB Device  For simplicity use an NI USB 6008 "MFD1"
    Plug in a new NI USB 6008
    Run the code here with "Device to rename" = MFD1
    Ignore the runtime error
    Result: Simulated 6008 remains "MFG1" New 6008 is "Dev1" and existing applications calling resources for "MFD1" are broken pointing to the simulated device.
    Simillar problems ocurr when importing a *.nce file (No surprise since, the system configuration API lets LabVIEW act on system configuration methods and properties just the way MAX does)
    This bug can be a showstopper for high mix test enviornments with staged test releases.
    Jeff

    Intaris wrote:
    An alias for a usb device is probably intimately linked to the device serial number. If the devices have valid serial numbers (usb spec says its optional) then what you want wont work because windows will only ever recognise that device with pid vid and serial number exactly matching as being the same device.
    Which is why I intercept the connection event and configure NI Device monitor to launch the custom exe to re-name the alias via the system configuration API for USB DAQmx devices (and launch a config import from file in a system rollcall sequence for system hardware that doesn't use the DAQmx expert)
    With an alias I could care less about how the OS identifies the resource- its what they exist for
    Jeff

  • Generate PDF (BI Publisher) through APEX_PLSQL_JOB.SUBMIT_PROCESS

    Hi!
    Oracle 10.2.0.4 32, Apex 4.0.2, BIP 10.x Win.
    I have to generate cca. 1000 reports in PDF (some customer bills) through BI Publisher print server.
    PDF is defined through "Reports queries" and "Reports layouts" directly defined from Apex env. Report template is Word RTF file. Report query has one parameter:
    and R.BILL_ID = :G_BILL_IDRunning from App page process it is not acceptable to do that because operation should takes hours and user cannot have open freezed browser.
    So I found out "APEX_PLSQL_JOB.SUBMIT_PROCESS", which submit process in "job" as background process.
    On page I left just "SUBMIT_PROCESS" call:
    BEGIN
      APEX_PLSQL_JOB.SUBMIT_PROCESS ('begin bills_pkg.generate_biils; end');
    END;and put the whole logic in package. Small problem was to change Apex item (Application item), what I solved and change with:
    APEX_UTIL.set_session_state(p_name => 'G_BILL_ID', p_value => cur_array(i).B_ID);for every record in cursor (I know his is not optimal but I just wanted to get working demo).
    Call from package procedure is like (slightly modified from Apex page process which was working!):
    open cur;
      -- assign to have that value as parameter for !??
      APEX_UTIL.set_session_state(p_name => 'G_BILL_ID', p_value => cur_array(i).B_ID);
      print_one_report (cur_array(i).B_ID);
    close cur;where "print_one_report" is mine procedure which saves PDF in db (proc was the same as before when was working but with too long result).
    Unfortunately then all generated PDF reports (which I save in database) has 0 bytes length (I call the same procedure called as before when reports were generated but from Apex page process directly).
    Seems that "G_BILL_ID" is no longer having correct values ... like session problems.
    How to achieve and fix that (generate PDF from cursor) or is there any article how to manage BI Publisher printing with APEX_PLSQL_JOB.SUBMIT_PROCESS?
    Rg,
    Damir Vadas
    P.S.
    Should
    apex_custom_auth.define_user_session (p_user, p_session_id );
    apex_application.g_flow_id := p_app_id;might help?
    Edited by: user1050751 on May 13, 2011 12:57 PM

    Damir,
    Here is one way that you could get a background job to create your thousand reports (4 steps).
    1st define your report query and layout within APEX (and BI-Publisher builder - Word plugin).
    2nd write a custom process to call apex_util.get_print_document to generate your 1000 reports and place them in a blob column.
    http://download.oracle.com/docs/cd/E17556_01/doc/apirefs.40/e15519/apex_util.htm#CHDDECIA
    DECLARE
        l_document BLOB;
         l_security_group_id NUMBER;
        CURSOR your_cur IS
        SELECT...your thousand records
    BEGIN
        wwv_flow_api.set_security_group_id(p_security_group_id);
        l_security_group_id := wwv_flow_api.get_security_group_id;
        FOR your_rec IN your_cur LOOP
            BEGIN
                 set any item values that will be referenced in your report query here
                 l_document := APEX_UTIL.GET_PRINT_DOCUMENT (p_application_id     => v_your_app_id,
                                                             p_report_query_name  => v_your_defined_report_name,
                                                             p_report_layout_name => v_your_defined_layout_name,
                                                             p_report_layout_type => 'rtf',
                                                             p_document_format    => 'pdf',
                                                             --p_print_server             =>
                INSERT INTO your_table... id, l_document, file_name, mime_type...
                COMMIT;
            EXCEPTION
                WHEN others THEN
                      write an error to a job log...
            END;
        END LOOP;
    EXCEPTION
         WHEN others THEN
               write an error to a job log...
    END;3rd write logic that will submit your custom process using APEX_PLSQL_JOB.SUBMIT_PROCESS or you can use dmbs_scheduler package.
    4th write code to retrieve the report data from the blob column and display or distribute to users.
    I've never called the apex_util.get_print_document recursively like this before so I'm not sure how it will perform. There are 4 versions of the get_print_document API so use the one that best fits your needs with performance in mind.
    After writing the above logic I found this post that is very similar.
    Scheduling reports with dbms_scheduler
    An alternative method to what I've listed above is scheduling reports using the Bi-Publisher web service.
    http://bipconsulting.blogspot.com/2010/04/how-to-schedule-report-with-bi.html
    Regards,
    Todd
    Edited by: tfa on May 16, 2011 8:03 AM

Maybe you are looking for

  • Regarding control center

    in my control center there is no airplay option only air drop,,,,i dnt jailbreak,,but y that airplay is not comming in my control center?????

  • Next_day is not giving correct date

    SELECT NEXT_DAY('01-apr-2013','monday') from dual; When i fire the above query it suppose to display '01-apr-2013' but it is displaying '08-apr-2013' which is wrong.. Pls suggest.

  • IPlanet 4 'hangs'

    Hi We're using iPlanet 4.1 with Verisign certificates. Every now and again it seems to die, i.e. when you attempt to access it you get a 404. The process is still in the Unix process list and when you go into the admin server it claims that the serve

  • XCode-Debugging  Where is Step Over/Into/Out

    I have been racking my brain... and trying different things... but I just can't find them. I am "new" (as of two months ago), to this development environment. I am able to get into the debugger, with brakepoints... However, I can not step Over/Into/O

  • Fehlermeldung beim Installieren von CS6

    Hallo, ich kann CS 6 nicht installieren, da der Installer nicht initialisiert werden kann. Der in der Fehlermeldung angegebene Adobe Support Advisor kann leider nicht nicht mehr heruntergeladen werden. Was kann ich tun? Mit besten Grüßen Volker