AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Kameraansteuerung - EOleException

Ein Thema von Sascha.E · begonnen am 15. Jan 2007 · letzter Beitrag vom 7. Mär 2007
Antwort Antwort
Sascha.E

Registriert seit: 9. Nov 2006
Ort: Bremen
11 Beiträge
 
#1

Kameraansteuerung - EOleException

  Alt 15. Jan 2007, 10:08
Hi! ich hab schon wieder ein Problem, dass mich ziemlich knabbern lässt, ohne dass ich mich einen Millimeter vom Fleck bewege, was die Suche der Lösung angeht. Ich versuche ein Beispielprogramm zur Ansteuerung einer SVS-Vistek Industriekamera mit 11Mpx zu kompilieren, um den Code als Grundprinzip für einen eigenen Image/Videograbber zu nutzen ... es gibt leider nur die beigelegten Beispielcodes, ansonsten keine Codebeispiele.
Auch eine Bedienungsanleitung/Dokumentation mit Erklärung von Codepunkten/Segmenten wird nicht geliefert.
Die ganze Sache funktioniert mit beigelegten ActiveX Elementen. Ich bekomme in JEDEM Beispielprogramm den selben Fehler in der TEBoard Configuration.

jetzt habe ich folgenden Code:
Delphi-Quellcode:
uses Windows, ActiveX, Classes, Graphics, OleServer, OleCtrls, StdVCL;
//[..]
type

// *********************************************************************//
// Forward declaration of types defined in TypeLibrary
// *********************************************************************//
  _IECameraEvents = dispinterface;
  IEventMonitorSink = interface;
  IEventMonitor = interface;
  IECamera = interface;
  IECameraDisp = dispinterface;
  IEConfiguration = interface;
  IEConfigurationDisp = dispinterface;
  IEBoard = interface;
  IEBoardDisp = dispinterface;
//[..]
TEBoard = class(TOleControl)
  private
    FIntf: IEBoard;
    function GetControlInterface: IEBoard;
  protected
    procedure CreateControl;
    procedure InitControlData; override;
  public
    procedure SetParamNm(const ParamName: WideString; Value: OleVariant);
    function GetParamNm(const ParamName: WideString): OleVariant;
    property ControlInterface: IEBoard read GetControlInterface;
    property DefaultInterface: IEBoard read GetControlInterface;
    property DebugMode: TOleEnum index 3 write SetTOleEnumProp;
    property MultiCamHandle: Integer index 4 read GetIntegerProp;
    property DriverIndex: Integer index 5 write SetIntegerProp;
  published
  end;
//[..]
procedure TEBoard.SetParamNm(const ParamName: WideString; Value: OleVariant);
begin
  DefaultInterface.SetParamNm(ParamName, Value); //<-------- Fehlerzeile
end;
Die Prozedur bezieht sich dabei auf diese Konfigurationen:
Delphi-Quellcode:
unit MultiCam_First_AX_Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, eVision_TLB, OleCtrls, MULTICAMLib_TLB;

type
  TMultiCam_First_AX = class(TForm)
    Grab: TButton;
    Live: TButton;
    Stop: TButton;
    EBW8Image1: TEBW8Image;
    ECamera1: TECamera;
    EBoard1: TEBoard;
    procedure FormCreate(Sender: TObject);
    procedure GrabClick(Sender: TObject);
    procedure ECamera1Signal(Sender: TObject; SignalType: TOleEnum;
      const Obj: IDispatch; Last: WordBool);
    procedure LiveClick(Sender: TObject);
    procedure StopClick(Sender: TObject);
//[..]
procedure TMultiCam_First_AX.FormCreate(Sender: TObject);
var
        Width: integer;
        Heigth: integer;
        DriverIndex: integer;
        var1: Variant;
        var2: Variant;
        str1: String;
        str2: String;
begin
        // 1. Use DriverIndex to select the Board to use:
        DriverIndex := 0;

        // 2. For Alpha, Gamma, change the topology corresponding
        // to the CamFile used:
        EBoard1.DriverIndex := DriverIndex;
        EBoard1.SetParamNm('BoardTopology','DUO');
//Oder MONO (unterscheidet sich ob eine Medium Config Cam an beide Ports oder je eine Base Config Cam an je einen Port gekabelt wird)

        // 3. Change your camera files here:
        ECamera1.Mpf := 'ALPHA_Y';
        ECamera1.SetParamNm('CamFile','Std-BW-CCIR_I50SA');

   // 4. Put the channel on the board:
   ECamera1.SetParamNm('DriverIndex',DriverIndex);

   // 5. Configure the receiving EImage:
        // (set image size corresponding to camera capture)
   var1 := ECamera1.GetParamNm('ImageSizeX');
   var2 := ECamera1.GetParamNm('ImageSizeY');
        str1:= var1; str2:= var2;
   Width := StrToInt(str1);
   Heigth := StrToInt(str2);
   EBW8Image1.SetSize(Width,Heigth);

   //6. Link the Camera with the EImage:
   ECamera1.SetCluster(EBW8Image1.Obj);

   //7. Enable the signals:
   ECamera1.SetParamNm('SignalEnable:2','ON');
end;
an der markierten Stelle tritt folgender Fehler auf (in jedem Punkt der TEBoard Ansteuerung):

Im Projekt MultiCam_First-AX-Projekt1.exe ist eine Exception der Klasse OEleException aufgetreten.
Meldung: 'SetParamNm: Invalid Argument'. Prozeß wurde angehalten. Mit einzelne Anweisung oder Start fortsetzen.


Sämtliche DP und google Recherchen waren erfolglos
Hat jemand ne idee dazu?

