Hi,
ich habe ein Problem und zwar soll ich ein Programm entwickeln,
welches ermöglicht 4 Kameras jeweils ein Bild schießen zu lassen, wenn ein Auslöser aktiviert wird.
Das mit dem Auslöser könnte man erst einmal außen vor lassen, da wäre ich froh, wenn das überhaupt über einen Button geschieht.
Die 4 Kameras sind an eine Netzwerkkarte mit 4 Anschlüssen angeschlossen.
Es handelt sich dabei um das Modell mvBlueCougar-S121G von Matrix Vision.
Das einzige was ich habe sind Beispiele in C und C++, die ich aber nicht wirklich auf C# umgemünzt bekomme.
Ich programmiere auf einem Rechner mit Windows XP und Visual C# 2010 Express.
Hat einer mit sowas schon Erfahrung gemacht oder zumindest ein paar Ideen und Tipps für mich.
Ich danke schonmal, mfg Kräuter.
Hallo Kraeuter,
bei dem SDK von MatrixVision sind auch .Net Assemblys dabei die du Nutzung kannst, zudem ist die Doku dort auch mit in C#.
Gruß
Kaji
Hi,
das SDK hab ich jetz installiert und hab dort endlich auch nen Manual für C# gefunden.
Wenn ich jetzt aber bei Visual C# "using mvIMPACT_NET" schreiben will, bietet er mir das noch nicht an, was muss ich dafür machen?
Hab bis jetzt in C# immer nur mit dem gearbeitet, was mir gegeben war.
Muss auch dazu sagen, ich bin zur Zeit noch in der Ausbildung und in der Berufsschule haben wir bis jetz grad mal 2 Stunden oder so WindowsForms gehabt. Aber das soll nich das Problem sein, bin ja lernfähig.
Gruß Kraeuter
Hallo Kraeuter,
du musst erst die Assembly zu deinem Projekt hinzufügen. Also bei den Verweisen hinzufügen und dann kannst du es als Using hinzufügen.
Gruß
Kaji
Kannste mir genau erklären, was ich kopieren muss?
Würde jetzt deiner Beschreibung nach, die ganzen Samples von C# aus dem SDK-Ordner in den Projekt-Ordner von Visual Studio 2010 packen.
Denke aber nicht, dass das richtig wäre oder?
Gruß
Kräuter
Nehmen wir an du willst den verweis BLAH hinzufügen. Dann gehst du in deinem Projekt(IN VISUAL STUDIO[NICHT DER ORDNER!]) Auf Verweise. Sagtst rechtsklick add und dann suchste dir die BLAH.dll oder so raus. Dann nurnoch in der zB Form1.cs
using BLAH;
dann passt das .
Hab grad aber kein VS hier ^^
Name: Scarecraft
Language:C#
learning since:winter 2007
IDE: Visual Studio 2005/08 Professional Editon
Skill:Medium
qualifications: MCP - Microsoft Certified Professional
Homepage : FX RPG Maker
danke, weis ich auch schonmal wie das geht
ich hab jetz nur das problem, dass in den ganzen beispielen das hier verwendet wird:
using mvIMPACT_NET;
using mvIMPACT_NET.acquire;
das find ich aber nirgends
Du kannst dir in Visual Studio die jeweiligen Klassen in einer Library ansehen.
Andere Lösung: Alle Assemblies in den Verweisen hinzufügen, Programmcode schreiben und später die using automatisch (Rechtsklick, using ...) hinzufügen.
Danke ich glaub ich habs durch dich hinbekommen, auch wenn du es vlt nicht auf den weg gemeint hast
Ich hab einfach so nen Beispiel mit Visual C# 2010 geöffnet und konnte mir dann bei Verweise anschaun, wo der herkommt, den hab ich dann in meinem Projekt hinzugefügt.
Das funtz schon mal.
Jetz hab ich nen Beispiel mal so angewandelt, dass es mir einfach nur die verfügbaren Anschlüsse der Netzwerkkarte zeigt.
Muss den ganzen Kram ja erstmal von Grund auf verstehen.
Am Quellcode wird nichts rumgemeckert, aber beim Ausführen kommt dann imer ne Fehlermeldung (Siehe Anhang).
Hier mal mein Quellcode (hoffe ihr könnt helfen):
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using mvIMPACT_NET;
using mvIMPACT_NET.acquire;
namespace KameraProjekt
{
class Program
{
static DeviceManager devMgr;
static Device getDeviceFromUserInput(ref DeviceManager devMgr)
{
uint devCnt = devMgr.deviceCount();
if (devCnt == 0)
{
Console.WriteLine("No MATRIX VISION device found!");
return null;
}
// display every device detected
for (uint i = 0; i < devCnt; i++)
{
Device dev = devMgr.getDevice(i);
if (dev != null)
{
Console.WriteLine("[{0}]: {1}({2}, family: {3})", i, dev.serial.read(), dev.product.read(), dev.family.read());
}
}
// get user input
Console.Write("Please enter the number in front of the listed device followed by [ENTER] to open it: ");
uint devNr = System.Convert.ToByte(Console.ReadLine());
if (devNr >= devCnt)
{
Console.WriteLine("Invalid selection!");
return null;
}
Console.WriteLine("Using device number {0}", devNr);
return devMgr.getDevice(devNr);
}
static void Main(string[] args)
{
devMgr = new DeviceManager();
Device dev = getDeviceFromUserInput(ref devMgr);
if (dev == null)
{
Console.WriteLine("Unable to continue! Press any key to end the program.");
Console.Read();
Environment.Exit(0);
}
}
}
}
Kann das sein, dass mir da das neue Visual C# in die Suppe spuckt?
Sollte zu beheben sein, indem man das Projekt auf .NET 3.5 umstellt. Aber ich entsinne mich dunkel, dass das die Express-Edition nicht beherrscht...
Hallo Kraeuter,
beachte bezüglich deiner Zwischenfragen zur Benutzung von VS, dass wir solch grundlegende Benutzung von VS als bekannt voraussetzen und entsprechend Frage somit nicht erlaubt sind. Siehe [Hinweis] Wie poste ich richtig? Punkt 1.1.1.
herbivore
Werd ich demnächst beachten und zweimal überlegen, ob ich die Frage stelle.
Heute versuch ich erstmal, ob ich das Problem in den Griff bekomm, wenn ich Visual C# 2008 installiere und damit weiterprogrammiere.
Edit: Also mit Visual C# 2008 funktioniert es ohne Probleme.
Werde mich also jetzt daran setzen, nen Bild von der jeweils ausgewählten zu Kamera zu bekommen und danach dann ma nen Bild abzuspeicher, alles Schritt für Schritt.
Hi,
also dafür, dass ich doch noch ein recht großer Anfänger bin, was die C# Programmierung angeht, bin ich doch recht weit gekommen.
Wenn ich mein Programm starte, werden jetzt nacheinander alle 4 Kameras angesprochen und jeweils ein Foto gespeichert.
Nun muss das noch so angepasst werden, dass es durch einen Trigger ausgelöst werden kann und mögliche Fehler abgefangen werden.
Werde euch auf dem laufenden halten und gegebenfalls wieder konsultieren.
Gruß Kräuter