Münzprüfer und Purebasic ?
Münzprüfer und Purebasic ?
Hallo Liebe Pure´ler.
Ich habe mich die letzte Zeit sehr Intensiv mit PB ausseinander gesetzt und es gefällt mir sehr gut.
Es ist meine erste Sprache die ich lerne.
Ich würde gerne mir ein Internetcafe Interface coden.
Dafür muss ich auf einen Münzprüfer zugreifen.Dieser hat normal Treiber DDL´s und es gibt welche mit einem CCTalk Protokol was wie eine Lib anzusehen ist.Aber kann ich darauf auch auf mit Purebasic zugreifen? Der Prüfer arbeitet über USB.
Wäre nett wenn ich hier ein paar anregungen bekommen würde
Danke
Ich habe mich die letzte Zeit sehr Intensiv mit PB ausseinander gesetzt und es gefällt mir sehr gut.
Es ist meine erste Sprache die ich lerne.
Ich würde gerne mir ein Internetcafe Interface coden.
Dafür muss ich auf einen Münzprüfer zugreifen.Dieser hat normal Treiber DDL´s und es gibt welche mit einem CCTalk Protokol was wie eine Lib anzusehen ist.Aber kann ich darauf auch auf mit Purebasic zugreifen? Der Prüfer arbeitet über USB.
Wäre nett wenn ich hier ein paar anregungen bekommen würde
Danke
Re: Münzprüfer und Purebasic ?
PureBasic alleine wird die wohl nicht steuern können.
Aber du kannst mit PureBasic auf die Funktionen der DLL/Lib zugreifen und diese Ausführen lassen.
Dafür musst du natürlich wissen, welche Parameter erwartet werden.
Aber du kannst mit PureBasic auf die Funktionen der DLL/Lib zugreifen und diese Ausführen lassen.
Dafür musst du natürlich wissen, welche Parameter erwartet werden.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Münzprüfer und Purebasic ?
Wenn es eine C-API Schnittstelle gibt, ist es kein Problem. Bei einer C++ (COM-Schnittstelle) wird es dann
schon aufwendiger und könnte Probleme geben.
Aber ohne vorliegende Doku (Header-Dateien usw.) läßt sich nicht viel sagen.
schon aufwendiger und könnte Probleme geben.
Aber ohne vorliegende Doku (Header-Dateien usw.) läßt sich nicht viel sagen.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Re: Münzprüfer und Purebasic ?
http://www.aus.at/support/cctalk.htm
Hier bei der Dokumentation 2 sind Header Daten und Co vorhanden.
Es gibt sau wenig Infos im Netz über CCtalk.Noch nichtmal Beispiel Sources in anderen Sprachen.
Hier bei der Dokumentation 2 sind Header Daten und Co vorhanden.
Es gibt sau wenig Infos im Netz über CCtalk.Noch nichtmal Beispiel Sources in anderen Sprachen.
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Münzprüfer und Purebasic ?
Wenn Du den Münzprüfer an die RS232 des PC angeschlossen bekommst, das Protokol nach PB übersetzt hast,
sollte es gehen. Dafür solltest Du über gute Englisch-Kenntnisse verfügen, viel Erfahrung in Programmierung,
Datentypen und PB haben.
Viel Glück
sollte es gehen. Dafür solltest Du über gute Englisch-Kenntnisse verfügen, viel Erfahrung in Programmierung,
Datentypen und PB haben.
Viel Glück
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Re: Münzprüfer und Purebasic ?
Okey!
Megaviel Erfahrung habe ich in PB noch nicht.
Und überhauptweiss ich auch nicht wie ich das übersetzen sol,also wird e daran wohl scheitern
Megaviel Erfahrung habe ich in PB noch nicht.
Und überhauptweiss ich auch nicht wie ich das übersetzen sol,also wird e daran wohl scheitern
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Münzprüfer und Purebasic ?
Ohne Programmiererfahrung sieht es eher schlecht aus, da würde ich erstmal mit anderen Dingen Programmier-
Erfahrung sammeln und die Idee später wieder aufgreifen. Ich hab mir ja nicht alles angesehen, aber die
Steuerung über die RS232 sollte mit PB problemlos funktionieren. Aber dafür muss dann das Protokoll auch
exakt eingehalten werden, sonst versteht Dich der Münzprüfer nicht. Alles mit Speicher, Strukturen usw.
solltest Du beherrschen und die richtigen Infos in der Doku finden. Das ist nichts von heute auf morgen.
Erfahrung sammeln und die Idee später wieder aufgreifen. Ich hab mir ja nicht alles angesehen, aber die
Steuerung über die RS232 sollte mit PB problemlos funktionieren. Aber dafür muss dann das Protokoll auch
exakt eingehalten werden, sonst versteht Dich der Münzprüfer nicht. Alles mit Speicher, Strukturen usw.
solltest Du beherrschen und die richtigen Infos in der Doku finden. Das ist nichts von heute auf morgen.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Re: Münzprüfer und Purebasic ?
Ja das es nichts von heute auf morgen ist,war mir soweit schon bewusst.
Ich lass es dann erstmal langsam angehen.
Aber warum RS232 ? Wird USB PBmäßig nicht unterstützt? Oder gibts dafür andere Hintergründe?
Ich lass es dann erstmal langsam angehen.
Aber warum RS232 ? Wird USB PBmäßig nicht unterstützt? Oder gibts dafür andere Hintergründe?
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Münzprüfer und Purebasic ?
USB wird per Treiber genutzt, dafür gibt es keine spezielle Lib, da jedes Gerät andere Treiber benötigt,
lediglich Mäuse und Tastaturen wären nutzbar.
Dein Münzprüfer ist doch für die RS232 ausgelegt, bzw. Centronics wird wohl auch noch unterstützt.
RS232 über USB gibts da auch noch.
lediglich Mäuse und Tastaturen wären nutzbar.
Dein Münzprüfer ist doch für die RS232 ausgelegt, bzw. Centronics wird wohl auch noch unterstützt.
RS232 über USB gibts da auch noch.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
- Falko
- Admin
- Beiträge: 3531
- Registriert: 29.08.2004 11:27
- Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit) - Kontaktdaten:
Re: Münzprüfer und Purebasic ?
Dabei hat Thomas alias ts-soft doch ein hübsches Tool
PureDLLHelper veröffentlicht, womit man diese CCDLL.dll, welche dazu installiert
wird, in PB anzupassen. Den Rest müßte man sich aus der englischen Doku herauslesen,
wie diese Funktionen dann gehandhabt werden müssen. Ich habe mal aus Jux mit dem Programm
von ts-soft die DLL für PB ausgelesen. Nur ohne Gerät kann man das nicht ausprobieren.
PureDLLHelper veröffentlicht, womit man diese CCDLL.dll, welche dazu installiert
wird, in PB anzupassen. Den Rest müßte man sich aus der englischen Doku herauslesen,
wie diese Funktionen dann gehandhabt werden müssen. Ich habe mal aus Jux mit dem Programm
von ts-soft die DLL für PB ausgelesen. Nur ohne Gerät kann man das nicht ausprobieren.
Code: Alles auswählen
;==========================================================================
; Generated with PureDLLHelper, Copyright ©2011 by Thomas <ts-soft> Schulz
;==========================================================================
Prototype CCClearsCom(a, b)
Prototype CCGet_Adress(a, b, c)
Prototype CCGet_Adress_Mode(a, b)
Prototype CCGet_Buffer(a, b, c)
Prototype CCGet_BuildCode(a, b)
Prototype CCGet_Channel_Enable(a, b)
Prototype CCGet_CoinId(a, b, c, d)
Prototype CCGet_CommsStatus(a, b, c, d)
Prototype CCGet_DB(a, b, c)
Prototype CCGet_Equipement(a, b, c, d, e)
Prototype CCGet_InputLines(a, b, c, d, e)
Prototype CCGet_Manufacturer(a, b, c)
Prototype CCGet_Manufacturing_Date(a, b, c, d)
Prototype CCGet_Master_Inhibit(a, b)
Prototype CCGet_Modification_Date(a, b)
Prototype CCGet_Opto_Status(a, b)
Prototype CCGet_Polling(a, b, c)
Prototype CCGet_Product(a, b)
Prototype CCGet_Serial_Number(a, b)
Prototype CCGet_Simple_Poll(a, b, c, d)
Prototype CCGet_Status(a, b, c)
Prototype CCGet_cctalk_Version(a, b, c)
Prototype CCModify_Sorter(a, b)
Prototype CCReSet(a, b)
Prototype CCRequest_Base_Year(a, b, c)
Prototype CCRequest_Sorter(a, b, c)
Prototype CCSend_Command(a, b, c)
Prototype CCSet_Adress(a, b)
Prototype CCSet_Channel_Enable(a, b, c, d)
Prototype CCSet_Rand_Adress(a, b)
Prototype CCSoftVersion(a, b, c)
Prototype CCTestOutput(a)
Prototype CCTestSolenoid(a, b)
Prototype CCset_CoinId(a, b, c)
Global CCClearsCom.CCClearsCom
Global CCGet_Adress.CCGet_Adress
Global CCGet_Adress_Mode.CCGet_Adress_Mode
Global CCGet_Buffer.CCGet_Buffer
Global CCGet_BuildCode.CCGet_BuildCode
Global CCGet_Channel_Enable.CCGet_Channel_Enable
Global CCGet_CoinId.CCGet_CoinId
Global CCGet_CommsStatus.CCGet_CommsStatus
Global CCGet_DB.CCGet_DB
Global CCGet_Equipement.CCGet_Equipement
Global CCGet_InputLines.CCGet_InputLines
Global CCGet_Manufacturer.CCGet_Manufacturer
Global CCGet_Manufacturing_Date.CCGet_Manufacturing_Date
Global CCGet_Master_Inhibit.CCGet_Master_Inhibit
Global CCGet_Modification_Date.CCGet_Modification_Date
Global CCGet_Opto_Status.CCGet_Opto_Status
Global CCGet_Polling.CCGet_Polling
Global CCGet_Product.CCGet_Product
Global CCGet_Serial_Number.CCGet_Serial_Number
Global CCGet_Simple_Poll.CCGet_Simple_Poll
Global CCGet_Status.CCGet_Status
Global CCGet_cctalk_Version.CCGet_cctalk_Version
Global CCModify_Sorter.CCModify_Sorter
Global CCReSet.CCReSet
Global CCRequest_Base_Year.CCRequest_Base_Year
Global CCRequest_Sorter.CCRequest_Sorter
Global CCSend_Command.CCSend_Command
Global CCSet_Adress.CCSet_Adress
Global CCSet_Channel_Enable.CCSet_Channel_Enable
Global CCSet_Rand_Adress.CCSet_Rand_Adress
Global CCSoftVersion.CCSoftVersion
Global CCTestOutput.CCTestOutput
Global CCTestSolenoid.CCTestSolenoid
Global CCset_CoinId.CCset_CoinId
Procedure.i CCDll_LoadDLL()
Protected hDLL.i
hDLL = OpenLibrary(#PB_Any, "CCDll.dll")
If hDLL <> 0
CCClearsCom = GetFunction(hDLL, "CCClearsCom")
CCGet_Adress = GetFunction(hDLL, "CCGet_Adress")
CCGet_Adress_Mode = GetFunction(hDLL, "CCGet_Adress_Mode")
CCGet_Buffer = GetFunction(hDLL, "CCGet_Buffer")
CCGet_BuildCode = GetFunction(hDLL, "CCGet_BuildCode")
CCGet_Channel_Enable = GetFunction(hDLL, "CCGet_Channel_Enable")
CCGet_CoinId = GetFunction(hDLL, "CCGet_CoinId")
CCGet_CommsStatus = GetFunction(hDLL, "CCGet_CommsStatus")
CCGet_DB = GetFunction(hDLL, "CCGet_DB")
CCGet_Equipement = GetFunction(hDLL, "CCGet_Equipement")
CCGet_InputLines = GetFunction(hDLL, "CCGet_InputLines")
CCGet_Manufacturer = GetFunction(hDLL, "CCGet_Manufacturer")
CCGet_Manufacturing_Date = GetFunction(hDLL, "CCGet_Manufacturing_Date")
CCGet_Master_Inhibit = GetFunction(hDLL, "CCGet_Master_Inhibit")
CCGet_Modification_Date = GetFunction(hDLL, "CCGet_Modification_Date")
CCGet_Opto_Status = GetFunction(hDLL, "CCGet_Opto_Status")
CCGet_Polling = GetFunction(hDLL, "CCGet_Polling")
CCGet_Product = GetFunction(hDLL, "CCGet_Product")
CCGet_Serial_Number = GetFunction(hDLL, "CCGet_Serial_Number")
CCGet_Simple_Poll = GetFunction(hDLL, "CCGet_Simple_Poll")
CCGet_Status = GetFunction(hDLL, "CCGet_Status")
CCGet_cctalk_Version = GetFunction(hDLL, "CCGet_cctalk_Version")
CCModify_Sorter = GetFunction(hDLL, "CCModify_Sorter")
CCReSet = GetFunction(hDLL, "CCReSet")
CCRequest_Base_Year = GetFunction(hDLL, "CCRequest_Base_Year")
CCRequest_Sorter = GetFunction(hDLL, "CCRequest_Sorter")
CCSend_Command = GetFunction(hDLL, "CCSend_Command")
CCSet_Adress = GetFunction(hDLL, "CCSet_Adress")
CCSet_Channel_Enable = GetFunction(hDLL, "CCSet_Channel_Enable")
CCSet_Rand_Adress = GetFunction(hDLL, "CCSet_Rand_Adress")
CCSoftVersion = GetFunction(hDLL, "CCSoftVersion")
CCTestOutput = GetFunction(hDLL, "CCTestOutput")
CCTestSolenoid = GetFunction(hDLL, "CCTestSolenoid")
CCset_CoinId = GetFunction(hDLL, "CCset_CoinId")
ProcedureReturn hDLL
EndIf
ProcedureReturn #False
EndProcedure