Tobii Eye Tracker (X120) returning incorrect data in LV but working in C++

Hello,
I have a Tobii Eye Tracker X120 that I've interfaced with LV using a .dll file created with the .NET application TlbImp.exe.  Attached are the main VI, callback VI, and the .dll I'm using.
Previously, the OnGazeData event would not fire.  This was resolved by creating a new .dll file via TlbImp.exe.  Now, the event fires, but with data we don't believe to be correct. 
While tracking, the indicator labeled simply Boolean should follow the subject's gaze.  x_gazepos_lefteye and y_gazepos_lefteye are floating point numbers from 0 to 1, 0 being the left or top of the screen.  In the final version we'll likely find the mean of the left and right eyes' data, but for now we're just trying to get something usable back from the device.
We had one of my coworkers act as a test subject today.  While he would gaze into the top-left corner of the monitor, the Boolean indicator would hover in the bottom-right of the screen, or beyond the screen, or occasionally up to the middle of the screen.  The device shipped with a sample program in C++ that we use to verify that it's working properly, and it is.  The default program displays a square on the screen where you gaze, and that square has been found roughly accurate. 
So we're unsure what the problem is, but convinced it has something to do with our LV implementation.  In particular, we're wondering of the while loop is appropriate versus an event structure or something similar.  My apologies for the block of text, but I feel the situation merits an in-depth explanation.  Thank you so much for your time looking all of this over.
- EDC
Attachments:
connectionAndTracking.vi ‏53 KB
fullClusterCallback.vi ‏21 KB
TetComp.zip ‏22 KB

Hi Evan,
Shooting from the hip it looks like you might want to invert the coordinant system and do some running averaging to smooth out your data and correct the inversion you're seeing. DLLs are a bit of a black box and your system looks to simply be reading back what the DLL is generating. Have you contacted Tobii or examined the c++ program to look for behaviors like this? It might be a useful exploration.
Also, I'd examine the coordinants and how they trend. You find patterns, you can always implement some math to do correction or autoscaling if needed. The way LabVIEW calls into .NET assemblies is pretty simple and shouldn't behave much different than a c++ call, it will just look different. Does software processing not handle the problems you're encountering?
Verne D. // LabVIEW & SignalExpress Product Support Engineer // National Instruments