Ahso, falls was fehlt schicke ich es nach!

Kanns manchmal daran liegen, dass einfach auf die Board Topology ein falscher Wert übergeben wird?
Das wäre das einzige was mir einfällt
Wenn ich was net kriege, was ich haben will, dann mach ich den Traubenklaufuchs ...
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: Kameraansteuerung - EOleException

  Alt 15. Jan 2007, 18:20
Hast du schon mal versucht, die Typelibrary selbst neu einzulesen ?
Durchaus möglich, dass der Demo-Sourcecode noch eine Übersetzung einer älteren Version ist.
Die Active-X Library wurde weiterentwickelt, ohne dass die Demos entsprechend angepasst wurden. Das kommt immer wieder mal vor.
Andreas
  Mit Zitat antworten Zitat
Sascha.E

Registriert seit: 9. Nov 2006
Ort: Bremen
11 Beiträge
 
#3

Re: Kameraansteuerung - EOleException

  Alt 16. Jan 2007, 09:14
Hi

Das hatte ich auch schon versucht, ja das problem war einfach, dass euresys das Programm in einer Art WingDings Parametrisierung ausgeliefert hat. Sprich, die Deklarationen und Werte sind fiktiv und völlig wirr. Nach dem Lesen von ca 290 Seiten PDF Dokumentation habe ich endlich eine Übersicht gefunden, die mit der Suchfunktion nicht aufzufinden war, in der die Board Topology angegeben ist. Nun häng ich am nächsten Punkt, dem CamFile, aber das wird eine ähnliche Deklarationssache sein Ich danke auf jeden Fall für die Bemühungen. Und falls jemand mal an einem ähnlichen Projekt mit Euresys und SVS-Vistek zu knabbern hat, beziehungsweise mit Euresys Produkten im Allgemeinen, einfach ne PM schreiben, ich helfe dann so gut ich kann

In diesem Sinne,
auf frohes Schaffen leute!

Gruß, Sascha

BTW: falls sich jemand fragt: "Was zum Teufel bearbeitet dieser Spinner für Projekte, PCI-Messkarten (Wo ich noch immer keine Lösung hab ) und 11Mpx Kameras ich arbeite an der Uni Bremen in einem Sonderforschungsbereich für messtechnik und sensorik

auf bald

EDIT: hab oben mal den Parameter so eingefügt, wie er mit dem Grablink Expert 2 Compiliert werden kann wenn das Ding endlich komplett läuft mit der Vistek Cam, dann poste ich das Programm mal, damit zu mindest auf diese Hardware Konfig irgendwer Zurückgreifen kann
Wenn ich was net kriege, was ich haben will, dann mach ich den Traubenklaufuchs ...
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#4

Re: Kameraansteuerung - EOleException

  Alt 16. Jan 2007, 10:38
Zitat von shmia:
Durchaus möglich, dass der Demo-Sourcecode noch eine Übersetzung einer älteren Version ist.
Die Active-X Library wurde weiterentwickelt, ohne dass die Demos entsprechend angepasst wurden. Das kommt immer wieder mal vor.
Da ist Matrox mit seiner MIL besonders schlimm. es werden die gleichen GUIDs verwendet, aber das API veraendert sich.
  Mit Zitat antworten Zitat
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Kameraansteuerung - EOleException

  Alt 16. Jan 2007, 13:09
Zitat von Robert Marquardt:
Da ist Matrox mit seiner MIL besonders schlimm. es werden die gleichen GUIDs verwendet, aber das API veraendert sich.
Damit ist Matrox leider überhaupt nicht alleine *sigh*
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat
Sascha.E

Registriert seit: 9. Nov 2006
Ort: Bremen
11 Beiträge
 
#6

Re: Kameraansteuerung - EOleException

  Alt 16. Jan 2007, 15:07
bin mit den Codedeklarationen heute noch ein gutes stück voran gekommen, ist allerdings etwas mühsam ...
weiter gehts erst nächsten donnerstag, denn solang ist urlaub klausurvorbereitung
Sobald es was neues gibt und das programm im eigentlich sinne stabil rennt, hier mehr bis dahin
Wenn ich was net kriege, was ich haben will, dann mach ich den Traubenklaufuchs ...
  Mit Zitat antworten Zitat
Sascha.E

Registriert seit: 9. Nov 2006
Ort: Bremen
11 Beiträge
 
#7

Re: Kameraansteuerung - EOleException

  Alt 7. Mär 2007, 11:14
Also ... ich habe nach langwieriger Forschungsarbeit und vielen vielen Test mit meiner komischen Kamera einen weg gefunden, wie alles korrekt angesteuert wird und ich sogar ein Livebild mit der Kamera erzeugen kann. Nur häng ich jetzt wieder an der nächsten Treppenstufe fest:

Das livebild liegt in einem Active X - Element, was vom Hersteller zum implementieren mitgeliefert wird. Ich versuche seit dem, eine Snapshot Funktion zu schreiben. Das bedeutet, ich will quasi einen screenshot des bildfensters. Dabei hacke ich aber irgendwie, da ich keine Möglichkeit finde, das Bild einzeln als Datei mit neuem Namen abzulegen. Hat da jemand vielleicht nen neuen Tipp für mich? Da sollte es doch hoffentlich jemanden geben der sich damit auskennt? (und ja, gelbe seiten hab ich schon versucht ^^ die antwort zählt also net *g* )

Danke schonmal im Voraus!

PS: falls euch was vom quellcode fehlt oder ähnliches: melden, dann stell ich das so schnell es geht hier rein
Wenn ich was net kriege, was ich haben will, dann mach ich den Traubenklaufuchs ...
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz