Ongedocumenteerde (firewire) camera driver gebruiken

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • jopie1983
  • Registratie: November 2003
  • Laatst online: 25-02-2024
Beste mensen,
Ik probeer een camera van een microscoop uit te lezen voor een eigen gemaakt programmaatje. De camera is aangesloten op een windows xp pc via firewire. Het grote probleem is dat ik geen idee heb hoe ik de camera kan controleren. De camera gebruikt namelijk een driver van 1 of ander vaag bedrijf die niet aan TWAIN of IIDC specs voldoet, en hij kan ook niet aangestuurd worden via WIA of DirectShow.
Ik heb wel het sys bestand van de camera driver. Is er een manier om de methods uit dit bestand te achterhalen zodat ik de camera kan uitlezen (en liefst ook nog resolutie en exposure instellen) vanuit mijn programma? Kan ik methods en constanten via registry achterhalen of gewoon uit dit sys bestand halen? Enzoja, hoe? Ik heb me al rot gegoogled, maar heb ook geen clue op wat ik precies moet zoeken!

Acties:
  • 0 Henk 'm!

  • leuk_he
  • Registratie: Augustus 2000
  • Laatst online: 15-07 15:35

leuk_he

1. Controleer de kabel!

sys bestand? dos ? windows? bij windows kun je van dll alle methoden exporteren om van je .dll een .lib te maken. http://www.dependencywalker.com/ is wellicht handig om te starten dan.

je kunt wellicht ook met een "firewire snoop mode"driver kijken wat hij in firewire doet. maar dat lijkt me niet echt een vrijdagmiddag projectje meer.

Need more data. We want your specs. Ik ben ook maar dom. anders: forum, ff reggen, ff topic maken
En als je een oplossing hebt gevonden laat het ook ujb ff in dit topic horen.


Acties:
  • 0 Henk 'm!

  • PrisonerOfPain
  • Registratie: Januari 2003
  • Laatst online: 26-05 17:08
Stap 1 lijkt me die .sys door dumpbin heen halen om te kijken wat er aan symbols in zit. Vervolgens zul je moeten kijken wat de method signatures zijn en ze proberen aan te roepen. Het probleem is dat een .sys file een kernel-mode dll is en ik geen flauw idee heb hoe je die methods aan zou moeten roepen.

Acties:
  • 0 Henk 'm!

  • Feanathiel
  • Registratie: Juni 2007
  • Niet online

Feanathiel

Cup<Coffee>

Wellicht zijn er al opensource projecten beschikbaar die dit doen. Je kunt bijvoorbeeld op deviceID zoeken (apparaatbeheer) en kijken of dit apparaat misschien al in bijvoorbeeld Linux is geïmplementeerd.

In het ergste geval kun je nog altijd zien wat er binnen de .dll/.sys gebeurd en dit reverse-engineeren, maar leuk werk is anders. Hetzelfde geldt natuurlijk voor het draaien van een andere versie van Windows waar de .sys wel werkt en kijken/leren welk signaal de driver naar het apparaat stuurt. Dit laatste kan natuurlijk ook zonder de interne werking te bekijken, als je het werken in een VM prima vind.

Acties:
  • 0 Henk 'm!

  • jopie1983
  • Registratie: November 2003
  • Laatst online: 25-02-2024
Al bedankt voor de tips. Via dumpbin kom ik niet echt wijzer uit de driver, het enige wat ik daarmee te weten kom is dat er een INIT sectie inzit. Ik ben echter door de software aan het lopen die gebruikt maakt van de camera, en daar ben ik een aantal dll's tegengekomen waar ik waarschijnlijk wel verder mee kom. Als ik naar de method namen kijk daar, dan lijken deze libraries ook op een iets hoger, en handiger niveau te werken (ik ben zelf niet heel erg thuis in dit soort low-level programmeren).

Opensource drivers heb ik al naar gezocht, maar deze zijn niet beschikbaar. Het grote probleem is dat die driver blijkbaar niet aan standaard implementaties voldoet.

Acties:
  • 0 Henk 'm!

  • nero355
  • Registratie: Februari 2002
  • Laatst online: 28-02 22:21

nero355

ph34r my [WCG] Cows :P

Post een foto + wat meer details : Misschien herkent iemand het gekke ding :)

|| Stem op mooiere Topic Search linkjes! :) " || Pi-Hole : Geen advertenties meer voor je hele netwerk! >:) ||


Acties:
  • 0 Henk 'm!

  • jopie1983
  • Registratie: November 2003
  • Laatst online: 25-02-2024
Hierbij wat meer info:
het betreft een F-View II CCD camera, gebruikt bij een Olympus IX81 microscoop. Deze is via Firewire aangesloten op een pc, met Windows XP. De driver is van Softhard Technology Inc., volgens device manager is dit MV40DCAM.sys. Met dumpbin kom ik niet verder met dit bestand.
Vervolgens ben ik eens gaan kijken in de software die bij de microscoop geleverd wordt (Cell F van Olympus). Na wat checken van dll's kwam ik bij mm40api.dll uit als mogelijke library die Cell F gebruikt om de camera aan te sturen. Van deze dll heb ik zelfs de header files via google kunnen vinden, op de website van Softhard, dus dit geeft mij hoop dat ik de goeie dll te pakken heb. Er zitten iig allemaal methods in die je verwacht (om framebuffer uit te lezen e.d.). Dankzij de dumpbin en depends tip eerder in dit forum ben ik hier achtergekomen :).
Op dit moment moet ik even wachten tot er een nieuwe image op onze microscoop pc komt, in mijn enthousiasme had ik SP3, maar er is nu iets mis met de firewire kaart en de camera wordt niet meer herkend (kan ook aan mijn spelen met drivers liggen, ik krijg het in ieder geval niet meer opgelost).
Wat ik uiteindelijk wil doen is een device driver schrijven als plugin voor Micro-Manager, dit is een ImageJ plugin die gebruikt kan worden om microscopen aan te sturen. Die Cell F software is 1 van de meest brakke programma's die ik ooit ben tegengekomen, en we hebben wat functionaliteit nodig die hier niet in beschikbaar is.

Acties:
  • 0 Henk 'm!

  • Feanathiel
  • Registratie: Juni 2007
  • Niet online

Feanathiel

Cup<Coffee>

Ondertussen heb ik wel een example op de softhard website gevonden. Wellicht heb je daar wat aan. Header zit er ook bij, dus opzich moet je daarmee vooruit kunnen komen. :)

Edit: misschien kun je met de m3api van Ximea ook nog wel wat. Ziet eruit als dezelfde interface. Mocht dat nou werken, dan hebben ze ook nog xiAPI. Dat is wat minder deprecated.

[ Voor 41% gewijzigd door Feanathiel op 13-06-2012 18:40 ]


Acties:
  • 0 Henk 'm!

  • jopie1983
  • Registratie: November 2003
  • Laatst online: 25-02-2024
Dank je wel. Ik had de headersn en example ook ontdekt. Ik hoop dat ze ook echt met de camera samenwerken. Die Ximea API had ik al eerder geprobeerd, maar helaas. Die m3api werkt misschien wel, morgen eens proberen!
Pagina: 1