Similar Messages

  • OracleDataAdapter.Fill returns incorrect data for small numbers.

    Hi All,
    Recently we moved to Oracle client 11.1.0.7.20 with ODP.NET and instant client.
    And we encountered the following issue.
    When FetchSize of the command is set to any value that differs from default for some number fields with size <5 incorrect values are returned.
    I used the following code to reproduce the issue:
    var query = "SELECT * FROM RT ORDER BY ID";
    var connectionString = "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=server)(PORT=1531)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=test)));User Id=user;Password=password;";
    var column = "IS_LEAF"; // data type is NUMBER(1, 0)
    using (var connection = new OracleConnection(connectionString))
    using (var cmd1 = connection.CreateCommand())
    using (var cmd2 = connection.CreateCommand())
    cmd1.CommandText = query;
    cmd2.CommandText = query;
    cmd2.FetchSize = 512*1024; // 512K
    var adapter1 = new OracleDataAdapter(cmd1);
    var table1 = new DataTable();
    adapter1.Fill(table1);
    var adapter2 = new OracleDataAdapter(cmd2);
    var table2 = new DataTable();
    adapter2.Fill(table2);
    for (int i = 0; i < table1.Rows.Count; i++)
    var row1 = table1.Rows;
    var row2 = table2.Rows[i];
    if (!object.Equals(row1[column], row2[column]))
    Console.WriteLine(string.Format("values don't match: {0}, {1}", row1[column], row2[column]));
    there are some ouput lines:
    values don't match: 0, 3328
    values don't match: 0, 3
    values don't match: 1, 3
    values don't match: 0, 318
    values don't match: 0, 264
    values don't match: 1, 10280
    values don't match: 1, 842
    values don't match: 1, 7184
    The column type is NUMBER(1, 0) and only values in the database are 1 or 0. So as you can see most of the values filled with custom fetch size are totally incorrect.
    We have several tables with small number fields and for some of them the issue reproduces but for others does not.
    And the issue doesn't appear:
    1. with Oracle client 11.1.0.6.20
    2. if I use data readers and compare values record by record.
    Our Oracle DB version is 10.2.0.4.
    Thanks,
    Maxim.

    For anyone that may find this at a later time, this behavior has now been corrected, and is available in 11107 Patch 31 and newer, available on My Oracle Support. Note that the "self tuning=false" did not work in all cases, so the only reliable solution is to get the patch.
    Greg

  • Sub report using Stored Procedure returns incorrect data

    Post Author: rikleo2001
    CA Forum: Data Connectivity and SQL
    Guys,
    I am using CR 9 in ASP.net application.
    One simple report and one Sub report, sub report is basically linked with Stored procedure accepting one parameter and returns a select query.
    Main report is linked with that sub report using that parameter field.
    Sub report is on demand sub report.
    Now when I execute that main report and click on on demand sub report I am getting Wrong order information.
    Here is out put on main report
    Order 1                                          on demandDetail
    Order 2                                          on demandDetail
    Order 3                                          on demandDetail  
         NOW If I click on Order 3 (On demanddetail link, it displays rondom order details, some time correct on too), I am really stuck and don't know where I am going wrong.
    Please help me to solve this issues.
    Many Thanks

    Post Author: rikleo2001
    CA Forum: Data Connectivity and SQL
    Hi Yangster,
    Thank you so much for your reply.
    On DEMAND Sub report is located in main report, IN DETAIL SECTION
    I am passing Order ID from main report linked to  {?morderid} in subreport under command object, and if I run it in design mode, it works perfectly alright, so problem is isolated to ASP.NET and Crystal report post back method on Crystal report.
    The example I give to you this is a simple example to identify issues in my real application and report.
    My main report contains summary of data base on unique identifier. that summary have 4 differant types of details which has to be on the same report (as Crystal report doesn't provide Nested subreport), so I decided to use 4 subreports on main report and all subreport using Stored procedure command object.(Sub report has it own complex processing requirement to fulfill).
    Please help me with any further ideas? for the sample which I presented to you this is only using one SP on main report with a simple processing.
    Many Thanks

  • Calendar returns incorrect date

    This is a snippet from an application I'm working on but I'm getting an unexpected problem.
    Calendar cal = Calendar.getInstance();
    String todayDate = Integer.toString(cal.get(Calendar.DAY_OF_MONTH)) + "/" + Integer.toString(cal.get(Calendar.MONTH)) + "/" + Integer.toString(cal.get(Calendar.YEAR));
    System.out.println(todayDate);When it outputs, the date I get is 17/9/2008 when it's actually 17/10/2008. Any ideas?
    I know I can just do:
    (cal.get(Calender.MONTH) +1)But that's just not right.
    If anyone knows why this is happening, it would be greatly appreciated because it's just annoying me now.

    Strange that month is zero indexed when day isn't. Seems a little inconsistent.No, it's consistent. It's just wrong (and really, really dumb)

  • Rownum giving Incorrect  Result in 11gR2 but working ok in 10gR2

    Hi All,
    We have following query which is working fine in 10g but in 11g it is showing incorrect result.
    select x.*,rownum from (select rat.rating_agency_id from bus_ca_cpty_rating rat,MST_CP_RATING mst
    where rat.org_id=618
    and
    rat.rating_agency_id=mst.rating_agency_id
    and
    rat.rating_value=mst.rating_value
    and
    rat.heritage_system=mst.heritage_system
    order by rat.rating_date,rat.rating_time)x
    where rownum=1;
    Result Without last Check <where rownum=1> in the query (in both 10g and 11g)
    RATING_AGENCY_ID     ROWNUM
    3     1
    1     2
    Result of the query in 11gR2 (11.2.0.3)
    RATING_AGENCY_ID     ROWNUM
    1     1
    Result of the query in 10gR2 (10.2.0.3)
    RATING_AGENCY_ID     ROWNUM
    3     1
    Request your help to resolve the issue(please tell me the bug name if it is a bug) and please let me know how it is processing the query in 11g.
    Edited by: 906061 on Jun 19, 2012 2:22 AM

    T.PD wrote:
    906061 wrote:
    Result Without last Check <where rownum=1> in the query (in both 10g and 11g)
    RATING_AGENCY_ID     ROWNUM
    3     1
    1     2
    Result of the query in 11gR2 (11.2.0.3)
    RATING_AGENCY_ID     ROWNUM
    1     1
    Result of the query in 10gR2 (10.2.0.3)
    RATING_AGENCY_ID     ROWNUM
    3     1Your desired result depends on the wrong idea if implicid ordering of the results. there is no such!
    Database does not sort returned rows any how (unless you use order by in your query). The order of returned rows may be consistent over a long period but if the table contents is reorganized or (as I assume) you import data to anotehr database the order may change.
    To make the long storry short: you need another filter condition than <tt>rownum = 1</tt>.
    bye
    TPDLook closely: it looks like a standard top-n query with the order by in the sub-query.

  • Report returns wrong data when run on server

    Hi,
    I'm runing CRS XI R2 on Windows Server 2003 SP2.  When I refresh a report in the Crystal Reports XI Designer, I'm getting correct data.  But when I schedule the report to run on the server it returns wrong data.  The data is different from what I see when I refresh it from the designer.  In the report I have running totals set up to count customers that meet a certain criteria.  The report is very large.  It take almost 2 hours to refresh.
    I was wondering what is causing the difference in running total data between refreshing it on the designer and running it on the server.  Is it returning wrong data b/c of it not reading all the records?  Should I be making any changes to the server settings?  I saw that under pageserver, there are options for  setting the 'Minutes Before an Idle Report Job is Closed' and 'Database Records To Read When Previewing Or Refreshing a Report".  Do either of those have anything to do with the report returning incorrect data when being scheduled to run on the server?
    Thanks,
    Kim

    Hi Xuandao,
    You would need to Use Cell Binding and Trigger concept to accomplish this.
    Its simple, however, you would have to work on a trial and error basis to understand this concept as implementing the same is subject to your dashboard and WEBI Design.
    Open you LiveOffice.
    Insert your WEBI, Now, go to Object Properties of your WEBI, select the second tab that says Prompt, Here, it lists the prompts that you have for your WEBI. This would also enlist your BEx variables as well. Select this BEx variable and click on the button that says Prompt at the bottom of this window. Here, select choose Excel Data Range and click on the cell select button on the right (small button that lets you choose what cell you want to bind this prompt to), Now select a free cell that would not be even populated later on when you run the dashboard say A1 (remember the value that you select). Click on OK and again OK. The WEBI Refreshes and you can see all the prompt values at the cell A1. These are all the possible values stored for your BEx prompt variables (these values are fetched from BW system dynamically).
    Now, save this LiveOffice, Go to you dashboard. Connect your dashboard to your Live office. Go to Data-> connections-> Now, select the WEBI and in the right hand pane  go to Usage tab, here, Click on Trigger cell button on the right hand side and select A1 in you LiveOffice.
    It should work fine.
    Let me know.
    Rgds,
    Sreekul Nair

  • How can I change incorrect "date received" info in Mail?

    When I switched to Mavericks I had to leave behind Eudora, which I liked.  I started using Mail, but when Mail imported my email files from Eudora it misdated many of the files, using the date the file was imported as the "date received".  Since I use the date to help me keep track of sequencing of emails received, having this incorrect date thrown in is a problem, but I can't find any way to correct it.
    Exactly how can I correct the "date received" on mislabeled emails?  The dates were correct in my Eudora files, but I can't access those any more now that I'm on Mavericks, so I'm going to have to manually check the emails to find the dates in the headers or message contents.
    I'm not highly tech savvy, so if I have to go into the Terminal, I'll have to know exactly what prompts to look for and what specific information to provide, and in what format.
    Help!

    Hi Stuart.
    Open /Applications/Utilities/Terminal, type the following command (you can just copy it here, paste in a text editor, modify the email address, then copy the whole command again, and paste in Terminal), and press <Return>:
    defaults write com.apple.mail UserHeaders '{"Reply-To" = "[email protected]";}'
    The following article contains a more thorough description of this technique that takes into consideration the possibility that you might inadvertently overwrite other default headers by doing that:
    How to Add a Reply-To Header to All Emails You Send in Mac OS X Mail

  • In iTunes 11.0.2.26, an Albums search by track names returns albums as if they only have one track on them, but I still want to access the entire album. How can I have the search results show the entire album (with just the searched for name highlighted)?

    Hello, all.
    In iTunes 11.0.2.26, an Albums search by track names returns albums as if they only have one track on them, but I still want to access the entire album. How can I have the search results show the entire album (with just the searched for name highlighted)? For instance, I'm wanting to play an album with a particular track on it or I'm searching for albums that include that track. iTunes incorrectly assumes that all I'm after is that one track and then incorrectly displays the album as if there is only one ttrack on it. This is a bonkers default setting. Can I change this?

    Click the search magnifying glass and uncheck "Search entire library".
    Type in the name of the track.
    Click the album of interest to show tracks.
    Select the track.
    Press the X in the search box to clear the search.
    Double click the track you want to start playing first.
    tt2

  • JSObject returns wrong date. How can I extract correct date from digital signature?

    I'm trying to extract name and date from digital signatures by using JSObject in Excel VBA, but JSObject returns wrong date. Year, month, hour and minute are correct, but only day is incorrect.
    Here is my code. I'm using Acrobat 8.1.3.
    Please tell me what's wrong with this code and how I can extract correct date from digital signatures.
    Public Sub sbTest()
    Dim oApp As Acrobat.acroApp
    Dim oPDDoc As Acrobat.AcroPDDoc
    Dim jso As Object
    Dim f As Object
    Dim sig As Object
    Dim strFileName As String
    Set oApp = CreateObject("AcroExch.App")
    Set oPDDoc = CreateObject("AcroExch.PDDoc")
    strFileName = "C:\Test.pdf"
    If (oPDDoc.Open(strFileName)) Then
    Set jso = oPDDoc.GetJSObject
    Set f = jso.getField("Signature1.0")
    Set sig = f.signatureInfo()
    Debug.Print sig.Name
    Debug.Print sig.Date
    End If
    Call oPDDoc.Close
    Call oApp.Exit
    End Sub

    Hi
    You can use TDMS file format to save the data. I have attached a reference Vi.
    On button click you can log the data or remove the case structure and continuous log the complete acquisition data.
    Thanks and Regards
    Himanshu Goyal
    Thanks and Regards
    Himanshu Goyal | LabVIEW Engineer- Power System Automation
    Values that steer us ahead: Passion | Innovation | Ambition | Diligence | Teamwork
    It Only gets BETTER!!!
    Attachments:
    Data Save in File.vi ‏35 KB

  • VISA Read gets incorrect data from serial connection

    I am having difficulty using the VISA functions in LabVIEW to read data from a virtual COM port. Data is being sent from a serial to USB chip via a USB connection using OpenSDA drivers. I have a python program written to read from this chip as well, and it never has an issue. However, when trying to achieve the same read in LabVIEW I am running into the problem of getting incorrect data in the read buffer using the VISA Read function.
    I have a VISA Configure Serial Port function set up with a control to select the COM port that the device is plugged into. Baud rate is default at 9600. Termination char of my data is a newline, which is also default. Enable termination char is set to true. A VISA Open function follows this configuration, and then feeds the VISA Resource Name Out into a while loop where a VISA Read function displays the data in read buffer. Byte count for the VISA Read is set to 20 so I can read more of the erroneous datat, however actual data will only be 6-12 bytes. The while loop has a wait function, and no matter how much I slow down the readings I still get incorrect data (I have tried 20ms thru 1000ms). 
    The data I expect to receive in the read buffer from VISA Read is in the form of "0-255,0-255,0-255\n", like the following:
    51,93,31\n
    or
    51,193,128\n
    And occasionally I receive this data correctly, however I intermittently (sometimes every couple reads, sometimes a couple times in a row) get incorrect readings like this:
    51,1\n
    51,193739\n
    \n
    51,1933,191\n
    51,,193,196\n
    51,1933,252 
    51,203,116203,186\n
    Where it seems like the read data is truncated, missing characters, or has additional characters. Looking at these values, however, it seems like the read was done incorrectly because the bytes seem partially correct (51 is the first number even in incorrect reads).
    I have search but haven't found a similar issue and I am not sure what to try from here on. Any help is appreciated. Thanks!
    Attachments:
    Serial_Read_debugging.vi ‏13 KB

    The first thing is that none of the error clusters are connected so you could be getting errors that you are not seeing. Are you sure about the comm parameters? Finally, I have never had a lot of luck looking for termination characters. You might want to just capture data and append each read into one long string just to see if you are still seeing this strangeness.
    What sort of device is returning the data? How often does it spit out the data? How much distance is there between it and your computer? Can you configure it append something like a checksum or crc to the data?
    Mike...
    Certified Professional Instructor
    Certified LabVIEW Architect
    LabVIEW Champion
    "... after all, He's not a tame lion..."
    Be thinking ahead and mark your dance card for NI Week 2015 now: TS 6139 - Object Oriented First Steps

  • BOXIR2 FP4.6 -WebI report with merged dimensions: Incorrect data

    Issue: BOXIR2 FP 4.6 -WebI report with merged dimensions: Max value of an object from second query is displayed in the report even when the formula is based on the object from the first Query.
    Data displays properly on BOXIR2 SP2.
    Steps to reproduce.
    1.Use u2018Island Resort Marketingu2019 Universe to create a WebI report.
    2. Create a Query with objects u2018Reservation Dateu2019 and u2018Future guestsu2019 and apply a query filter where the u2018Reservation Dateu2019 is between 1/1/2001 and 31/1/2001 an Run the query.
    3. Add a second Query with the same objects i.e. u2018Reservation Dateu2019 and u2018Future guestsu2019 and apply a query filter where the u2018Reservation Dateu2019 is between 1/1/2001 and 31/12/2001.
    4. Create a report variable MaxDate using the syntax "=Max([Query 1].[Reservation Date]) In Report"
    5. Use the objects u2018Reservation Date Query 2u2019, u2018Future guests Query 2u2019 and u2018MaxDateu2019 variable to create a table in the report.
    You will find the Maxdate column displays Max date values of u2018Reservation Date Query 2u2019 instead of u2018Reservation Date Query 1u2019.
    Could you please advice me on this issue.

    Hi Hiteshwar,
    MaxDate variable returns a maximum of Reservation date  from Query 1 i.e. 1/15/01 which is correct. If you put that variable separately it will display that date correctly but you are grouping it along with objects from the query2 thatu2019s why it is displaying correct value for Query 2 where it finds 1/15/01, but for other values WEBI canu2019t group this value as it refers its formula which contains Query 1 reservation date.
    Hence we canu2019t say it is displaying values from Query 2 it is taking values from Query1 itself  for 1/15/2001 and for remaining values it is taking non matching values from Query 2 with which it is grouping.
    If you put that variable with objects from Query1 it wonu2019t display 1/15/01 but all values reservation date from query 1 contains because it is grouping based on reservation date though it is single max value.
    Even when you write "=Max(Query 2.Reservation Date) formula and use it with objects from query 1 though it contains so many values it matches (Groups) only the values from reservation date from Query 1.and displays only those values i.e. 1/1/2001 and 1/15/01.
    MaxDate returns 1/15/01 as Maximum Date value from Query 1 but Query 2 contains value far more greater than 1/15/01 hense that will be more incorrect data if WEBI displays maxdate as 1/15/01 along with Query 2 objects.
    Here we can avoid this behavior by Custom SQL but MaxDate is a report level variable hence we canu2019t edit SQL.
    If your data contains some duplicate values WEBI will repeat MaxDate value like
    Reservation date     Restaurant           Future_Guests    Total Guests 
    1/1/01                          ABC                         3                   3     
    1/15/01                       XYZ                          4                   8    
    1/16/01                       XYZ                          4                   8  
    By default, WEBI Groups Total Guests based on the Restaurant and Reservation Date, but if we want we can group those values based only on Restaurant which will duplicate Total Guest values for Restaurant XYZ. But you report contains only one dimension with all unique Values we canu2019t group those.
    I hope this is clear.
    Thanksu2026
    Pratik

  • Crystal Reports return no data after publish to Infoview.

    *Description of Problem or Question:
    Reports defined in Crystal report client do not work correctly when published to Infoview.
    When report run from client, correct data is returned. When run from Infoview, no or limited data is returned.
    The problem is new since installation of Service Pack 3 fixpack 3.5.
    We are using the SAP Integration kit.
    Product\Version\Service Pack\Fixpack (if applicable):
    BOBJ XI 3.1 SP3, FP 3.5 (Including Integration kit transports)
    Relevant Environment Information (OS & version, java or .net & version, DB & version):
    Windows 2003 64-Bit, Java, Linking to SAP ECC6 on MAXDB 7.6
    Sporadic or Consistent (if applicable):
    Consistent, altough 1st refresh returns data, subsequent refresh returns no rows or few rows.
    What has already been tried (where have you searched for a solution to your question/problem):
    We have searched SAP Marketplace for OSS notes but none match our problem.
    Steps to Reproduce (if applicable):
    Create report in Crystal Reports - publish to Infoview
    Install BOBJ XI 3.1 SP3 and FP 3.5
    Refresh report in infoview - shows limited or no data
    Open report in Crystal Reports 2008 Client, refresh data - returns correct data.
    Save Cystal report to Infoview, refresh data in infoview (scheduled or online) - returns incorrect or no data.

    Hello,
    this is interesting. Check your CR Server settings if there are any limits with regards to rows or timeouts after the installation of FP3.5
    If your CR reports are running on a Universe, check the properties of the Universe if there are limitations affected to the rows.
    If this all brings no result i would highly recommend to open a Support Message at SAP - maybe thats a Bug coming with FP3.5
    Regards
    -Seb.

  • Incorrect Dates and Duplicate Entries in Calendar

    Hello,
    I have had some duplication and incorrect date problems with calendar entries on my iPhone, but not iCal on the Mac that I synch it with. Maybe someone has a clue which troubleshooting path I can follow.
    Duplicate entries:
    I originally had "all calendars" synching and only a few of these calendars were duplicationg all of their entires. Upon further inspection in the iTunes synch menus, I found that I had a duplicate of each calendar; one with [email protected] and [email protected] I marked only the [email protected] calendars and that has taken care of the duplicates that I can see so far.
    Incorrect dates:
    I have a few repeating entries in one calendar that was duplicating above, but they are listed with incorrect dates on the iPhone only. These entries are marked all day events, but the pattern is for all the entries to be one day early vs. what is indicated on iCal. Forcing a reload of iCal data from my Mac doesn't change anything.
    There are a few things that I could do in my troubleshooting, but are labor intensive. I just thought that I would see if my issue ring a bell with anyone and/or there is a bug that has already been identified.
    “Technological change is like an axe in the hands of a pathological criminal.” (Albert Einstein, 1941),
    Dr. Z.

    Ok you can try one thing first, less invasive to see if it clears one set of contacts.
    Open your contacts
    Swipe down from the top edge > Settings.
    Scroll down and turn off each of the various contact accounts.
    tap BACK at lower left and now view your contacts.
    All that should be left are the "local" contacts. Do you see any, and are they the contacts duplicated?
    If so, then close all that and return to your main homescreen.
    To clear the local calendar or contact database on the BlackBerry 10 smartphone, complete the following steps:
    Swipe down from the top bezel on the home screen, and select Settings.
    Select Accounts.
    Tap the action menu button (3 vertical dots) on the bottom-right. 
    Select Clear Local Contacts or Clear Local Calendar.
    Now, view your contacts app again. Make sure the ALL TAB is displayed at lower left.
    Scroll through and check for duplicates.
    1. If any post helps you please click the below the post(s) that helped you.
    2. Please resolve your thread by marking the post "Solution?" which solved it for you!
    3. Install free BlackBerry Protect today for backups of contacts and data.
    4. Guide to Unlocking your BlackBerry & Unlock Codes
    Join our BBM Channels (Beta)
    BlackBerry Support Forums Channel
    PIN: C0001B7B4   Display/Scan Bar Code
    Knowledge Base Updates
    PIN: C0005A9AA   Display/Scan Bar Code

  • FYI DU error:"Reserved fields in the catalog record have incorrect data"

    I had a very perplexing problem...
    My iMac G5 was shutting down by itself so I took it to Apple and had the power supply replaced. After it was repaired I was concerned about the hard drive health after the unexpected shutdowns. So I ran Disk Utility and encountered the following...
    The iMac G5 is running OS 10.4.6.
    I ran "Repair Disk Permissions" from Disk Utility and encountered no errors.
    I ran "Verify Disk" from Disk Utility on the drive and I get these results (copied from DiskUtility.log):
    Verifying volume “TheDisk”
    Checking HFS Plus volume.
    Checking Extents Overflow file.
    Checking Catalog file.
    Checking multi-linked files.
    Checking Catalog hierarchy.
    Checking Extended Attributes file.
    Reserved fields in the catalog record have incorrect data
    Checking volume bitmap.
    Checking volume information.
    The volume TheDisk needs to be repaired.
    Error: The underlying task reported failure on exit
    Disk Utility stopped verifying “TheDisk” because the following error was encountered:
    The underlying task reported failure on exit
    1 HFS volume checked
    Volume needs repair
    This occurs whether I run it while booted from the hard drive or the restore disc. While booted from the restore disc, running repair disc indicates that the failure could not be fixed.
    Booted from the hardware test disc and all tests passed.
    Booted from TechTool Pro disc and all the tests passed.
    Booted from Disk Warrior (had to get the "free" update to boot my iMac G5) and rebuilt directory. No errors reported.
    Still same error reported in Disk Utility. ???
    Booted iMac in 'safe' mode. Rebooted iMac normally.
    Disk Utility now reports success!

    Sorry but this is not assistance to you but an additional request for help from someone!!!
    I had the same thing occur just now!!!! I have used everything in site and keeps returning............
    Hope someone has an answer as to why this occured....

  • OracleDataAdapter returning incorrect schema information

    Hi everyone. I have a very reproducible case where the DataTable schema created by the OracleDataAdapter is incorrect. It is driving me crazy :-).
    ====================
    OracleConnection cnn = new OracleConnection("User ID=XXX;Password=XXX;Data Source=XXX");
    cnn.Open();
    string strQuery = "CREATE TABLE FOO (a INT, b INT)";
    OracleCommand cmdExec = new OracleCommand(strQuery, cnn);
    cmdExec.ExecuteNonQuery();
    OracleCommand cmdQuery = new OracleCommand("SELECT * FROM FOO", cnn);
    OracleDataAdapter adp = new OracleDataAdapter(cmdQuery);
    DataTable dtb = new DataTable();
    adp.Fill(dtb);
    Console.WriteLine("FOO has {0} columns.", dtb.Columns.Count);
    for (int i = 0; i < dtb.Columns.Count; i++)
    Console.WriteLine("{0}th column's name is {1}.", i, dtb.Columns[ i ].ColumnName);
    cmdExec.CommandText = "DROP TABLE FOO";
    cmdExec.ExecuteNonQuery();
    cmdExec.CommandText = "CREATE TABLE FOO (c INT, d INT, e INT)";
    cmdExec.ExecuteNonQuery();
    dtb = new DataTable();
    adp.Fill(dtb);
    Console.WriteLine("FOO has {0} columns.", dtb.Columns.Count);
    for (int i = 0; i < dtb.Columns.Count; i++)
    Console.WriteLine("{0}th column's name is {1}.", i, dtb.Columns[ i ].ColumnName);
    cnn.Close();
    Console.ReadLine();
    =============================
    The console output is:
    FOO has 2 columns.
    0th column's name is A
    1th column's name is B
    FOO has 2 columns.
    0th column's name is A
    1th column's name is B
    But it should be:
    FOO has 3 columns.
    0th column's name is C
    1th column's name is D
    2th column's name is E
    for the second iteration.
    What should I do?
    -- Matt

    I agree with the earlier comment stating '...that the caching is happening inside of the ODP layer rather than a lower layer such as OCI. It looks like the caching is occurring in the m_metaData member of the OracleCommand...'.
    It looks like all of the caching is indeed taking place in ODP. However there is in fact two levels of cache taking place in your particular example - at the OracleCommand level but also deep inside ODP.Net there is a static MetaData class which has a private member m_pooler that maintains a metadata cache on a per connection basis. Basically even if the OracleCommand object entry m_metaData is reset values still appear inside the internal pool and so there need to be removed too - this cache is indexed initially through a hash of the connection details and then statement text. This is why even a new OracleCommand object but with same statement text on same connection also returns incorrect information.
    Within the OracleReader implementations various calls are made to MetaData.Pooler.Get.. calls to retrieve cached information.
    I came across a similar problem (not identical) because we are using the 'alter session set current schema...' command and this causes some problems.
    Basically it appears a base assumption has been made that the definition of object will not change at runtime (which you can understand) but in my case it is possible that 'select * from emp' say could be execute from the same connection but relate to different objects because name resolution has been adjust using the 'alter session...' command which is a big problem.
    I have written some helper routines which enable the internal caches to be 'managed' although it uses some nasty reflection to accomplish this (using private members directly!). It work successfully in my case and I have done a quick change to your example code (added a single call) and it now works, i.e.
    cmdExec.CommandText = "CREATE TABLE FOO (c INT, d INT, e INT)";
    cmdExec.ExecuteNonQuery();
    OracleMetaDataRemover.Remove(cmdQuery, true);
    dtb = new DataTable();
    adp.Fill(dtb);
    If you use the Remove method above and change true to false you will still receive the problem because although the Command has been cleared the details still remain centrally.
    The code which accessed above I include below as is (coded for Oracle 10.1.0.3.01 ODP - it may work on other releases but note this could break in future). Ideally methods are required within ODP to allow cleardown/control of this.
    using System;
    using System.Reflection;
    using System.Collections;
    using Oracle.DataAccess.Client;
    namespace Oracle.DBUtilities
         /// <summary>
         /// Summary description for OracleMetaDataPoolerCleaner.
         /// </summary>
         public class OracleMetaDataPoolerCleaner
              private static string OracleAssemblyShortName = "Oracle.DataAccess";
              private static string OracleMDType = "Oracle.DataAccess.Client.MetaData";
              private static string OraclePoolerType = "Oracle.DataAccess.Client.Pooler";
              // Fast access pointer to internal hash of information
              private Hashtable PooledItems = null;
              private static OracleMetaDataPoolerCleaner _oracleMetaDataPoolerCleanerInstance = null;
              static readonly object _syncRoot = new object();
              private OracleMetaDataPoolerCleaner()
                   Assembly OracleDataAccess = null;
                   // Get hold of the Oracle Data Access assembly
                   Assembly[] LoadedAssemblyList = AppDomain.CurrentDomain.GetAssemblies();
                   for(int i=0; i<LoadedAssemblyList.Length && OracleDataAccess == null; i++)
                        Assembly LoadedAssembly = LoadedAssemblyList;
                        string[] AssemblyNameDetails = LoadedAssembly.FullName.Split(',');
                        if (AssemblyNameDetails[0] == OracleMetaDataPoolerCleaner.OracleAssemblyShortName)
                             OracleDataAccess = LoadedAssembly;
                   // Make sure located details
                   if (OracleDataAccess != null)
                        // Get access to the MetaData cache details
                        Type OracleMetaData = OracleDataAccess.GetType(OracleMetaDataPoolerCleaner.OracleMDType);
                        if (OracleMetaData != null)
                             // Retrieve static pool item
                             FieldInfo f_Pooler = OracleMetaData.GetField("m_pooler", BindingFlags.NonPublic|BindingFlags.Instance|BindingFlags.Static);
                             if (f_Pooler != null)
                                  // As we cannot get direct access to the object type assume it is OK
                                  object pa = f_Pooler.GetValue(null);
                                  if (pa != null)
                                       Type OraclePooler = OracleDataAccess.GetType(OracleMetaDataPoolerCleaner.OraclePoolerType);
                                       if (OraclePooler != null)
                                            FieldInfo f_Pools = OraclePooler.GetField("Pools", BindingFlags.NonPublic|BindingFlags.Instance|BindingFlags.Static);
                                            PooledItems = f_Pools.GetValue(pa) as Hashtable;
                                            if (PooledItems == null)
                                                 throw new InvalidOperationException("Unable to initialise metadata cache access...");
              public static OracleMetaDataPoolerCleaner Instance()
                   // Make single copy of this item ready for use
                   if (_oracleMetaDataPoolerCleanerInstance == null)
                        // Thread safe locking and initialisation - 'double-checked lock'
                        lock(_syncRoot)
                             if (_oracleMetaDataPoolerCleanerInstance == null)
                                  _oracleMetaDataPoolerCleanerInstance = new OracleMetaDataPoolerCleaner();
                   return _oracleMetaDataPoolerCleanerInstance;
              /// <summary>
              /// Using reflection the process determines the command text
              /// contents of the specified OracleCommand
              /// Note this could simply have been delegated through to the
              /// OracleConnection version using OCommand.Connection
              /// </summary>
              /// <param name="OCommand">OracleCommand object containing command to be retrieved</param>
              /// <returns>Command string located</returns>
              public static string CommandText(OracleCommand OCommand)
                   string OracleCommandCommandText = null;
                   // Using reflection get direct access to the 'private' member details..
                   Type TypeOracleCommand = OCommand.GetType();
                   FieldInfo FieldInfoCommandText = TypeOracleCommand.GetField("m_commandText", BindingFlags.NonPublic|BindingFlags.Instance);
                   if (FieldInfoCommandText != null)
                        OracleCommandCommandText = FieldInfoCommandText.GetValue(OCommand).ToString();
                   return OracleCommandCommandText;
              /// <summary>
              /// Using reflection the process determines the command text
              /// contents of the specified OracleCommand
              /// </summary>
              /// <param name="OReader">OracleDataReader object containing command to be retrieved</param>
              /// <returns>CommandString located</returns>
              public static string CommandText(OracleDataReader OReader)
                   string OracleDataReaderCommandText = null;
                   // Using reflection get direct access to the 'private' member details..
                   Type TypeOracleDataReader = OReader.GetType();
                   FieldInfo FieldInfoCommandText = TypeOracleDataReader.GetField("m_commandText", BindingFlags.NonPublic|BindingFlags.Instance);
                   if (FieldInfoCommandText != null)
                        OracleDataReaderCommandText = FieldInfoCommandText.GetValue(OReader).ToString();
                   return OracleDataReaderCommandText;
              /// <summary>
              /// Using reflection the process determines the hashvalue
              /// specified OracleConnection
              /// </summary>
              /// <param name="OConnection">OracleConnection for which the HashCode is to be retrieved</param>
              /// <returns>HashValue located or -1</returns>
              public static int ConnectionStringHashValue(OracleConnection OConnection)
                   int HashValue = -1;
                   // Using the Oracle Connection retrieve the hashvalue associated
                   // with this connection
                   if (OConnection != null)
                        Type TypeOracleConnection = OConnection.GetType();
                        FieldInfo f_ConStrHashCode = TypeOracleConnection.GetField("m_conStrHashCode", BindingFlags.NonPublic|BindingFlags.Instance);
                        if (f_ConStrHashCode != null)
                             HashValue = Int32.Parse(f_ConStrHashCode.GetValue(OConnection).ToString());
                   return HashValue;
              /// <summary>
              /// Using reflection the process determines the hashvalue
              /// specified OracleDataReader
              /// </summary>
              /// <param name="OReader">OracleDataReader for which the associated connection HashValue is to be located</param>
              /// <returns>HashValue located or -1</returns>
              public static int ConnectionStringHashValue(OracleDataReader OReader)
                   int HashValue = -1;
                   // Using reflection get direct access to the 'private' member details..
                   Type TypeOracleDataReader = OReader.GetType();
                   FieldInfo f_OraConnection = TypeOracleDataReader.GetField("m_connection", BindingFlags.NonPublic|BindingFlags.Instance);
                   // Ensure have access to a connection and retrieve has information
                   if (f_OraConnection != null)
                        OracleConnection ConnectionValue = f_OraConnection.GetValue(OReader) as OracleConnection;
                        HashValue = OracleMetaDataPoolerCleaner.ConnectionStringHashValue(ConnectionValue);
                   // Return the hashvalue information located
                   return HashValue;
              /// <summary>
              /// Using reflection the process determines the hashvalue
              /// specified OracleCommand
              /// Note this could simply have been delegated through to the
              /// OracleConnection version using OCommand.Connection
              /// </summary>
              /// <param name="OCommand">OracleCommand for which the associated connection HashValue is to be located</param>
              /// <returns>HashValue located or -1</returns>
              public static int ConnectionStringHashValue(OracleCommand OCommand)
                   int HashValue = -1;
                   // Using reflection get direct access to the 'private' member details..
                   Type TypeOracleCommand = OCommand.GetType();
                   FieldInfo f_OraConnection = TypeOracleCommand.GetField("m_connection", BindingFlags.NonPublic|BindingFlags.Instance);
                   // Ensure have access to a connection and retrieve has information
                   if (f_OraConnection != null)
                        OracleConnection ConnectionValue = f_OraConnection.GetValue(OCommand) as OracleConnection;
                        HashValue = OracleMetaDataPoolerCleaner.ConnectionStringHashValue(ConnectionValue);
                   // Return the hashvalue information located
                   return HashValue;
              /// <summary>
              /// Using the supplied OracleDataReader internal calls are made
              /// to determine the ConnectionHash and CommandText details which will
              /// then be used to remove the item
              /// </summary>
              /// <param name="OReader">OracleDataReader to be probed to obtain information</param>
              /// <returns>Indicates whether the item was actually removed from the cache or not</returns>
              public bool Remove(OracleDataReader OReader)
                   bool Removed = false;
                   // Lookup the ConnectionStringHashDetails
                   int HashValue = OracleMetaDataPoolerCleaner.ConnectionStringHashValue(OReader);
                   if (HashValue != -1)
                        // Lookup the command text and remove details
                        string CommandText = OracleMetaDataPoolerCleaner.CommandText(OReader);
                        // Attempt to remove from the cache
                        Removed = this.Remove(HashValue, CommandText);
                   return Removed;
              /// <summary>
              /// Using the supplied OracleCommand internal calls are made
              /// to delegate the call to the OracleConnection version
              /// </summary>
              /// <param name="OCommand">OracleCommand to be probed to obtain information</param>
              /// <returns>Indicates whether the item was actually removed from the cache or not</returns>
              public bool Remove(OracleCommand OCommand)
                   // Call into internal other routine
                   return this.Remove(OCommand.Connection, OCommand.CommandText);
              /// <summary>
              /// Using the supplied OracleConnection internal calls are made
              /// to determine the ConnectionHash and it uses CommandText details
              /// to remove the item
              /// </summary>
              /// <param name="OConnection">OracleConnection from which the cache object should be removed</param>
              /// <param name="CommandText">CommandText to be removed</param>
              /// <returns>Indicates whether the item was actually removed from the cache or not</returns>
              public bool Remove(OracleConnection OConnection, string CommandText)
                   bool Removed = false;
                   // Lookup the ConnectionStringHashDetails
                   int HashValue = OracleMetaDataPoolerCleaner.ConnectionStringHashValue(OConnection);
                   if (HashValue != -1)
                        // Attempt to remove from the cache
                        Removed = this.Remove(HashValue, CommandText);
                   return Removed;
              /// <summary>
              /// Routine actually removes the items from the cache if it exists
              /// </summary>
              /// <param name="ConnectionHashValue">ConnectionHash which is used to key into the Pooled items</param>
              /// <param name="CommandText">CommandText to be removed</param>
              /// <returns>Indicates whether the item was actually removed from the cache or not</returns>
              private bool Remove(int ConnectionHashValue, string CommandText)
                   bool Removed = true;
                   // Retrieve Pooled items for particular hash value
                   Hashtable PoolContents = PooledItems[ConnectionHashValue] as Hashtable;
                   // Remove item if it is contained
                   if (PoolContents.ContainsKey(CommandText))
                        PoolContents.Remove(CommandText);
                        Removed = true;
                   return Removed;
         /// <summary>
         /// Summary description for OracleMetaDataRemover.
         /// </summary>
         public class OracleMetaDataRemover
              private OracleMetaDataRemover()
              /// <summary>
              /// Routine which Removes MetaData associated with OracleCommand object
              /// </summary>
              /// <param name="OCommand">OracleCommand to have associated MetaData removed</param>
              /// <returns>Indicates whether the MetaData associated with the OracleCommand was reset</returns>
              public static bool Remove(OracleCommand OCommand)
                   bool Removed = false;
                   // Retrieve current MetaData values from OCommand
                   Type OracleCommandMetaData = OCommand.GetType();
                   FieldInfo f_metaData = OracleCommandMetaData.GetField("m_metaData", BindingFlags.NonPublic|BindingFlags.Instance);
                   if (f_metaData != null)
                        f_metaData.SetValue(OCommand, null);
                        Removed = true;
                   // Indicate Removed from OCommand object
                   return Removed;
              /// <summary>
              /// Routine which Removes MetaData associated with OracleCommand object
              /// and allows for the removal of information from the internal cache
              /// </summary>
              /// <param name="OCommand">OracleCommand to have associated MetaData removed</param>
              /// <param name="RemoveFromMetaDataPool">Whether item should be removed from the internal metadata pool too</param></param>
              /// <returns>Indicates whether the MetaData associated with the OracleCommand was reset</returns>
              public static bool Remove(OracleCommand OCommand, bool RemoveFromMetaDataPool)
                   bool Removed = false;
                   // Remove details from Command
                   Removed = Remove(OCommand);
                   if (Removed && RemoveFromMetaDataPool)
                        // Remove information form internal cache
                        Removed = OracleMetaDataPoolerCleaner.Instance().Remove(OCommand);
                   // Indicated Removed from OCommand and Internal MetaData collection
                   return Removed;

