C# Ecke Alt

ftComputing : Programme für die fischertechnik-Interfaces und -konstruktionskästen
  
ftComputing.de
Home
Back
Sitemap
Index
Links
Impressum
Mail
 

Allgemeines

C# ist eine Sprache der .NET Framework Sprachfamilie und kommt mit einer eigenen umfangreichen Klassenbibliothek und dem .NET Framework Laufzeitsystem. Entwicklungsumgebung ist Visual Studio.NET. C# und alternativ die freie Entwicklungsumgebung SharpDevelop. C# vereint die wesentlichen Element von VC++ mit der Einfachheit von Visual Basic.

Die C# Ecke soll aufzeigen wo innerhalb der Site C#spezifische Themen zu finden sind, aber auch die Programmierung der fischertechnik Interfaces mit C# beschreiben.

Literatur
Eric Gunnarson : C#, Galileo, zweite Auflage, ISBN 3-89842-183-X (deutsch) als fundierte Einführung,
Nitty Gritty C#, Addison-Wesley (deutsch). Handfeste und preiswerte Einführung/Übersicht für  Programmierer mit Erfahrung.
O'Reilly : Programming C# 2. Auflage, ISBN 0-596-00309-9, als Übersicht und
O'Reilly : C# in a Nutshell, 0-596-00181-9, als Referenz neben der recht ansprechenden Hilfe des Visual Studio.NET

Kühnel : Visual C# - Das umfassende Handbuch - Spracheinführung, OOP und Windows-Programmierung. Sehr verständlich : Graphik / Drucken. Galileo Computing. ISBN 3-89842-9 2.Auflage.

Frank Eller, Michael Kofler : Visual C# - Grundlagen, Programmiertechniken, Windows-Programmierung. Addison-Wesley Verlag ISBN 3-8273-2073-9 und eine Ausgabe speziell für C# 2005
Doberenz / Kowalski : Visual C#.NET - Grundlagen und Profiwissen. Hanser Verlag. ISBN 3.446.22021-6.

In den drei letztgenannten Büchern wird ausführlich auf die Programmierung mit Windows.Forms eingegangen.

Programmierung

Es wird unterschieden zwischen :

  • Interfaces der ROBO Serie und dem Intelligent Interface : FishFace40 (csFish40Setup.EXE einschl. Handbuch), Handbuch separat FishFa40CS.PDF
  • Intelligent Interface und Universal Interface(an LPT) : FishFa30 (umFish30.ZIP und csmodel.zip mit Handbuch und Assembly). Handbuch separat : FishFa30CS.PDF
  • FishFace40 wurde mit der C# Final Version (v1.0) erstellt. Eine Konvertierung in .NET Version 1.1, 1.2 bzw. 2.0 ist problemlos möglich. UND :
  • Es gibt nun auch eine FishFace40-Ausgabe für .NET 2.0 und C# 2005 für die ROBO's und das Intelligent Interface.

Basis für die Programmierung ist die in VC++ 6.0 erstellte DLL umFish30.DLL  bzw. umFish40.DLL. In umFish40.DLL ist noch die FtLib von fischertechnik integriert. Die erforderlichen USB-Treiber und Firmware Updates der ROBO Interfaces sind von www.fischertechnik.de (Software) zu beziehen. Die USB-Treiber Installation erfolgt automatisch, das Firmware Download über ROBO Pro.

Der Funktionsumfang von FishFa30.DLL ist weitgehend aufwärtskompatibel zu FishFace40.DLL. Änderungen gibt es beim Konstruktor und der Methode OpenInterface. Die enum Nr ist in die enums Inp und Out gesplittet worden. Bei FishFace40.DLL (und umFish40.DLL) sind Methoden für den IR-Sender (GetIRKeys ...) und die Analog-Eingänge A1 / A2 / AV (GetVoltage) hinzugekommen. Vornehmlich die enums wurden den gestiegenen Ausbaumöglichkeiten der Hardware angepaßt. Der Betrieb eines ROBO Interfaces über den RF Datalink ist transpararent - d.h. das Programm tut's aber merkt's nicht. Mit FishFace2005.DLL kann man dann auch noch Nachrichten zwischen C#-Programm auf dem PC und einem ROBO Interface austauschen.

  • Programmierung auf Basis der native Schnittstelle von umFish30.DLL (cs-Variante) bzw. umFish40.DLL. Die erforderlichen Deklarationen sind in der Source FishFa30.CS / FishFace40.CS (ganz am Anfang) zu finden, sie können 1:1 in eigene Klassen übernommen werden. Die Programmierung auf Grundlage der native Schnittstelle ist sinnvoll, wenn die Absicht besteht, eigene Zugriffssoftware zu entwickeln.
  • Die Klasse FishFace als Bestandteil der Assembly FishFa30.DLL / FishFace40.DLL kapselt die Funktionen von umFish30/40.DLL in einer C#gerechten Weise und bietet mit den Wait-Funktionen eine Abrundung insbesondere für die (asynchronen) SetMotor(s) Methoden.
    Für die Mehrzahl der Methoden gibt es eine Reihe von Überladungen, die eine Übergabe der parameter sowohl als int-Wert (-> eigene Konstanten, tabellarische Werte) wie auch enums erlauben. Meist werden so auch default Parameter realisiert.
  • Klasse FishRobot zu Programmierung von Robots a la "Industry Robots" : Motor mit zugeordnetem Impulsrad/-taster und einem Endtaster.
  • Klasse FishStep mit Methoden zur Programmierung einzelner Schrittmotoren und von Schrittmotorpaaren im XY-Verbund (Plotter).

