Fast loop inside a slow loop?

I have an application reading data once every hour, and writing this reading to disk continously - this works fine, however it looks like LV runs one complete iteration (an hour!) before asking me for the filename to save data in, even though that operation is step 8 of a structure inside the while loop, and the long-time-period timer is at step 9 or 10.
How do I get the vi to run at normal speed, asking for the filename and writing the first set of data, and THEN going into the long time wait before looping around and executing again. PS - it runs fine, but there is one complete iteration before it comes up asking for the filename. When I run it for xx seconds time period its ok, but not for a long time period.
Thx! (Newbie here..)

The problem is that you have made the all too common mistake of using a multiframe sequence. This is why so many experience LabVIEW programmers have abandoned the use of multiframe sequences.
See, a multiframe sequence is exactly like a single function, or a subVI for that matter. The data from the sequence isn't available until all frames of the sequence have executed. So, you send the data "out" of the sequence, but it "holds" at the output terminal until the sequence has completed, and then is sent "out".
The other problem is that you have the Write to File... outside of this inner loop, so only after this loop is done (it only iterates once, so I don't even know why you have it there) will the loop exit, and data from that loop b
e available.
If I may suggest, try encapsulating each frame of the sequence into a subVI (or something along those lines, such as using multiple single frame sequences in a line). You will need to remove the inner loop, as it is uneccessary.
It always helps to diagram your code ahead of time. I prefer pseudo code. This is an extremely useful method of aiding in writing your code as it puts things in perspective, in a serial fashion, so that you can visualize what happens, and when, and then just "plop down" each function as they appear in the pseudo code document.
I hope this helps.

Similar Messages

  • I have a for loop inside of while loop.when i press stop for while loop, i also would like to stop for loop.how can i solve this problem?thanks

    i have a for loop inside of while loop.when i press stop for while loop, i also would like to stop for loop.how can i solve this problem?thanks

    Hi fais,
    Following through with what JB suggested. The steps involved in replacing the inner for loop with a while loop are outlined below.
    You can replace the inner for loop with a while by doing the following.
    1) Right-click of the for loop and select "Repalce" then navigate to the "while loop".
    2) Make sure the tunnels you where indexing on with the for loop are still indexing.
    3) Drop an "array size" node on your diagram. Wire the array that determines the number of iterations your for loop executes into this "array size".
    4) Wire the output of the array size into the new while loop.
    5) Set the condition terminal to "stop if true".
    6)Drop an "OR" gate inside the while loop and wire its output to the while loops condition terminal.
    7) C
    reate a local of the boolean "stop" button, and wire it into one of the inputs of your OR gate. This will allow you to stop the inner loop.
    8) Drop a "less than" node inside the inner while loop.
    9) Wire your iteration count into the bottom input of the "less than".
    10) Wire the count (see step 4 above) into the top input of the less than. This will stop the inner loop when ever the inner loop has processed the last element of your array.
    Provided I have not mixed up my tops and bottoms this should accomplish the replacement.
    I will let others explain how to takle this task using the "case solution".
    Ben
    Ben Rayner
    I am currently active on.. MainStream Preppers
    Rayner's Ridge is under construction

  • While loop inside a timed loop

    Hi everybody!
       I'm using:
           - LV 7.1 + RealTime;
           - compactFieldpoint;
       I've noticed a strange behaviour, when I put a while loop inside a timed loop.  Let's fix timed loop with these settings:
           - 1 KHz clock
           - 1 ms period (yes, I know it's short....)
           - offset 0 ms
           - Phase 0
           - Discard missed period (ON) and MAintain original Phase (ON);
           - Timeout: -1.
       If inside this loo, I put a traditional while loop, waiting (say) for an event to occur, and if this event does not arrive, my cFP-2020 hangs! I mean, it becomes unreachable for the debugger, and, more, if I run a ping to it's address, after some cycles it becomes unreachable also from ping!
       Clearly, this code statement lock the fieldPoint, because if I remove the inner while loop all works.
      I know that with 1 ms period, timed loop always finishes late, but I set to discard missed period and timeout to -1. 
       It seems to me that sometimes Timed Loop add heavi overhead to programs, I'm turning to all while loop based tasks, even if my application has to be real-time!
       Advices welcomed! Have a nice day!
    graziano
    Solved!
    Go to Solution.

    I think the issue here is that putting your while loop inside a Timed Loop increases the priority for that task. Timed Loops can have dynamic priorities set over eachother, but they all run between Above Normal and Time Critical priority. My guess is that the debugger and built-in TCP functions run at Above Normal priority or less. This means your cFP isn't hanging, it's doing what it thinks is best. It's trying to finish this task before handling any lower-priority tasks.
    The suggestion to put a Wait function in your loop is an OK one. Keep in mind that you can actually set your wait time to zero instead of one and get the same positive benefit of handling other tasks. I would also suggest that you might look into waiting for this event in a lower priority (non-Timed) loop, and then transmit the appropriate data to your Timed Loop using an RT-FIFO or something. That might give you better handling. Just a thought....
    Jarrod S.
    National Instruments

  • For loop inside  a while loop, what order is that in big o??

    If say I have a for loop inside a while loop, then is that suppose to be in the order of O(n^2) right?? Is there any possibilities to change this into the order of O(n)??

    the other size and the temp size is abstact, which can be defined. This is actually for my union method, my teacher asks me to write this method using the order of O(n) which I think it is not possible. What do you guys think??
    Below is the code I have made:
    public Set<E> union(Set<E> other) {
              int count = 0;
              Iterator<E> iterator1 = other.iterator();
              while (iterator1.hasNext())
                   count++;
              Object[] temp = new Object [data.length+count];
              n = data.length+count;
              for (int i = 0; i<count; i++)
                   temp[i] = data;
              for (int j = count; j<temp.length; j++)
                   temp[j] = iterator1.next();
              data = temp;
              return null;
    but it still has same elements on it and I am thinking of a way on how to remove those same elements

  • Reading Data from a Queue - Store in Fast Loop, Display in Slow Loop

    Here's my BD below.  I am queueing data in a faster loop (either 100 ms or 50 ms) and sending that data to a 250 ms loop.  I need to be able to display the data in the slower loop (so that the FP doesn't have to update every 50 ms).
    Problem I'm having:  How do I empty the data?  It builds and builds and eventually I'm looking at a chart that has data that's 1 minute old.  I've tried writing my own flush code (attached).  I've tried to use variables to pass data and use an array to parse...not working.  Any help would be appreciated.
    Nathan - Certified LabVIEW Developer
    Solved!
    Go to Solution.
    Attachments:
    FlushQueuebyNathan.vi ‏21 KB

    If you need all of the data to go into the chart, I would use the flush queue and write to the chart in a FOR loop (autoindexing with the elements array from the flush queue).  You may set the Defer Front Panel Updates before the FOR loop and reset it after, but I'm not sure that will buy you that much.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

  • Simultaneous save of a fast loop and a slow loop with multiple mx inputs.

    I am attaching my app in hopes that someone might help me. In the app I have two loops. One takes in data from 2 inputs (temp and voltage and I would like to add one more voltage on another channel), the other runs very slowly through the comm port to a mass spectrometer. I can not find a way to graph all the data in one simple file and just as annoyingly is the lame attempt to read temperature in both loops. This method ensures that my Mass spec slow loop data will have its own temperature readings but it errors sometimes do to the way I have the MX input. I tried doing all the saving using queues but the slower mass spec loop was not offering up data quickly enough causing the dequeue loop to wait for data and then the upper quick loop queue to pile up. So i have two issues/options -#1 figure out how to save data from both loops to a single file, and fix the temp inputs so they wont crash each other. Or #2 use the queue method but not have to wait for data from the lower slow loop. Any ideas? Really what I am trying to do is not complicated, the slow acq rate of the ms kinda ruins things. It spits out data whenever it feels.
    THanks
    Attachments:
    TPDS1.vi ‏697 KB

    Hello Tim,
    A producer-Consumer solution using queues should solve your problem. I have attached below a starter for what I am refering to. There are two producer loops, each of wich will enqueue the data and a tag for the data. The data and tag are clusterred so that you can check the tag whenever you dequeue the data.
    In the consumer loop, you can check the tag every time that you dequeue an element and act according to the tag. You can even dequeue directly to file and save both the data and the tag, that way when you read the file, you can check the tag and act accordingly.
    Hope it helps.
    Attachments:
    Acquisition.zip ‏36 KB

  • Error -50103 occured with timed loop inside a while loop

    Hello everyone,
    i wrote an application to sample analog voltage from  DAQ6024E card (see the attachments).
    I have a big while loop in the VI because a I want to add some other functions later.
    In the "WHILE_Cont Acq&Graph Voltage-Int Clk.vi" I use a while loop inside the big while loop to read the samples. It's working properly.
    but when I use a timed loop inside the big while loop (see "TIMED_LOOP_Cont Acq&Graph Voltage-Int Clk.vi"), I get an error -50103 from the timed loop.  It seems that the first cycle is ok, but after the first cycle the error occurs.
    I don't know what happens with the timed loop, anyone can help me? what does the error -50103 mean? thanks a lot!
    PS: I am using LabVIEW 8.0
    Message Edited by molo511 on 10-22-2006 05:21 AM
    Message Edited by molo511 on 10-22-2006 05:23 AM
    Attachments:
    TIMED_LOOP_Cont Acq&Graph Voltage-Int Clk.vi ‏143 KB
    WHILE_Cont Acq&Graph Voltage-Int Clk.vi ‏75 KB

    hi molo511,
    I tested your program but only with simulated devices. I had to delete the wire to the timing, so that the timed while loop runs with 1kHz. Did you already try this? Because this works on my PC.
    I also found a link in our database that might be interesting for you.
    http://digital.ni.com/public.nsf/websearch/04BEDD9E9E91ED3486256D180048116D?OpenDocument
    Greets
    Philipp N.
    NI Application Engineer

  • Ending a while loop inside a while loop

    How do I make a while loop run as long as the while loop that contains it is running? I tried wiring both conditional terminals to a stop button in the outer loop, but that doesnt seem to work? Is there another way?
    Thanks.

    Hi Jasonalan,
    I am not sure what you are trying to implement, but it is true that the loops are not terminating because of data dependency. The stop button in the outer loop will not be read until the inner loop terminates.
    If you wish to terminate the two nested loops using a single stop button, you should read the stop button inside the inner loop and wire it to the conditional terminals in both the inner and outer loop. Again, there is no point in doing this unless you have some other logic along with the stop button to stop the loops. If only the stop button is being used to stop both the inner and outer loops, the outer loop will only execute once. In that case, you can just use a sequence structure followed by a single while loop.

  • Stopping a while loop inside a while loop

    Hello,
    I have a while loop which is inside a while loop which houses my enetire application, When stopping the inner while loop portions of my outer loop stop working, How do I setup the inner while stop that it will not interfeer with the outer while loop?
    Thanks,
    Gil,

    It sounds like he is using a simple archetecture.  But switching to a different archetecture may not be necessary.  Simply because it doesn't work, doesn't mean scrap the whole thing and start over.  He's got a bug and needs to fix it.  Is it the best archetecture to use, absolutely not, but simple or general archetectures can be effective based on the application.
    Post your VI so we can take a look and give you some pointers and suggestions for improvement.
    Reese, (former CLAD, future CLD)
    Some people call me the Space Cowboy!
    Some call me the gangster of love.
    Some people call me MoReese!
    ...I'm right here baby, right here, right here, right here at home

  • For Loop Inside A For Loop

    Is it possible to execute all the iterations of the inside for loop for each iteration of the outside for loop? I have attached a screenshot of my program if it helps. If it is possible could you tell me how to do it plz?
    Solved!
    Go to Solution.
    Attachments:
    Capture.PNG ‏53 KB

    One thought I have is that I think you want those feedback nodes reinitializing for each iteration of the outter loop.  Personally, I would change them to be shift registers (it would clean up your diagram a little bit).
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

  • Getting a for loop inside a while loop

    I've been having problems with the code below. I'm trying to get the 'while' loop to work so that the program will continue to run after a user types in a sentence. This is supposed to print out how many times a letter has been typed when a sentence has been put in, but it's not working right. It just keeps adding the first sentences numbers together even when a new sentence is typed out. I don't know what I'm doing wrong with this 'while' loop.
    import java.util.Scanner;
    import java.util.*;
    public class Count
    public static void main (String[] args)
    String phrase; // a string of characters
    int countBlank; // the number of blanks (spaces) in the phrase
    int length; // the length of the phrase
    int countA = 0; // the number of a's in the phrase
    int countT = 0; // the number of t's in the phrase
    int countE = 0;
    int countS = 0;
    char ch; // an individual character in the string
    Scanner scan = new Scanner(System.in);
    // Print a program header
    System.out.println ();
    System.out.println ("Character Counter");
    System.out.println ();
    // Read in a string and find its length
    System.out.println ("Enter a sentence or phrase ('quit' to quit): ");
    phrase = scan.nextLine();
    length = phrase.length();
    // Initialize counts
    countBlank = 0;
    // a while loop to allow user to keep entering phrases
       while (true)
       String line=scan.nextLine();
              System.out.println("Type quit to quit or enter a new phrase.");
         if(line.equals("quit"))
    break;
    // a for loop to go through the string character by character
    // and count the blank spaces
    for(int i = 0; i < phrase.length(); i++)
    ch = phrase.charAt(i);
    switch (ch)
    case ' ': countBlank++;
    break;
    case 'a':
    case 'A': countA++;
    break;
    case 't':
    case 'T': countT++;
    break;
    case 'e':
    case 'E': countE++;
    break;
    case 's':
    case 'S': countS++;
    break;
    // Print the results
    System.out.println ();
    System.out.println ("Number of blank spaces: " + countBlank);
    System.out.println ("Number of A's: " + countA);
    System.out.println ("Number of T's: " + countT);
    System.out.println ("Number of E's: " + countE);
    System.out.println ("Number of S's: " + countS);
    System.out.println ();
    }

    Ok well I don't really understand what you're saying, but here's an improved version of my code and I can get it to work, but I don't know how to turn the "do while" loop into just a "while" loop.
    import java.util.Scanner;
    public class Count3
         public static void main (String[] args) {
              String      phrase;           // a string of characters
              int      countBlank=0;      // the number of blanks (spaces) in the phrase
              int      length;           // the length of the phrase
              char      ch;                // an individual character in the string
              int      countA=0;       
              int      countE=0;
              int      countS=0;
              int      countT=0;
              String quit = new String("quit"); //String wasn't initialized
              Scanner scan = new Scanner(System.in);
              // Print a program header
              System.out.println ();
              System.out.println ("Character Counter");
              System.out.println ();
              do { //do-while loop
              // Read in a string and find its length
              System.out.println("Enter a sentence or phrase, or type \"quit\" to quit: ");
              phrase = scan.nextLine();
              length = phrase.length();
              // a for loop to go through the string character by character
              // and count the blank spaces, a's, e's, s', and t's
                   for (int i = 0; i <= length-1; i++) {
                        ch = phrase.charAt(i);
                        switch (ch) {
                             case ' ': countBlank++;
                             break;
                             case 'a':
                             case 'A': countA++;
                             break;
                             case 'e':
                             case 'E': countE++;
                             break;
                             case 's':
                             case 'S': countS++;
                             break;
                             case 't':
                             case 'T': countT++;
                             break;
                   // Print the results
                   System.out.println ();
                   System.out.println ("Number of blank spaces: " + countBlank);
                   System.out.println ("Number of a's: " + countA);
                   System.out.println ("Number of e's: " + countE);
                   System.out.println ("Number of s's: " + countS);
                   System.out.println ("Number of t's: " + countT);
                   System.out.println ();
                   countA=0; countE=0; countS=0; countT=0; countBlank=0;
              }while (!(phrase.equalsIgnoreCase(quit)));          
         }//end main
    }//end class Count

  • [FPGA] Loop rate very slow: Do FPGA I/O nodes in parallel loops block each other?

    Hi,
    I am using cRIO-9075. Mod1 is NI 9263, Mod2 is NI 9227, Mod3 is 9215.
    Please see my VI attached or the given screenshot.
    The FPGA code is based on the "NI CompactRIO Waveform Reference Library" (it's the lower loop).
    The upper loop was added by me and is writing a waveform from blockmemory to the NI 9263 module (Mod 1).
    The data sampled in the lower loop is running at 1 kHz. The control "AO Update Period" for the upper loop has a value of (for example) 10 (=uS).
    The problem is, that this loop is running much much slower than it should. Once I disable the FPGA I/O node in the lower loop (as done in the attachments), it's running as fast as it should.
    It seems to me, that the FPGA I/O nodes are blocking each other. I tried to figure it out by reading through serveral NI documents, but until now I have no idea how to solve that.
    Can you give me some advices? Some general tipps about the VI?
    Thanks!
    Attachments:
    FPGA Loop Rate.PNG ‏72 KB
    FPGA Main.vi ‏251 KB

    Hi, thanks so far.
    Originally the control was inside the loop. Then I tried if it makes a difference if it's outside.
    Ok, i really seems to be that default value of "100000" for "AO Update Period".
    Starting the VI directly woks like expected. Having "AO Update period" inside the loop makes it possible to control it as it's running.
    But, please see the attachment. When starting the FPGA through RT and setting the appropiate value, it does not seem to work. The oscilloscope show's the same behavior like "AO Update Period" was 100000.
    But when reading the value of "AO Update Period" afterwards (while the FPGA is running), it shows the expected value of "10".
    Having changed the default value to 10 works so far, but I am not able to changed it (see attachment).
    So the problem is: Why is "Read/Write control" not working here? Why is still the default value used?
    Attachments:
    FPGA Loop Rate 2.PNG ‏5 KB

  • Making .mov to loop inside flash

    I have a seamless quicktime .mov of clouds I want to use as a background.
    I set my flash animation to loop...but at the end of the .mov file instead of looping it just quits.
    How do I get the quicktime .mov file to loop within flash?
    Using Flash CS4

    Re: Loop inside a loop making performance poor!!!Yup, it probably will be.
    Your nested loops have an advantage in that they give you control over the process of what is happening. Unfortunately due to several factors including context switching between pl/sql and the sql engine this process is all but certain to be slower than doing the work in SQL.
    Instead of nested loops which call a procedure define a cursor directly your routine to get the data, then use a bulk collect - you can read about them in the documentation - to load your collection. One select with a bulk collect is all but certain to be faster than loading each row one item at a time.

  • Very slow loop execution

    Hello,
    This subset of my program is running extremely slow.
    There is a fair bit of computation involved with medium size data sets (1000 rows and 1500 columns) but this should not be the issue I think...
    I am running a regression algorithm and I am cross validating the results using a single training data set...so basically you have a a data file (2D array) with my response and predictor variables and the algorithm takes the first row out builds the training model with the remaining data and predicts onto the row that was left out, then the first row is included back in the analysis and the algorithm moves onto the second row, it take it out and makes the training model with the remaining data and predicts onto the second row that was taken out...etc... (sorry if this is not explained clearly but it may not be so important) using the code shown in the attached image.
    I get the feeling the slowness is due to my programming.
    As you can see I am running 2 for loops, one inside another. The orange vi contains my model and the yellow vi contains the algorithm for predictions.
    The outer loop subsets the number of data points to leave out of the analysis (i.e. it could be a single row or it could be any number of rows at a time) and the inner loop tells the program to run the regression algorithm up to a maximum number of runs.
    I guess my questions are: (i) is there problems with programming with 2 for loops like I have done? and (ii) does my programming with 2 for loops look efficient? or is there a better way to do this?
    I am sorry if this is not clearly explained. Please let me know if you want some more information.
    Best wishes
    RVR

    RVR wrote:
    Note that the vi's inside this orange sub vi are straight forward matrix computations - no loops inside.
    At last attach your code images at full size. These scaled down version are pretty unreadable. From what I can tell, you're running in circles, doing a lot of unecessary operations. for example, inside the orange subVI, you delete a constant row from the array, but since the input is the same during all iterations of the inner loop, you're just doing repetitive work. a lot of code can be pulled outside the loop.
    Then you are jumping through all these flaming hoops in the orange vI, constantly converting between 1d and 2d arrays without really adding any extra data. Look at the code segment on the picture. You are creating a 1d array of size N at the autoindexing output tunnel, then you convert it to a 1xN 2d array which you subsequently reshape to a 1d array of size N, giving you back what you had in the first place. Why????
     What is the purpose??
    Message Edited by altenbach on 05-01-2007 01:25 AM
    LabVIEW Champion . Do more with less code and in less time .
    Attachments:
    whydoallthis.png ‏4 KB

  • How to avoid the loop inside the loop? as it reduces the performance.

    hi masters,
    i have 2 internal tables having 1 same field. eg table itab having f1, f2, f3 fields and itab1 having f1, f4 and f5 fields. let us consider the data in the itab and itab1 is like below given
    itab-f1   itab-f2   itab-f3                 itab1-f1     itab1-f4   itab1-f5
    10        aa         11                      10             abc       456
    10        bb         15                      10             def        655
    10        ff           13                      10             ghi        456
    11        dd         16                      10             tre         455
    11        zz         24                      11             ftr          256
    11        ii           54                      11             kjh         556
    12        hh         24                      12             fjk          751
    now i want the result in final table like below
    f1         f2       f3         f4         f5
    10        aa      11      abc      456
    10        aa      11      def       655
    10        aa      11      ghi       456
    10        aa      11      tre       455
    10        bb      15      abc      456
    10        bb      15      def       655
    10        bb      15      ghi       456
    10        bb      15      tre       455
    10        ff        13      abc      456
    10        ff        13      def      655
    10        ff        13      ghi      456
    10        ff        13      tre       455
    11        dd      16      ftr        256
    11        dd      16      kjh      556
    11        zz      24      ftr       256
    11        zz      24      kjh      556
    11        ii        54      ftr       256
    11        ii        54      kjh      556
    12        hh      24      fjk       751
    i can get this result using the
    Loop at itab.
    loop at itab1 where f1 = itab-f1.
    process....
    endloop.
    endloop.
    but it is very slow. i want to avoid this loop inside the loop and i want to implement the same program using read table.. like below..
    Loop at itab.
    Read table itab1 with key ....
    process...
    endloop.
    Is it possible? to get multiple records from itab2 using read statement or with READ statement that using CASE Statement or IF statemetnt.
    Plz help me...

    hi,
    please try the following code
    TYPES:
      begin of ty_itab2,
       f1
       f2
       f3
       f4
       f5
      end of ty_itab2.
    DATA:
      lw_tab2tmp type ty_itab2,
      lt_tab2tmp type standard table of ty_itab2.
    sort it_itab by f1.
    loop at it_itab into lw_itab.
      at new f1.
        CLEAR lt_tab2tmp[].
        loop at it_itab1 into lw_itab1 where f1 = lw_itab-f1.
          CLEAR lw_tab2tmp.
          move-corresponding lw_itab1 to lw_tab2tmp.
          append lw_tab2tmp into lt_tab2tmp.
        end loop.
        "while there is no data with f1 in it_itab1
        if lt_tab2tmp is initial.
          lw_tab2tmp-f1 = lw_itab-f1.
          append lw_tab2tmp into lt_tab2tmp.
        endif.
      end at.
      CLEAR lw_tab2tmp.
      MOVE-CORRESPONDING lw_itab to lw_tab2tmp.
      modify lt_tab2tmp from lw_tab2tmp TRANSPORTING f2 f3 where not f1 is initial.
      append lines of lt_tab2tmp into lt_itab2.
    end loop.
    lt_itab2 is the final table.
    There may be some syntactically errors.
    I have not a system to test it now, please test it.

Maybe you are looking for

  • Service Battery Goofiness

    Last evening I was using my MacBook, watching videos on Youtube and what not. I had plans that night, so I just closed the lid and got up and left. The computer usually falls asleep and when i get home I just open the lid, and everything is right whe

  • 'Stream requested does not exist' error while importing MPEG-2 file.

    Hi. I received the following error when attempting to import an MPEG-2 file as a Timeline: 'Stream requested does not exist' What does this mean? Thanks, William Johnston

  • Blue screen problem on Satellite A350D-20E with Windows 7

    My laptop came back from guarantee problem solving with a new VGA card. All the same after a couple of weeks it started to crash all over again. I suppose it is a software problem. Error message: Bluescreen The computer starts to have graphic problem

  • How do I import the address book from another hard drive?

    I wish to know if t is possible to import the address book from a slave drive that is bootable, but operating system (XP Pro Sp3) is not supported by my new motherboard. Thank you.

  • ITunes wont recognize iPhone 5

    Alright, I've had this problem for a while now, and I'm at my wit's end. Hope someone can help me. First of all, I'm running Windows 8.0 on a Lenovo, using iTunes 11.1.5, and an iPhone on iOS 7.0.6. Problem is, when I plug my iPhone 5 into my compute