Maybe you are looking for

  • Problem with unlocking and locking the Materials in MARA using idocs.

    We are sending a inbound idoc from one cluster to the other to update the materials If the material is locked ( MARA-MATFI=x ) before it needs to be unlock it  ,update it and lock again . If its not locked ,we just need to update it and lock the mate

  • T430 1600x900 i5 Core: Mini DisplayPort To HDMI 1920x1080 TV Resolution And Sizing-Overscan Problems

    Hello, and thanks in advance for any help.  Also, my apologies if these issues have been previously resolved; I've spent 2 days searching for answers and none of my effort has resulted in a solution, either here or elsewhere.   I very recently for th

  • JavaFX and JDK 1.7.x? (x=latest minor build as of 5/13)

    Good morning. I was playing around with building a standalone GUI app last night and wanted to test drive JavaFX 2.0 as the tool to build the UI. After reading through the documentation on the download site, I downloaded the JDK version 1.7.x (64 bit

  • Can't Burn. error 4280

    Everytime i try to burn a Cd, i get an "unknown error" number 4280. it doesn't matter if i burn mp3 or an audio cd. i've changed media brands and still the same problem. itunes recognizes my drive and i have no idea what the problem could be.

  • Grey wifi and bluetooth

    I have an old iPod  that my friend gave me and I thing the wifi and bluetooth antenna is broken because in the setting they are both greyed out and I can't click them. If I take it in to an apple store can they fix it or replace it or what?