Triggering GigE Camera with Hardware Trigger

Hello,
Here is an outline of what I want to accomplish:
-LabView program starts running and waits for GigE camera to output frames
-Hardware trigger leads to GigE camera outputting frames
-Some simple arithmetic is done on each frame to generate the average pixel value--> this average value is plotted for each frame
-Repeat the above three steps
Please see the attached VI. I have successfully set my camera's settings in MAX to make it wait for an external hardware trigger. However, the output of IMAQdx Grab2.vi inside the While Loop is only a single frame (even though in MAX I have set the Acquisition Mode to MultiFrame - 255 Frames).
Any help would be appreciated!
Thank You.
Solved!
Go to Solution.
Attachments:
ImageGrab.vi ‏57 KB

The "problem" that you are having is the frame rate of video acquisition, which you think is about 20 Hz.  Take the very simple VI I posted and run it with your camera -- all it does is continuously take frames (and display them) -- does this have an acceptable rate?  I suspect it will.
If so, then "start with what works and add to it", rather than trying to "fix what is broken".  First, let's consider how to (better) control the Start and Stop of frame acquisition.  I like your idea of using the 6009, but I recommend (if you are using a 3V signal as the trigger) that you wire the trigger to one of the Digital I/O ports (as 0 and 3V are acceptable TTL levels for False and True).
Your Video loop will be "clocked" by the Camera at its frame rate, so you might consider using the same loop to clock the DIO.  Take a Digital sample of the line to which you've wired your TTL signal, and as long as it is True, run the loop.  [You'll need to think about how to get the loop started ...].  It should, I think, be possible to read from your USB 6009 within a 60th of a second -- if it is too slow, there are other ways of handling this with a separate parallel loop, but let's not go there until we see it is a problem.
So now, in principle, you've gone from a simple loop showing frames at 60 Hz to a loop controlled by a TTL signal showing frames at 60 Hz.  All we need now is to process those frames.
Here is where you want to use a Consumer/Producer pattern -- you don't want to do processing inside this loop (because the loop cannot run faster than all of its parts, taken together, and if you are processing incoming data, you have to get the data, then do the processing).  Instead, you have have two loops running in parallel -- the Producer loop acquiring the videos, and then "exporting" them to a Consumer loop that processes them.
Are you familiar with this pattern?  There are numerous examples around (look in File/New/From Template/Framework/Design Patterns, and at some of the Sample Projects).  It uses a Queue, with data put onto the Queue by the Producer and removed by the Consumer.  You might need to increase the number of buffers for your camera, but you should be able to do quite a bit of processing in 1/60 of a second.
Bob Schor

