|
F: Und was nutze ich in einer NET Entwicklungsumgebung ?
A: Beim Einsatz unter dem Microsoft .NET Framework (z.B. C#, VB Net) stehen sowohl das DLL API als auch das ActiveX API zur Verfügung. Beide API sind kompatibel zu den bekannten und glänzen mit .NET spezifischen Erweiterungen. Über .NET Klassen stehen die bekannten Funktionen im ActiveX API und im DLL API zur Verfügung. Das ActiveX API kann dabei fast komplett auch über die SuperCom .NET Klassen genutzt werden ohne das SuperCom ActiveX Modul einzubinden.
Das SuperCom ActiveX Steuerelement kann, natürlich, auch weiterhin als ActiveX unter .NET verwendet werden.
Die SuperCom .NET Class Library ist in jedem DLL API und DUAL API komplett in C# Quelltext enthalten und kann mit NET Compilern wie C#, VB Net, C++ usw. benutzt werden. Die SuperCom .NET Class Library ist enthalten in 32bit und 64bit SuperCom Pakete.
Die folgenden Beispiele nutzen die ActiveX API ähnliche Klasse "TSCom" aus der SuperCom .NET Class Library.
Eine serielle Modem-Verbindung aufbauen und Dateien übertragen
C# Beispiel
using ADONTEC.Comm; // Quelltext in SComClass.cs
: // VB Net referenziert die Klassen DLL
:
public class MYSCOM : TSCom
{
public MYSCOM(int CommId, Form frm)
: base(CommId, frm) // das Window Handle an TSCom
{
}
protected override void OnComm(OnCommEventArgs e)
{
int SComEvent = (int)e.EventCode;
if (SuperCom.BitsSet(SComEvent, SuperCom.EV_RXCHAR))
if (SuperCom.BitsSet(SComEvent, SuperCom.EV_TXEMPTY))
if (SuperCom.BitsSet(SComEvent, SuperCom.EV_TRIGGER))
if (SuperCom.BitsSet(SComEvent, SuperCom.EV_RING))
:
:
e.RetCode = 0;
}
protected override void OnConnect(OnConnectEventArgs e)
{
switch (e.Action) // Ereignis Meldung
{
case SuperCom.acCONNECT_INFO:
case SuperCom.acCONNECT_DIALING:
case SuperCom.acCONNECT_OK:
:
:
}
}
protected override void OnFile(OnFileEventArgs e)
{
switch (e.Action)
{
case SuperCom.acFILENAME:
case SuperCom.acFILEDATA:
case SuperCom.acSYN:
case SuperCom.acRXING:
case SuperCom.acTXING:
case SuperCom.acRXFIN:
case SuperCom.acTXFIN:
:
}
}
protected override void OnDataPacket(OnDataPacketEventArgs e)
{
switch (e.Action)
{
case OnDataPacketEventCode.SCOMM_DATAPACKET_OK:
case OnDataPacketEventCode.SCOMM_DATAPACKET_NOK:
:
}
}
} //MYSCOM
SCom = new MYSCOM(Com, frm1);
// Parameter..
SCom.ComType = ComType.COMTYPE_RS232; // serial, TAPI, TCP/IP, ISDN*
SCom.Settings = "115200,N,8,1";
// or
SCom.BaudRate = 115200;
SCom.DataBits = 8;
SCom.StopBits = StopBits.One;
SCom.Parity = Parity.None;
SCom.Handshaking = Handshaking.SCOMM_HANDSHAKE_CTS;
SCom.PortOpen = true; // Bereit für Aktionen...
:
// ein paar Trigger um Zeichenketten zu Überwachen ?
SCom.Trigger = SuperCom.StringToByteArray("Username");
SCom.TriggerAction = TriggerAction.SCOMM_TRIGGER_ADD;
SCom.Trigger = SuperCom.StringToByteArray("Password");
SCom.TriggerAction = TriggerAction.SCOMM_TRIGGER_ADD;
// Verbindung zu Modem, Server etc. aufbauen
SCom.ConnectAddress="1234 5678 99"; // "www.weburl.com:9000";
SCom.Connect = true;
:
// Datei übertragen
SCom.FileName = "sales.doc";
SCom.Protocol = Protocol.PROTOCOL_ZMODEM;
SCom.FileTransmit = true;
:
* ein Punkt für die Auswahl des Verbindungs Typs!
|
Das obige Beispiel gibt einen kurzen Überblick wie die ActiveX API ähnliche Klasse "TSCom" aus der SuperCom .NET Class Library benutzt werden kann. Die andere Klasse "SuperCom" (siehe Beispiel) ist eine fast eins zu eins Kopie des bekannten SuperCom API.
Jetzt haben wir das obige fertige Beispiel, was wird benötigt um auf TCP/IP umzuschalten ?
Umschalten von Seriell zu TCP/IP
C# Sample
Im obigen Beispiel hatten wir serielle Kommunikation. Jetzt sollten Dateien zu
einem TCP/IP Server übertragen werden. Wir können dafür eine neue Klasse erzeugen
oder die bestehende weiternutzen.
:
SCom.PortOpen = false; // diese beenden...
SCom.CommPort = ClientCom; // comm index bei Bedarf ändern..
SCom.ComType = ComType.COMTYPE_WINSOCK_CLIENT; // serial, TAPI, TCP/IP, ISDN*
SCom.PortOpen = true; // Bereit...
:
// Verbindung zum TCP/IP server aufbauen,..
SCom.ConnectAddress="www.weburl.com:9000";
SCom.Connect = true;
:
// Datei senden
SCom.FileName = "sales.doc";
SCom.Protocol = Protocol.PROTOCOL_ZMODEM;
SCom.FileTransmit = true;
:
* ein Punkt für die Auswahl des Verbindungs Typs!
|
Es ist offensichtlich. Das SuperCom API erhöht nicht nur die Produktivität sondern erleichert die Wiederverwendbarkeit der Programme (z.B. Umzug von SuperCom ActiveX, MSComm oder PDQComm zu SuperCom für NET) und meistens ohne Änderungen.
|