Interaction between 2 labview programs running on two distinct computers

hi
i have two distinct computers and 2 labview programs running on each computer. in one computer labview program is prepared for data acquisition and saving acquired data. now i want to send these acquired data by cable to another computer to be processed. first i am searching for the best protocol for sending data between these two computers. it is important for me to diliver data near real time approximately in milisecond. and finally is there neccessary to have any special kind of software?
best regards
Message Edited by farashi on 01-30-2010 01:36 AM
Solved!
Go to Solution.

Farashi-
A real-time system doesn't mean an instantaneous system, or a fast system.  It actually means a deterministic system, or a system that you know exactly how long it will take to complete a process.  As was mentioned before, even Gigabit ethernet has latency, and that latency is not deterministic.
If you want a real-time system over the network, here is a KB that has the software and hardware setup you would need to do.
http://zone.ni.com/devzone/cda/tut/p/id/4720
Mostly, to accomplish what you want to do, you won't be able to use windows, because there is non-determinism there.  You will get latency problems when windows decides to use the processor for something other then your application.  For the best real-time systems, look into the Compact FieldPoint of a Compact Rio system that you can deploy your code to.
Scott Wiest
Applications Engineering
National Instruments
National Instruments
Applications Engineer

Similar Messages

  • How to Find Which Programs running in my Domain Computers

    How to Find Which Programs running in my Domain Computers.

    In addition, there are other third tools you can use. Here is a script from the TechNet Scripting Gallery:
    List All Installed Software
    Returns a list of all software installed on a computer, whether or not by Windows Installer. This script reads installed applications from the registry. (See Richard Mueller's comment on how to output it to a CSV file)
    http://gallery.technet.microsoft.com/scriptcenter/8035d5a9-dc92-436d-a60c-67d381da15a3/view/Discussions
    Of course that's just running it against one computer. There's also a script in the above link (scroll to the bottom) that will find installed software of a list of computers in a network and also detect the defined forbidden installed software, and
    another script that will uninstall that software remotely.
    Overall however, if you want to do this network wide with much a much easier method (although more complex to setup), I agree with using SCCM or Spiceworks. There is also Altiris, and a number of other third party solutions that you can use.
    Maybe if you can provide more specific information on the end result of the solution you are looking for, we can provide more specifics to help you.
    Ace Fekay
    MVP, MCT, MCSE 2012, MCITP EA & MCTS Windows 2008/R2, Exchange 2013, 2010 EA & 2007, MCSE & MCSA 2003/2000, MCSA Messaging 2003
    Microsoft Certified Trainer
    Microsoft MVP - Directory Services
    Complete List of Technical Blogs: http://www.delawarecountycomputerconsulting.com/technicalblogs.php
    This posting is provided AS-IS with no warranties or guarantees and confers no rights.

  • Modification of Global channels In NIMax while Labview Program running, not updating in Labview

    Hello,
         Okay, here is my issue.  I have a program that reads data from a device using global channels in MAX.
    Step 1:  I open MAX with the systemExecute.vi with the parameters to wait till program finishes.
    Step 2:  I Modify a channel in Max, for example change the assigned daqMX Scale, or Min Max values.
    Step 3:  Save channel in Max.
    Step 4: Exit MAX with the file exit.
    Step 5: The Labview program continues, and I re-read the available global channels and global scales in the Labview vi but the properties have not changed to match what I change in MAX.
    If I stop the VI then start it again and read the global channels then the properties get updated.  How can I get the channel properties to update in Labview after changes are made in Max without stopping the labview vi and starting it again?

    Many properties of the channel can only be modified when the task is not running.  Have you tried stopping the task in LV before modifying the parameters, and then re-starting the task?
    Dan

  • Can Labview Programs run from the Windows System Tray?

    Does anyone know if Labview Runtime executables can be run in the Windows System tray? Any help would be appreciated.
    I'm creating a program that I want to run in the background, not visible on the desktop or taskbar.
    Thanks,
    Tom

    Requirements    Price: $29.95
     Application Software:
    LabVIEW 7.0+
     Toolkits Software:
     Additional Software:
     Language's:
    LabVIEW
    INVtray LabVIEW Toolkit allows the programmer to create a LabVIEW program that can be hidden from the task bar and accessed through the System Tray.  Comes with a sample VI that demonstrates all the features of the toolkit.

  • Continuous Labview program run with non-contin​uous DAQ connection

    I am using a wireless DAQ, NI 9191 chassis with 9205 module, to measure strain in a system. The DAQ is not being run on standard power so it will occasionally not be powered. The DAQ automatically reconnects to the computer when power is reestablished, but when the DAQ loses power the program encounters an error and stops the program.
    What I want to do is create a Labview program that will run continuously by ignoring the errors, recording data when the DAQ has power and recording an NA or zero when there is no power. 
    If anyone knows or has had this problem before let me know if there is a solution ASAP. 
    Thanks

    The program propably (hard to tell without any code to review) only stops because you have not wired the error putputs of your DAQ-vis. Wire them through to a case structure. In the "no error" case pass your aquired data to whatever postprocessing you deem appropriate (you said something about recording). Set the outgoing tunnel with the data to "use standard if not connected" (I don't have the english version of LV available, so this might be called slightly different). This way it will allways pass on zero when there's an error in your data aquisition.
    Regards
    Florian

  • Memory leak? amd 64 bit using 1.4.2_03 program runs fine on other computers

    I have a program that runs fine on a red hat linux desktop and a pentium 1.6ghz xp pro laptop but on my amd 64 bit 3400+ xp pro desktop after ~20 seconds it slows to a crawl. i was originally using j2sdk1.4.2_04 but noticed this was not available for download anymore so i switched to j2sdk1.4.2_03 but have the same problem. my laptop is using j2sdk1.4.2_03. im not sure what the red hat linux machine is using. this is a starfield simulator and when it starts to slow all the stars turn gray and its like the drawLine is not working right either. anyone have any ideas? code is below
    import java.awt.*;
    import java.awt.event.WindowListener;
    import java.awt.event.WindowEvent;
    import java.util.*;
    import javax.swing.*;
    import java.io.*;
    class StarfieldWindowListener implements WindowListener
    public void windowActivated( WindowEvent e ) {}
    public void windowClosed( WindowEvent e ) {}
    public void windowClosing( WindowEvent e )
    System.exit(0);
    public void windowDeactivated( WindowEvent e ) {}
    public void windowDeiconified( WindowEvent e ) {}
    public void windowIconified( WindowEvent e ) {}
    public void windowOpened( WindowEvent e ) {}
    public class StarfieldSimulator
         public static void main (String args[])
              JFrame frame = new JFrame ("Starfield Simulator");
              frame.getContentPane ().setLayout (new BorderLayout ());
              if (args.length == 0) frame.getContentPane ().add (new Starfield (500));
              else frame.getContentPane ().add (new Starfield (Integer.parseInt (args[0])));
    frame.addWindowListener(new StarfieldWindowListener());
              frame.setSize (1024, 768);
              frame.show ();
    class Point3D
         public double x, y, z;
    public float r, g, b;
    public Color c;
         public Point3D (double x, double y, double z)
    Random random = new Random ();
              this.x = x;
              this.y = y;
              this.z = z;
    r = random.nextFloat();
    g = random.nextFloat();
    b = random.nextFloat();
    c = new Color( r, g, b );
    class Starfield extends JComponent
         protected boolean first;
         protected Point3D points[][];
         protected Random random;
         private int trail = 20;
    private double rot = .0005, co = Math.cos( rot ), si = Math.sin( rot );
         public Starfield (int numPoints)
    //RepaintManager repaintManager = RepaintManager.currentManager(this); repaintManager.setDoubleBufferingEnabled(false);
              first = true;
              random = new Random ();
              points = new Point3D[numPoints][trail];
              for( int y = 0; y < numPoints; ++y )
                   for( int x = 1; x < trail; ++x )
                        points[y][x] = new Point3D( 0, 0, 0 );
              for (int index = 0; index < numPoints; index++)
                   points[index][0] = new Point3D ((random.nextDouble () - 0.5) * 2.0, (random.nextDouble () - 0.5) * 2.0, (random.nextDouble () - 0.5) * 2.0);
         public void paint (Graphics g)
    //DebugGraphics g = new DebugGraphics(g1);
    int i;
              int halfWidth = getWidth () / 2;
              int halfHeight = getHeight () / 2;
              g.setColor (Color.black);
              g.fillRect (0, 0, getWidth (), getHeight ());
              int pointsLength = points.length;
              for (int index = 0; index < pointsLength; index++)
                   for( i = trail - 1; i >= 1; --i )
                        points[index] = points[index][i - 1];
    if( points[index][0].z <= 0.0 )
    while (points[index][0].z <= 0.0) points[index][0] = new Point3D ((random.nextDouble () - 0.5) * 2.0, (random.nextDouble () - 0.5) * 2.0, (random.nextDouble () - 0.5) * 2.0);
    points[index][0].r = random.nextFloat();
    points[index][0].g = random.nextFloat();
    points[index][0].b = random.nextFloat();
    for( i = 1; i < trail; ++i )
    points[index][i].x =points[index][i].y = points[index][i].z = 0;
    g.setColor (points[index][0].c);
                   for( i = 0; i < trail; ++i )
                        points[index][i].x = points[index][i].x * co - points[index][i].y * si;
                        points[index][i].y = points[index][i].y * co + points[index][i].x * si;
    int sx1, sy1, sx2, sy2;
    sx1 = (int) ((points[index][0].x * halfWidth) / ((points[index][0].z) * 10.0)) + halfWidth;
    sy1 = (int) ((points[index][0].y * halfHeight) / ((points[index][0].z) * 10.0)) + halfHeight;
    if( points[index][(trail - 1)].z == 0 )
    g.drawRect( sx1, sy1, 1, 1 );
    else
    sx2 = (int) ((points[index][(trail - 1)].x * halfWidth) / ((points[index][(trail - 1)].z + .0005 * (trail - 1)) * 10.0)) + halfWidth;
    sy2 = (int) ((points[index][(trail - 1)].y * halfHeight) / ((points[index][(trail - 1)].z + .0005 * (trail - 1)) * 10.0)) + halfHeight;
    g.drawLine( sx1, sy1, sx2, sy2 );
    points[index][0].r = (float) Math.min ( points[index][0].r + .00005, 1.0 );
    points[index][0].g = (float) Math.min ( points[index][0].g + .00005, 1.0 );
    points[index][0].b = (float) Math.min ( points[index][0].b + .00005, 1.0 );
    points[index][0].c = new Color( points[index][0].r, points[index][0].g, points[index][0].b );
                   points[index][0].z -= 0.0025;
    try {
    Thread.sleep(1);
    } catch (InterruptedException e) {
    e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
    repaint();

    doesnt ANYONE have an answer?? please?Apparently not. If the answer involves us typing in your program, understanding it, debugging it, etc., hey, we all have jobs, too. We can answer specific questions ("How do I do <some specific task>?" or "I tried this and that <specific task> but ran into <specific problem>"). But we don't have all day to debug everyone's programs.
    * First of all, use the code formatting markup around your code (See the Formatting Help link).
    * Secondly, tell us what you have tried - have you looked at your Task Manager and recorded your program's size? Compare it on the machines where it runs well, and the one where it doesn't.

  • Interaction Between programs running on 2 JVM

    I need to send certain data (primitive/objects) from a program running on one JVM to another program running on a different JVM. And need to get a response back from the program running on second JVM. This process needs to be synchronous.
    Is it possible to achieve this by deploying a servlet on second JVM? If yes how?
    And is there any better method to achieve this?

    Without knowing your exact problem i'll bet it can be solved with RMI (Remote Method Invocation).
    RMI uses protocol so was designed for communication between Java programs on seperate machines, but is just as effective when both programs are running on one host.
    Here is good place to start
    http://java.sun.com/docs/books/tutorial/rmi/overview.html
    or
    http://forum.java.sun.com/forum.jspa?forumID=58
    Bamkin.

  • Labview Program will hang between 33% and 50% of the time.

    I have a problem with a Labview program I made. I have two programs that do the same thing. One is in flat sequence form and the other is in state machine form.
    As explained in the link below, I would like to make use of a microcontroller to make wiring connections for automating a measurement process. A separate current source and volt meter will be used.
    https://forums.ni.com/t5/LabVIEW/Sequence-a-good-idea/td-p/2601333
    I have since made some simple test programs which I have attached. The problem is when executing, the labview program will hang, but not every time the program is execute.
    For example: Hall 1.2.vi will work properly twice with the third time it is executed it will hang. If you abort and try again, it will again run twice with no problems with the third hanging. This one is in flat sequence format (was in a flat sequence, but merged the windows because I thought that was the cause). From what I can tell, the program will hang when calling Keithley 6517 Single Read.vi. Both connected Keithley devices are connected to the computer via GPIB at 16 and 27. The way I verified if it was this vi causing it or contributing to it was that I removed it and the program never hung. I find it very strange that it will hang exactly on the third attempt every time.
    Hall 1.3 simple.vi will work the first time and hang the second time. So it works 50% of the time. This one is in State Machine format. This one will hang at the case titled "Measure 1" which contains the Keithley 6517 Single Read.vi.
    I've used the highlight execution button and watched the program run. Oddly, it doesn't hang when using this button. So I tried adding delays/wait in different places to no avail.
    What could be causing this? As a side note, I say the program hangs for two reason. The main one is the program doesn't finish running so the run arrow is still black. The second thing is that if you notice at the end of the labview program, I have a block there that turns the current source off which doesn't happen when it hangs. I have to manually turn it off and then hit the abort program button to stop labview.
    Solved!
    Go to Solution.
    Attachments:
    Hall 1.2.vi ‏42 KB
    Hall 1.3 simple.vi ‏81 KB

    altenbach wrote:
    SaintsFan wrote:
    Also, I've tried placing wait/delays at various places with no improvement of the problem. My next thought is to just remove all the vi calls and have everything in one program.
    How did you place the waits?
    Why would placing everything in one program fix the problem. That makes no sense! What is your reasoning?
    In the case of hall1.3, I placed a wait in the Measurement cases and CS On cases and there was no affect. In the hall 1.2 when the blocks were broken up similar to the state machine cases where each sequence window was identical to the cases, I placed a wait or delay in each window with no effect on the hanging.
    My reasoning for placing everything in one program is the same as my reasoning for figuring delays would help, since the time of execution would be altered. If the execution time is faster and if the timing is the problem then I figured that the problem would happen more frequently or even every time.
    Somehow I get the feeling this is not the case. The reason being the interval in which it succeeds or hangs is constant. I believe somewhere, a value is getting set. The 6517 Read vi runs fine if I run this vi by itself no matter how many or how fast I run it. Also, the same goes for both 1.2 and 1.3 if I remove the 6517 read vi they run fine no matter how fast or how many times I run them. 
    Somehow after the current source is set to operate and triggers labview will hang on a set interval when calling 6517 read vi.
    Separately they work, together there is a problem. I tried placing a delay between these two by connecting the error out of the trigger vi to the error in of the delay block and the error out of the delay block to the error in terminal of the 6517 config block. I've also tried delays between other blocks connected the same way. From what I understand, a called vi can't execute until all inputs are present. Is this the correct way to wire the delays?

  • CPU usage is 98% when running my exe labview program

    Hi
    I have made an executable and installer for my labview program. When I install and run, the program uses a lot of cpu - almost 100%, even when the program is not computing. I recently changed over to LVIEW 8.2 from LVIEW 7.1. I had none of these issues with 7.1.
    Programatically, I use a state machine to continuously execute the program. I also use a couple of while loops as slaves to plot the results processed in the main loop. In all while loops I have a 'Wait' until next ms' vi to prevent the program using all the cpu, but it doesnt seem to be helping in LVIEW 8.2. This is somewhat strange.
    Can someone suggest what may be happening? and are there any methods that I can use to reduce cpu usage of my program?
    Cheers
    RVR

    It will be impossible to really troubleshoot this without a lot of additional infomation.
    Is the CPU usage only high in the built application, or is it also high if you run the same program in the 8.2 development environment?
    Was the 7.1 program exactly the same, or did you make any modifications since?
    Are you running 8.20 or did you upgrade to 8.2.1?
    What does the program actually do? Does it interact with DAQ hardware? File I/O?
    What does the program do when it is "computing"? Is the CPU use even higher then?
    Is there also a wait statement in the main while loop?
    What is your OS (windows, linux, mac, etc.)
    Is your computer reasonable for the task. Enough RAM, etc.
    How do the various loops communicate with each other? (queues, local-, global-, shared- variables, etc.)
    How much data is exchanged between the loops? At what rate?
    Do you use fixed or variable size arrays?
    Can you give us a more detailed overview of the code?
    How is the memory usage?
    have you done any profiling?
    LabVIEW Champion . Do more with less code and in less time .

  • Fpga: Communicat​ing between fpga and third party program running on pc

    I am using a C-Rio to control a planar robotic joystick. The goal is to use the joystick as a force feedback controller for a computer game running on a pc.
    My program as is for now runs a program on the fpga to read the encoder values and run the pwm for the motors. An RT program reads those values and performs the control as well as it calculates the fwd and inverse kinematics of the robot.
    What I would like to do now is to pass the x-y values of the joystick on a third program (computer game) that runs on a PC.Currently  the game runs on LabVIEW but I would the system to be combatible with other programs written in different programming languages. I have been told that the best way of doing this is to setup a server. Is this the only/best way of doing this?
    I would like to know what is the best way to communicate between a program running on a pc and a program running on the fpga for this type of application. What is the best way to pass along information from fpga to third party app running on pc and vice versa?
    I am sorry if this has been asked before but I couldn't  find a relevant thread. Thank you for reading this!
    Ares

    If you need every command to make it, then you should use TCP.  I would recommend taking a look at the STM library that is floating around somewhere on the LabVIEW Tools Network.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

  • When I run activity monitor with no programs running my dock shows fluctuating usage...between 4% up to 20%.  Random figures that come and go with corresponding CPU usage.  A little help?

    My activity monitor show random and fluctuating CPU usage at the Dock site with absolutelyno programs running.  %'s fluctuate between 3 - 20 and they pretty much come and go.  What might be causing this?

    There's a lot of background processes running that aren't documented as Apps as such. And some of them are the Time Machine backups, Spotlight searches, all kinds of small little bits of maintenance caches, there's a lot going on. So it's not completely out of the question that this is 'normal' for a Mac. If it were 50% or more I would be concerned but if it spikes up to 20% for a second or two you are probably not in any trouble of any kind.

  • LabVIEW program crashes after running for few hours

    Hello,
    I am doing some experiments at the moment which are supposed to last for 18 hours.
    Basically, I use a LabVIEW program to control a power supply through a LabJack U6 DAQ. I am currently using LabVIEW 8.5 on Windows 7.
    In order to do that, I use a laptop where everything has been disabled such as power management settings, network access is off, windows updates are also off...
    As far as I know, the computer can't turn into sleep mode or just shut down (I'm a 100% sure of that actually).
    But last night, I started an 18 hours experiment at 5 pm, and when I came in this morning, the program shutted down by itself. Fortunately, the power supply is still providing the voltage I want, but I can't figure out why the program crashes.
    When I start the experiment, it also automatically starting saving data in a spreadsheet file (I guess the size of the file should be 36 MB), so it might be a problem of memory access or something.
    I really don't know what could have cause this crash, does someone have an idea?
    I saw some other threads similar to my problem but I am not running an executable, I am running the front panel directly from the editing mode.

    Hi,
    thank all of you for your quick answers!
    @Josborne : I do not have an error handling in my program. Actually you can look at my program in the attachment file. This is my first LabVIEW program so I've never dealt with error in and error out function... Moreover, what is a log file exactly?
    @Johnsold : Yes, I am building an array continously growing over time. Actually, my program stops saving data when you hit the "STOP" button, it doesn't write into a spreadsheet file through a period of time, that is something I eventually need to correct.
    @LabJackSupport : I can try to reduce my time step, so far it's 100 ms. I have a problem with disconnecting the USB cable from the computer though : for no reason, if I just unplug the connection between the LabJack U6 and the computer, my power supply will just go providing 157 Volts! And for my experiment, this is something we don't want to have so we just leave it as it is now. Disabling some part of the program is a good idea, I can try it
    Thank you for your answers
    Attachments:
    Control Software.vi ‏511 KB

  • Run Labview program on Windows 7 Ultimate

    Has anyone run labview program (built application) on Windows 7 Ultimate? Is there any issues? I'm trying to define the system requirement for my application installation and run time. Windows 7 Ultimate was required by my coworker for another application and I want to make sure this requirement won't affect my labview application.
    Thanks very much!

    I'm sorry to say you're screwed, it only works on W7 Home Premium.
    Nah! Just kidding, from a programming point there's no noticable difference between the different W7 versions.
    /Y 
    LabVIEW 8.2 - 2014
    "Only dead fish swim downstream" - "My life for Kudos!" - "Dumb people repeat old mistakes - smart ones create new ones."
    G# - Free award winning reference based OOP for LV

  • Once running the labview program which contain DAQ Assistant ,the message of "ERROR-50405....." appear.

    Once running the labview program which contain DAQ Assistant and can be run without any error before, the message box of "ERROR-50405....." appear which capture down in the attachment. We use PCI6221 and LabVIEW 8.0 in Windows XP. I also found that the Device Manager of Window have recognized the PCI6221.
    Any help on this situation would be great.
    Attachments:
    labview error.JPG ‏145 KB

    Hi~
    This error is due to signal interference between the device and the computer. This could be environmental or due to the PCI Controller. You can on a different computer to see whether this problem persists.

  • Using LabView to run VB program with parameters

    Hi,
    It's my first message here so I hope I am doing things correctly. I tried to do some research before asking and I found a lot of good informations but right now, I seem to be stuck.
    I am quite new to LabView, I did few VIs here and there but nothing really "serious". I am currently working on a LabView interface that deals with VB, Excel macros and Data extraction from Text file.
    The VB program is in charge of a motor position, then, some Excel macros are used to do some measurement and the results are written in a text file that I use to plot some graphs.
    The VB program I made give the window I put in the picture in the attached files. Basically, you have to enter some values in those TextBox then click on Move and the motor will move. When you click on the button Home, the motor moves back to the position "0", no need of the two TextBox. In my labview interface, I created two ComboBox that contain all the possible values for both of the TextBox of my VB program. What I would like to do, when I click on my "Measure" button on LabView that initiates the VB program, is that it can fill the two TextBox from VB with the data entered in my LabView ComboBox and then run the program, simulating a "click" on the Move button.
    Right now, I found a VI (included in the attached files) that runs my VB program from LabView (I use it as a Sub-VI) but I still have to manually put the values in my VB program. My goal would be that when I click on my LabView button to start my measure, the motor moves but the VB program doesn't show up for the user to manually enter the values he wants.
    I hope I was clear but if you need any clarification.
    I did the the VB program myself.
    I can also link the LabView interface I already created if need be.
    Thanks for your help,
    Baptiste
    Attachments:
    Moteur.png ‏5 KB
    lancerEXE.vi ‏9 KB

    First, thank you for your answers.
    I know that I don't need to use VB or LabView. I just want for myself to be able to use LabView to manage a program in VB, one in VBA and use data from a text file. I know I could write everything in VBA and that would get the job done. The thing is I want to get away from VBA and Excel as much as I can. In the future, the plan would be to re-write my VBA program with LabView but as of now, I just want to use LabView to manage everything. I know I don't really need it but I want to learn how to do it and have something that works.
    So I would like to know if there is way to do what I wish to do, running my VB program with parameters coming from LabView.
    Thanks

Maybe you are looking for

  • Not charging or syncing now

    SImilar issue. iPAD is 2 weeks old..been working great except from last night after 2 hours of use, i plugged it in for the night after the battery died completely. this morning, it was at 8% charge which surprised me. I took it to the office used it

  • Reg: Upgrade Phase RUN_UACC_POST

    Hi All, We are in process of upgrade fro 4.7SR1 to ECC6.0 SR3 ( O/S Sun Solaries & Database is Oracle) Right now we are facing issue in the Phase RUN_UACC_POST. The Log file shows geupg:updadm 12% more UACCUPG.LOG 1 ETQ201XEntering upgrade-phase "RUN

  • Can Check Number be start with zero?

    Dear all,                I knew that check number on SBO is numeric but check number of my country some number can start with zero and it effected to check number printing form. So, I'm not sure whether we can set check number to be charactor or not.

  • WSDL generation wizard does nothing...

    I am attempting to use the beta 3 software to connect to Exchange 2007. Unfortunately, I dont see a dialog on the WSDL wizard to enter uid & password. I presume I can simply put "https://" in the uri field (Exchange requires https) but Exchange also

  • My macbook just got really slow after I deleted a load of render files. Any advice appreciated.

    Hardware Information:           MacBook Pro (13-inch, Mid 2012)           MacBook Pro - model: MacBookPro9,2           1 2.9 GHz Intel Core i7 CPU: 2 cores           8 GB RAM Video Information:           Intel HD Graphics 4000 - VRAM: 512 MB System S