InterfacePanel / Installation

Das Interface Panel ist ein separates Tool zur Anzeige und Steuerung eines Interfaces. Es kann besonders zum Test des Modellaufbaus und zum "GeradeRücken" eines Modells eingesetzt werden. Das Interface Panel sollte als erstes Programm zur Kontrolle der korrekten Installation von Interface und Software eingesetzt werden. Es ist in zwei Versionen verfügbar umFishDP30.EXE für das Intelligent / Universal Interface (in umFish30.ZIP) und als umFishDP40.EXE für die Interfaces der ROBO Serie und das Intelligent Interface (csFish40Setup.EXE).

 

 

Handbuch

Zur Einführung in die Programmierung der fischertechnik Interfaces mit C# unter Nutzung der Assembly FishFa30.DLL bzw. FishFace40.DLL gibt es ein ausführliches Handbuch mit den Abschnitten Einführung - Beispiel Riesenrad - Referenz - Tips & Tricks. csModel.ZIP (FishFa30) und csFish40Setup.EXE (FishFace40).

 Beispiele

Das Handbuch enthält neben dem obligatorischen HelloFish ein durchgehendes Beispiel zum Betrieb eines Riesenrads (wahlweise mit einem kleinen Simulationsmodell) Hinzu kommen die unten aufgeführten Modellprogramme. Alles zusammen in : csModel.ZIP.

Experimente

Wer es gern noch OO-iger hätte : Jeder Eingang / Ausgang ein Objekt (in Variante für die angeschlossene Hardware), kombinierte Ein- und Ausgänge als Komplexe Objekte, Threads in Grenzen und jede Menge Ereignisse - es wäre ein Traum für jeden Java-Programmierer - sollte mal bei OO-Interface nachsehen.

ftTeachCS

TeachIn für die fischertechnik Industry Robots Ein komplexe TeachIn-Programm für die Industry Robots.

Modelle

Die hier angeführten Modelle sind z.Zt. noch meist mit FishFa30.DLL für das Intelligent bzw. das Universal Interface erstellt (Ein Betrieb des ROBO Interfaces über die COM-Schnittstelle ist auch mit FishFa30 möglich). Eine Umstellung auf FishFace40.DLL macht aber weiter keine Probleme s.o. (wurde bei der Umstellung der Handbuch-Beispiele ausgiebig probiert).

FußgängerampelAmpelThread : Betrieb einer Fußgängerampel an einem Intelligent Interface mit mit Extensionmodul. Die Auto- sowie die Fußgängerampel laufen in eigenen Threads.

Stanze : Betrieb des Modells Stanzmaschine mit Transportband 51 663  

RobStanze :Beschicken der Stanze 51 663 durch einen Industry Robot (Knickarm- oder SäulenRobot). Die Programmteile für den Betrieb von Stanze bzw. Robot laufen in eigenen Threads.

Die Sources der Programme sind in csModel.ZIP enthalten.

Der Turm von Hanoi

Der Turm von HanoiProgramm auf Basis der Klasse HanoiRob. In HanoiRob.ZIP enthalten. Siehe auch die Seite Turm von Hanoi.

Die TaktStrasse

Eine MultiThreading-Lösung auf der Seite TaktStrasse

Testroboter für Taschenrechner

Testroboter zur Lösung von Additionsaufgaben mit dem Taschenrechner (FishFace40)

Raupen über Funk

Ein einfaches Programm zur Steuerung einer Raupe (Power Bulldozer Fahrgestell) wahlweise über Tastatur oder Maus bei Nutzung der der Funkstrecke RF DataLink - ROBO Interface. Interessant ist besonders die Lösung der Bedienerschnittstelle (FishFace40 und ROBO Interface)

Details / Hinweise

  • Anmerkungen zu den Thread-Programmen. Siehe auch die Dokumentation von TaktStrasse.
Stand : 18.08.2010