Similar Messages

  • 1-Tap 10-Bit Camera with Frame Trigger

    How can I change "1-Tap 10-Bit Camera with Frame Trigger" to 12 bit output in Labview? 
    I tried to change from 10 to 12 bit but whenever the intensity reach 1024,it will decrease to 0.
    I'm using PCIe-1473 board with Basler Camera

    Please suggest me any document or tutorial for programming & configuration of other paramters of NI PCIe-1473R

  • IMAQdx with JAI and a hardware trigger

    Hello,
    We are working with two 'JAI AD-080' cameras and IMAQdx, and have two problems regarding the triggering and frame grabbing:
    1)  We are unable to change the trigger source through IMAQdx property node or the Vision Acquisition Express; Vision Acquisition block.
    2)  When we manually edit the trigger source property using the NI Measurement and Automation Explorer (MAX) to its correct value, we can't get all four of the CCD's to run at a time without resulting in bad packets, e.g. horizontal black lines across the images.
    Our goal is to obtain the images from the 4 CCD's at a rate of 5 Hz using our hardware trigger.  We can already connect and obtain all four images at full speed, but the 5 Hz trigger is not being used by the cameras in that case.
    Details of the setup:
    NI 2011, Windows 7 
    Two (2) JAI AD-080 cameras (with 2 CCD's each), GigE cameras connected over Ethernet
    Hardware triggering at 5 Hz, on pin:  'Line 7 - TTL In 1'
    Details of the problem:
    (1)  Setting the trigger source not possible in Vision Express or IMAQdx property node
    In order to use our hardware trigger, we have to set the camera property 'CameraAttributes::AcquisitionControl::TriggerSour​ce' to a specific pin (Line 7 - TTL In 1).  This property is available in MAX, but is not usable in the Vision Express Block.  The property is present, but the values are invalid.  Here is what I think is happening:  the list of properties are read from the camera, but LabVIEW does not know what the valid values are for that property and it populates the value drop-down menu with whatever was loaded last.  This can be seen in figures 1 and 2 where the values in the drop down menu change.
    Similarly, this property of 'Trigger Source' cannot be changed programmatically using the IMAQdx property node shown here: http://digital.ni.com/public.nsf/allkb/E50864BB41B​54D1E8625730100535E88
    I have tried all numeric values from 0 to 255, and most give me a value out of range error, but the ones that do work result in no change to the camera.
    (2)  Lost packets in image during triggering
    If I set the 'Trigger Source' property in MAX to the correct pin, save the configuration, and then use the Vision Acquisition Express block to connect to the camera, the triggering works properly (the hardware trigger is used and the images are received by LabVIEW at 5 Hz).  However, this only works for one CCD:  If i use the same code for all four CCD's at the same time, I get black bars on the images, and at least one of the CCD's result in an error in 'IMAQdx Get Image.vi'  (code -1074360308, -1074360316)
    I tested this by using the configuration attributes created by the Vision Express Block, (The string used in the 'IMAQdx Read Attributes From String.vi'),  in the code we have been developing as well as a very simplified version which I have attached.  Those configuration attributes are saved in the text files:  JAI_Config_TrigON.txt and JAI_Config_TrigOFF.txt for using triggering or not respectively.  
    So my final questions are:
    Is there a problem with the IMAQdx because it doesn't recognize the trigger source value?
    Do you have any suggestions for why there are bad packets and trouble connecting to the cameras when I load them with the trigger on attributes?
    Thank you for your time - 
    Attachments:
    Fig1_VisionAcq.png ‏387 KB
    Fig2_VisionAcq.png ‏442 KB
    Fig3_BadPackets.png ‏501 KB

    Hello,
    Thank you for your response; especially the speed in which you responded and the level of detail.  
    I have not solved the problem fully in LabVIEW yet, but I was able remove the black lines and apparitions from the images using different camera parameters.  
    Since this was a significant victory I wanted to update:
    1)  Version of IMAQdx?
    I have IMAQdx 4.0, but the problem persists.
    2)  Setting configuration files
    Your suggestion to pay attention to the order in which the properties are set as well as using the MAX settings is very helpful.  I have not explored this feature fully, but I was able to successfully use MAX to set the default settings and then open the cameras programmatically without loading a new configuration file.  
    3)  Bandwidth limitations
    I modified the CCD's to only use 250 Mbits/second, but the lost packets (or missing lines/ apparitions) were still present.  
    4)  JAI AD-080GE Specifics
    I am using the JAI AD-080GE; and there are two settings for this camera that I want to mention:  
    JAI Acquisition Control>> Exposure Mode (JAI)>>Edge pre-select
    JAI Acquisition Control>> Exposure Mode (JAI)>>Delayed readout EPS trigger
    The "Edge pre-select" mode uses an external trigger to initiate the capture, and then the video signal is read out when the image is done being exposed.
    The "Delayed readout EPS trigger" can delay the transmission of a captured image in relation to the frame start.  It is recommended by JAI to prevent network congestion if there are several cameras triggered simultaneously on the same GigE interface.  The frame starts when the 'trigger 0' is pulsed, then stored on the camera, then is transmitted on 'trigger 1'.  
    The default selection is the "Delayed readout EPS trigger", however, I do not know how to set the 'trigger 1' properly yet and I only have one connection available on my embedded board that is handling the triggering right now (I don't know if 'trigger 1' needs to be on a separate line or not).  Incidentally, the system does not work on this setting and gives me the black lines (aka lost packets/ apparitions).
    I was able remove the black lines and apparitions using the "Edge pre-select" option on all 4 images with a 5 Hz simultaneous trigger.  I confirmed this using the "JAI Control Tool" that ships with the cameras.  I am unable to make this happen in MAX though, as the trigger mode is automatically switched to 'off' if I use the mode:  JAI Acquisition Control>> Exposure Mode (JAI)>>Edge pre-select
    i.e. when manually switching the trigger mode to 'on' in MAX, "JAI Acquisition Control>> Exposure Mode (JAI)>>Delayed readout EPS trigger" option is forced by MAX.  The vise-versa is also forced so that if EPS mode is chosen, "Trigger Mode Off" is forced.
    Additionally, there is a setting called:
    Image Format Control>>Sync Mode>>Sync     &     Image Format Control>>Sync Mode>>Async
    When the "Sync" option is chosen the NIR CCD uses the trigger of the VIS CCD.  In addition to using the "Edge pre-select" option, the "Sync" option improves the triggering results significantly.  
    5)  Future troubleshooting
    Since I cannot set the camera parameters manually in MAX (due to MAX forcing different combinations of parameters in 4), I am going to explore manually editing the configuration file and loading those parameters at startup.  This can be tricky since a bad combination will stall the camera, but I can verify the settings in JAI Control Tool first.  There is also an SDK that is shipped with the cameras, so I may be able to use those commands.  I haven't learned C/C++ yet, but I have teammates who have.

  • Single image by one hardware trigger

    I am using Basler Camera Gige vision sca640-70gc with real time EVS and vision builder i use MAX for putting camera settings. when i put settings of camera as mentioned in the manual to get single image per hardware trigger it gives me time out error.
    hardware trigger comes every 3.5 second what camera acquisition control settings i have to use to get the desired result?and what is more setting i have to put in my consideration.

    Hi frank
    I think you are facing a bit troubles please ensure these things
    1.Put your camera in hardware trigger mode.
    2.Set your timeout period too long.
    3.In acquisition mode select the continuous immediate mode (You will get only one image when the camera triggers).
    4.If you getting more images its because of your camera triggers.
    I think this will help you...
    Sasi.
    Certified LabVIEW Associate Developer
    If you can DREAM it, You can DO it - Walt Disney

  • Gige Camera slow initialization

     I 'm using a Aviiva EM1 GigE camera with Labview 2011. I insalled the latest Imaqdx driver. I can acquire without problems images. However the initialization of the camera takes about 38 sec with Max or Imaqdx Open. When using Gevplayer (Pleora) it takes only 10 seconds. What can I do to speed up the initialzation in Labview ?
    Regards

    Hey,
    how about your network settings and all. have you enabled Jumbo frames? If yes, then there must be an incompatiblity of both ev2 and LabVIEW.
    Sasi.
    Certified LabVIEW Associate Developer
    If you can DREAM it, You can DO it - Walt Disney

  • Triggering a GigE camera

    Newbie question for you all.  Hope this makes sense:
    At the moment, we are using a Dalsa area scan camera and a NI PCI-1424 frame-grabber with a parallel digital interface.  We use LabVIEW and IMAQ software.  Our software creates an IMAQ session that sits and waits for a single external trigger on the PCI-1424 board.  When it receives the trigger, we acquire a series of frames at a given frame rate.
    Now we want to upgrade the whole system and are considering a GigE camera from Basler (Pioneer piA640-210gm).   If decide to do this, how would we configure the triggering? 
    I noticed that NI's GigE board (PCIe-8231) does not have any trigger inputs.  So I guess the only way to trigger the acquisition is to use the camera's trigger input?  But that doesn't even seem possible.  The user manual on the camera indicates that external triggering is used when you have a pulse train that triggers every frame.  We want the camera to wait for just one rising-edge which then triggers a pre-determined acquisition that is setup in the software.  Any ideas how to do that with GigE?
    Also, we use NI-IMAQ software right now.  If we upgrade to GigE, then we are going to have to totally re-write our software to use NI-IMAQdx, right?
    - John

    Hi John,
    With Firewire and GigE cameras the triggering is generally* done on the camera rather than the interface into the PC. The reasoning is that the interfaces into the PC do not have low-latency, deterministic methods to trigger the camera except via a separate external trigger wire linking the PC and camera. (*With Firewire since you are bound to the distance limits of the bus, it is generally easy to make this connection than GigE). NI does sell products like the 8255R (a firewire interface combined with reprogrammable I/O suitable for use with triggering cameras via an external cable, but there is no device that combines this functionality with GigE ports (but no reason why you can't combine with a separate GigE network card). However, as I'll desribe below, GigE Vision has its own tricks that reduce/eliminate the need for this...
    With the triggering moved to the camera, it is up to the camera vendor to decide the complexity the triggering methods they implement. On GigE Vision cameras, because they use GenICam XML files to allow the cameras to self-describe their features, any capabilities the camera manufacturer can dream up will be exposed through the driver. We are starting to see GigE cameras on the market with very complex triggering capabilities (including built-in pulse-generation capabilities, complex input and output interactions, etc) that can rival features on many framegrabbers. You can configure all of these features within MAX or your application just like you can control any other feature of the camera. Note that while there is flexibility to implement any feature desired, there is a "Standard Features Naming Convention" that, among other things, includes complex triggering definitions. This list aims to ensure that cameras that implement the same features (such as common triggering modes) use the same names and behavior for their features.
    As to whether the Basler Pioneer will support what you want, I am unsure. I checked the triggering capability here: http://www.baslerweb.com/downloads/17785/pioneer_manual.pdf. According to their docs, they support an "AcquisitionStart" trigger, meaning you should be able to trigger the start of a single-frame, multi-frame, or continuous acquisition when that trigger comes in (and the source can be varied, including external I/O pins). However, I tried this on a Basler Scout that we have and only a single frame was generated in this mode when triggered via a software trigger. Its possible I have an earlier firmware that is behaving incorrectly, but in theory the Basler camera should be able to do what you want if they named it correctly. I would confirm the expected behavior with Basler to be certain. As I mentioned, there should be plenty of other cameras on the market that do support this triggering mode if the Basler does not.
    With regards to re-writing your software for IMAQdx, its true that you would have to make the translation from IMAQ code. However, the API's are very similar for most things and code porting shouldn't be too bad.
    Please let me know if you have any more questions regarding this,
    Eric G

  • GigE camera - grab image with black bars

    Hi everyboby,
    I am using Ni vision acquisition to grab images from a GigE camera.
    I recieve images just as I trigger the camera - so fare so good.
    Every other picture shows some black bars.
    Does anyone has an idea what it could be?
    It's not the hardware, the camera works perfect with the SDk form the manufacturer.
    Thanx for any help
    Solved!
    Go to Solution.

    Sounds like an incomplete frame, this could be caused by missing packets.  To prevent missing packets during acquisition you can do two key things: ensure the packet size configured on the camera does not exceed what the network adapter can handle, and ensure that the bandwidth of image data being output by the camera does not saturate interface bandwidth.  I would lower camera packet size to 1500 initially to determine if the packet size  is the cause of the problem.  You can throttle how much data the camera can send by manipulating the interpacket delay, some manufacturers have a very handy feature called StreamBytesPerSecond.  Depending on which mechanism you can use, increase interpacket delay or reduce StreamBytesPerSecond.

  • Problems acquiring and saving multiple camera images using a switch with GigE cameras

    Hi Folks,
    We are having an issue with connecting 6 GigE cameras via an Ethernet switch. We can acquire and store individual cameras but once we increase the number of cameras we end up with jumpy avi files.
    Each camera has been physically labelled and attached to the switch, so camera 1 is attached to port 1, which then corresponds to Cam1 in MAX. When recording multiple files what appears to happen is that the avi file from cam1 actually has images from multiple cameras, as if cam1 is being renamed/allocated on each frmae and each time a different camera is allocated. How can we fix this?
    We are new to this so any help or advice would be much appreciated.
    Thanks in advance,
    Cathy
    Attachments:
    Camerad.png ‏60 KB
    Camera.vi ‏91 KB

    I think your problem is caused by using the same image name on each instance of Imaq create. "Grab and Save to AVI Acq" being the string you are using. I am pretty sure If you make each image name unique you wont get image referance problems.
    Senior Software Engineer
    www.Adansor.com

  • Simultaneous capture with usb and gige cameras ?

    Hi,
    I am unable to capture (continuously) simultaneously from a USB and a GigE camera, is there a limitation in Labview ? Both cameras work if I use them one at a time. I am using Labview 2012. Both cameras are IMAQdx devices and I am using IMAQdx VIs.
    Thanks,
    Best,
    Saumil

    I have just converted to low level, just in case. Not tested yet...
    USB camera: USB 2.0, 10 frames/sec, 1280x1024 -> about 13 MBytes/sec
    GigE camera: 300 frames/sec, 640x480 -> about 90 MBytes/sec
    So both cameras data rates are within their respective interface limits. Although when I started to archive raw frames from the USB camera, everything in labview became super slow. The slowness was reduced dramatically once I started storing to compressed AVI files (rates went from 15 Mbytes to approx. 1.5 Mbytes/sec). I have not tested  archival with the GigE camera yet, I am expecting troubles, just dont know how severe.
    Thanks for your help,
    Saumil

  • HT201257 Tried to perform the Apple Hardware Test by holding down the D key on restart - goes straight to my desktop.  Was told to try using te original cds that came with the computer - can't find them. Can I buy new ones or what do I do?

    Tried to perform the Apple Hardware Test by holding down the D key on restart - goes straight to my desktop.  Was told to try using te original cds that came with the computer - can't find them. Can I buy new ones or what do I do?

    Have the Mini's Serial# handy & call Apple Care, they usually have original replacement Discs available.

  • VB6 with GigE cameras?

    I am using Vision Devlopment Module 8.5 with VB6.   I have written much code using activeX controls for 1394 firewire cameras.   Are there VB6 activeX controls for GigE cameras?  If so,can you put link here for examples.  Thanks You
    Solved!
    Go to Solution.

    Hi Dan,
    The IMAQdx documentation indicates that it does have legacy MSVB6 support. Your camera should work with these examples as long as it meets the correct GigE or DCAM standards for working with IMAQdx, since this is still using our IMAQdx drivers.
    I'm not sure about ActiveX support specifically for GigE cameras, but once you've connected to your camera with IMAQdx in VB6 I don't see why you shouldn't be able to use functions you were using before. I suggest you try modifying your existing code to connect with your GigE camera, and test the functionality of your ActiveX code.
    Thank you,
    Emily C
    Applications Engineer
    National Instruments

  • Acquisitio​n.GetLastI​mage based on Gige camera external trigger doesn't give me the latest image

    I am planning on using the camera's trigger input to start capturing the image. I have 4 cameras, but I only need 1 image each time. \
    Here are the steps I am using:
    1.  Set the camera to exteral trigger
    2. PLC send the trigger to camera to take the picture
    3. Read the image from camera.
    It only works for the first time becasue it can get the first image, then never refresh the image again..
    Here are the sample codes I use:
                         _session = New ImaqdxSession("Name")
                        _session.Acquisition.Configure(ImaqdxAcquisitionTy​pe.SingleShot, 1)
                        _session.Acquisition.Start();
                        _session.Acquisition.GetImageAt(_currImage, 0)
    The piece of code is running when the PLC sends the trigger to camera. I was wondering whether it might be caused by no image was taken at that time.
    I also tried
                   _session.Acquisition.GetLastImage(_currImage)
    Same behavior..
    The strange thing is if I change the codes like the following
                        _session = New ImaqdxSession("Name")
                        _session.Acquisition.Configure(ImaqdxAcquisitionTy​pe.Continuous, 1)
                        _session.Acquisition.Start();
                        _session.Acquisition.GetLastImage(_currImage)
    It only works when 2 trigger sent from PLC. Should I use _session.Acquisition.GetNextImage(_currImage) instead?
    Question:
    How I do know the new image is arrived?               

    How are you running the repeat acquisition? I assume you are running it a loop of some sort. Are you closing the IMAQdx session at any point? This will help understand why we are seeing the behavior you are getting.
    Cameron T
    Applications Engineer
    National Instruments

  • GiGe camera waits till there is a TTL signal takes a picture and then waits again for another TTL signal (IMAQdx)

    Hello , I have a problem with a GIgE AVT camera.
    All I want to do is make the camera wait and each time there is a TTL signal snap a picture and save it to the disk.
    I have spent hours and hours trying to make this work but I had no luck !
    Could someone with knowledge of the IMAQdx drivers help me please !?
    I really can't find a solution to this problem!

    Hello LaThoS, 
    thanks for your reply .
    What i am trying to do is use an AVT GS660 which actually has a hardware trigger input and all i am trying to do is put it in a while loop and make it wait untill there is an external ttl signal, then take a picture , save it and then wait for another ttl signal !
    I 've seen the examples but i cannot see how they are going to be usefull to me since there is no hardaware ttl signal on the cam( https://decibel.ni.com/content/docs/DOC-15346)
    I am attaching my sample code.
    Could you please help me figure it out ?
    Thanks in advance,
    yannis.
    ps:the problems that i am facing is that on ttl the camera starts saving the same image continisously till i stop the loop !
    Attachments:
    AVT_v5_NI.vi ‏75 KB
    enum.ctl ‏4 KB

  • How can I use a USB camera with cRIO 9022. Please see my strange problem.

    Hi,
            I would like to use a USB camera with NI cRIO 9022. I used the same USB camera with NI USB 6216 DAQ device and developed a VI(within a PROJECT and outside it). So, It is working fine with NI USB 6216 device when I use the Vision Assistant Express VI and gets detected in its Initialization Window.  Please see JPEG File 3 where I get NO ERROR.
            I am facing a problem when I want to use it with NI cRIO 9022. What exactly I am doing in this case is:
    1) Create a NEW PROJECT
    2) Add Targets and Devices(NI cRIO 9022)
    3) Use the Scan Interface mode
    4) Create a NEW VI under the cRIO 9022 device 
    5) Use a Timed Loop(Synchronized with Scan Engine) for continuous Data Acquisition and Sending from the Analog I/O modules.
    6) Use the Vision Assistant available through the NI Vision Acquisition 2010 Module(I get STUCK HERE! The Express VI opens the Initialization Window, but I don't see the USB camera like in JPEG File 3)
    I am facing difficulties with this HOST COMPUTER, cRIO implementation differences. On my host computer I have the software packages as shown in JPEG File 1, and on my cRIO 9022 as shown in JPEG File 2.
    Can someone guide me how to overcome this and get the USB camera detected when I am using NI cRIO 9022?
    NOTE: If this is a problem with software mismatches on HOST and NI cRIO 9022 device, please see JPEG Files 1 and 2 for available software and Host and cRIO 9022.
    Thanks.
    Amar.
    Attachments:
    NI Vision Acquisition Express Error for NI cRIO 9022.JPG ‏39 KB
    IMAQ and dx Modules Installed on my NI cRIO 9022 hardware(No NI Vision Acquisition 2010 SP1).JPG ‏82 KB
    NI Vision Acquisition Express NO Error for NI cRIO 9022.JPG ‏48 KB

    Only GigE comms are supported on the cRIO Real Time OS. Have a look at the following:
    Machine Vision on NI CompactRIO and Single-Board RIO
    Adnan Zafar
    Certified LabVIEW Architect
    Coleman Technologies

  • Is there any plan to for usb 9234 to support hardware trigger?

    We expect to provide our low cost modal testing solution based on NI usb-9234 and ModalVIEW software. Hardware trigger is needed when using usb 9234 to perform impact testing.
    Message Edited by Troglodyte on 07-11-2008 10:44 PM

    Thank you for your post. 
    In order to keep the power of the board to a minimum, and to keep our prices very competitive, our customers use software triggering for applications such as impact hammer test.  We are happy to coach your development team in the implementation of software analog triggering in LabVIEW, Our Sound and Vibration Assistant, or with our "C" Api.  I have asked our Product Support Engineer to post a note regarding the "C" api function calls.  Stay tuned. 
    Also, please feel free to contact us directly as the need arises. 
    Sincerely,
    Preston Johnson
    Principal Sales Engineer
    Condition Monitoring Systems
    Vibration Analyst III - www.vibinst.org, www.mobiusinstitute.com
    National Instruments
    [email protected]
    www.ni.com/mcm
    www.ni.com/soundandvibration
    www.ni.com/biganalogdata
    512-683-5444

Maybe you are looking for

  • About "monitor.cc"

    Hi, everyone! I have a question about the file monitor.cc in OpenSAPRCT1.1.4. The file monitor.cc located in \OpenSPARCT1.1.4\verif\env\iss\pli\monitor\c. Has there anyone read and discussed it ? Is it been used in regression or not ? I have modified

  • EEM Applet to Monitor CPU

    I need to what the PID using CPU utilization at 50%. All i see on the syslog server is " %HA_EM-2-LOG: highcpu: HIGH CPU" EEM doesnt tell me what process is consuming the CPU at 50% Any ideas? event manager applet highcpu event snmp oid 1.3.6.1.4.1.9

  • My 5th generation Ipod locks up when I try to play a video?  I did the factory reset (ugh) and still, total lock up with video.  Any suggestions?

    My 5th generation Ipod locks up when I try to play a video?  I did the factory reset (ugh) and still, total lock up with video.  Any suggestions?

  • Assistance understanding query structure

    Hi, I was wondering if any of you know the answer to this question. There are 3 tables. A A1 & A2 "A: table has rows with quasi composite keys -- meaning they're not primary keys but both their combinations make them unique ie. (id_1, id_2). The comb

  • Do these functions do the same thing efficiently?

    this.setTitle("MyApp"); addWindowListener(new WindowAdapter(){                public void windowClosing(WindowEvent e) {                     dispose();                     System.exit(0); AND addWindowListener(new WindowAdapter() { public void window