07-21-2010 12:32 PM
Greetings,
I am attempting to use IMAQdx to read and modify some registry values on an ISG LW-ELIS line camera. The camera is supposed to be IIDC 1394, or IEEE 1394 compliant.
As a specific example, I began by finding the camera's base address, then adding to it the offset 0x424. Ultimately, I would like to modify 2 bits in this registry to change the camera's mode of operation.
The manual, which I have attached (ISG Line Scan Programmer's Guide) for reference, lists the bits in this registry starting at 15 and going to 0. In this order, the 3rd and 2nd bits are the ones I am interested in. I can successfully read from base address + 0x424, but I cannot make heads or tails of the values I'm being given. To simplify things, I converted the U32 value to a boolean array and then to a (1,0) array. The values I am reading, however, do not seem to match the default values listed in the manual. The default value for the location 0x434 is 2047d, or 11111111111b. Hence, I figured this would be an easy indicator to check if the registers were being read correctly. Reading this location, however, gives no such long successions of 1s.
Furthermore, I am not precisely sure how to, or if I will need to at all, go about correcting for the endianess of IEEE versus IMAQdx.
Any guidance or advice would be much appreciated.
Best Regards,
Logan Wright
07-22-2010 03:35 PM
So you are able to read the camera registry correctly but if you write/read it back, it does not seem to be changed?
07-22-2010 03:43 PM
Andy, I am able to use other drivers/software, as well as the attached manuals, to confirm the values present on the registry at each location. My problem is that the values I read within labview are not the values I expect, even though I am relatively sure the registry addresses are correct.
07-24-2010 09:48 AM
Can you provide your code on how you are currently reading the registry from the camera?
07-26-2010 08:48 AM
I believe I have it solved. I'm still not precisely sure of the etymology, but the cure seems to have been specifying the complete registry address to the "Read Registry" or "Write Registry" functions in IMAQdx. I had been utilizing a few offset addresses to simplify user input and I think that the LabView functions assume 32-bit registers only, which meant that addresses were added differently than I wanted them to be (for 16-bit registers).
09-13-2010 12:59 PM
I was working on this for the LW-ELS-1024a-1394. The base address is 0xF0F00000 the offsets are list in as 3 hex numbers but there is an additional digit of 7 in front so to get the 0x434 address you would read or write to 0xF0F07434. This is left out of the programmer's manual but listed in the normal camera manual. A good way to check if it is working is load the camera in the ISG program and get some the the register values from there so you know exactly what they are. They can be set diffferent from the defaults without you knowing.
05-04-2016 06:05 PM
I'm interested in this, as I appear to be having the same problem as OP, with the same camera and everything, but after implementing this offset, eg. 'F0F07448' corresponding to the Clock/div control, according to the programmer's manual. But when I use the Write to Register VI with that offset (use Hex string to number VI, input to Write to Register) and a value like '0xf03' (use Hex string to number VI, input to Write to Register), I use Read Register immediately after and find the register value to be 'F00', which does not seem to change on any register alteration. I have checked this on the ISG software, and this register changes with the clock rate, as I would expect. Any idea why this would be unresponsive for me? I've attached my camera initialization VI, as well as the text file including registry offsets and addresses.
Thanks!
05-05-2016 08:34 AM
I would avoid all the string conversions initial and take a step back and pick 1 register and code the change you want in using a hex number display controls for register and value. That way you can verify that it is working and then put your config file part back in place.