free_electron
Silicon Member
Professioneel ElectronenTemmer - siliconvalleygarage.com - De voltooid verleden tijd van 'halfgeleider' is 'zand' ... US 8,032,693 / US 7,714,746 / US 7,355,303 / US 7,098,557 / US 6,762,632 / EP 1804159 - Real programmers write Hex into ROM
voor de mensen die al wat over de software willen mijmeren:
De software architectuur loopt op 2 threads. een die het transport regelt en de controle over de hardware uitvoert. deze thread shared een database met de GUI thread.
( de ganse hardware controle en data transport engine is uitgevoerd als een class. )
je kan daar vanuit code commandos naar toe sturen , settings opvragen en de data uit lezen. een GUI laat je toe de boel te manipuleren.
zodoende heb je als GUI programmeur geen miserie om met de hardware te praten. omgekeerd ook niet. alle transport gaat via de API van de class.
als er dan in de hardware iets moet veranderen wordt dit opgevangen en is het transparant voor de GUI .
voor de GUI en bedieningswijze modelleer ik mij naar de HP Infiniium user interface en Lecroy Wavemaster user interface. Beetje beste van de twee proberen te combineren. ( menusysteem van lecroy zit leuk in elkaar omdat het afgestemd is op touchscreen. overzichtelijke opbouw en mooie gepaneliseerd , maar tstaat niet in de weg ) en de grafische manipulaties met de muis van HP zijn ook leuk ( inzoomen , traces verslepen , cursormetingen , metingen drag-en drop. je hebt balk met icoontjes. je wilt vpp meten van een signaal : sleep icoontje naar de wave die je wilt meten en bam : daar is het resultaat. dat mis ik bij lecroy wel. je moet daarvoor teveel met de menu's peuteren )
De hardware controle engine is instantieerbaar als een VBscript object en het exporteert alle methods events en properties. zodanig kan je zelf custom dingen maken. zoals bijvoorbeeld meetscriptjes , instellingen preloaden. data processen etc.
Initieel zal het in VB 6.0 geschreven worden . Er worden GEEN externe libraries of DLL's toegestaan. alle sourcecode moet beschikbaar zijn. de enige DLL die aangeroepn wordt is de USB transport DLL van FTDI. De transport code wordt op een zodanige manier geschreven dat ze kan gecompileerd worden naar ofwel een ActiveX object (Stidio 6 familei van programmertalen) of naar een .NET control object(voor de .NET programmeertalen). Dan kan iedereen van daar uit er desnoods zelf mee doen wattie wil in de taal die hij wenst.
de hardware engine is vrij klein vergeleken met de rest van de software en zal dus in proinciepe makkelijk proteerbaar zijn naar andere programmeertalen mocht dat gewenst zijn. ( dat laat ik aan anderen over. ik kan niet alles alleen doen. ik doe het in VB omdat dat voor mij makkelijkst en vooral snelst werkt en ik mij vooral moet concentreren op de hardware, maar tegelijkertijd de controle over de software niet wil verliezen )
de API zal nog verder uitgwerkt worden maar tkomt int kort hier op neer:
Properties die het object exporteert
sample_clock : een deeltal voor de sample filter (lookuptabel nader te definieren )
min_max : boolean die de min/max filter aan of afzet
gain_a : waarde die de ingangsverzwakker A programmeert
(lookuptabel nader te definieren )
gain_b : waarde die de ingangsverzwakker B programmeert
lookuptabel nader te definieren )
coupling : waarde die kiest AC/DC/GND end 50ohm/1mohm input. ( lookuptabel nader te definieren )
slot_assignement : koppelt de software met de kaart :waarde tussen 0 en F
trigger_mode : rising,falling
trigger_level : waarde van de trigger (byte die ADC code voorstelt)
trigger_combine : 2 bit waarde. een bit die 1 is betekent dat dat kanaal een rol speelt in de trigger. een bit die af staat schakelt een kanaal uit in de composite trigger.
trigger_mask : mask om meerdere kaarten te kunnen koppelen
een woord. een bit die 1 is betekent dat die kaart een rol speelt in de trigger. een bit die af staat schakelt een kaart uit in de composite trigger.
probe_type : 1/1 1/10 1/100 (read only)
lookup tabel nader te definineren
events die het ding kan genereren
user_change : de gebruiker heeft aan een knop geprutst. er is een instelling gewijzigd : refresh de gui.
trigger : er is nieuwe data in de fifo kom ze maar halen.
Methods :
get_card_info : dit geeft je een detail van een specifieke kaart ( fifo diepte en type kaart ). je passeert slotnummer. retourneert een integer:
Hexadecimaal
1x = scoopkaart
x =0 = 4k fifo
1 = 8k fifo
2 = 16k fifo
3 = 32k fifo
4 = 64k fifo
2x = logic analyser kaart
x =0 = 4k fifo
1 = 8k fifo
2 = 16k fifo
3 = 32k fifo
4 = 64k fifo
get_wave_a: passeer een pointer naar een structure. de data wordt daarin gezet
get_wave_b: passeer een pointer naar een structure. de data wordt daarin gezet
arm_trigger : wapen triggersysteem (boolean)
force_trigger : forceer een trigger (boolean)
der zullen nog wel een stapel andere bijkomen. maar dit is een begin. Merk op dat ALLE gelezen data raw is. je krijgt er de ruwe bits uit en de gui software met zelf omrekenen van en naar volts en tijd.
free_electron
Silicon Member
Professioneel ElectronenTemmer - siliconvalleygarage.com - De voltooid verleden tijd van 'halfgeleider' is 'zand' ... US 8,032,693 / US 7,714,746 / US 7,355,303 / US 7,098,557 / US 6,762,632 / EP 1804159 - Real programmers write Hex into ROM
Op 13 oktober 2005 20:00:32 schreef Henry S.:
Vraagje: Geschikt voor oudere pc's? (P1-3)
geschikt voor elke pc die een usb poort heeft (USB1.1 of USB2.0) en die een Windows versie loopt gelijk aan of later dan Windows98 Second edition)
De software wordt gedesignd voor een minmale resolutie van 1024x768
wat is vaak mis op een (pc) scoop is het volgende
bij een twee kanaalss meting dat ik voor kanaal A en B een eigen triggering in kan voeren dus onafhankelijk van elkaar
en ook dat kan.A een andere tijd basis heeft dan kan.B
Ivm met de software ontwikkeling wil ik mij steeds beschikbaar stellen om een C++ programma te maken. Ik heb al voor verschillende projecten code geschreven vooral voor gebruik onder linux met de gcc compiler (niet visual c++ of .NET dus). Porten naar windows is meestal maar een kleinigheid weliswaar. De source code van een paar van mijn projecten (ircbot, digitale temp. sensor interface/backend, MMORPG server-backend, roteerbare webcam, ...) kan je vinden op http://rip7.servehttp.com .
free_electron
Silicon Member
Professioneel ElectronenTemmer - siliconvalleygarage.com - De voltooid verleden tijd van 'halfgeleider' is 'zand' ... US 8,032,693 / US 7,714,746 / US 7,355,303 / US 7,098,557 / US 6,762,632 / EP 1804159 - Real programmers write Hex into ROM
Op 23 oktober 2005 13:18:54 schreef Rip7:
Ivm met de software ontwikkeling wil ik mij steeds beschikbaar stellen om een C++ programma te maken. Ik heb al voor verschillende projecten code geschreven vooral voor gebruik onder linux met de gcc compiler (niet visual c++ of .NET dus). Porten naar windows is meestal maar een kleinigheid weliswaar. De source code van een paar van mijn projecten (ircbot, digitale temp. sensor interface/backend, MMORPG server-backend, roteerbare webcam, ...) kan je vinden op http://rip7.servehttp.com .
kan interessant zijn voor de FFT module. die kan als DLL uitgevoerd worden. Ze moet wel oproepbaar zijn vanuit VB. Het hoofdprogramma wordt hoedanook Visual Basic.
Er mogen GEEN 3rd party binaries gebruikt worden tijdens de ontwikkeling. alles moet als sourcecode beschikbaar zijn,
free_electron
Silicon Member
Professioneel ElectronenTemmer - siliconvalleygarage.com - De voltooid verleden tijd van 'halfgeleider' is 'zand' ... US 8,032,693 / US 7,714,746 / US 7,355,303 / US 7,098,557 / US 6,762,632 / EP 1804159 - Real programmers write Hex into ROM
Op 23 oktober 2005 12:02:47 schreef shiptronic:
wat is vaak mis op een (pc) scoop is het volgendebij een twee kanaalss meting dat ik voor kanaal A en B een eigen triggering in kan voeren dus onafhankelijk van elkaar
en ook dat kan.A een andere tijd basis heeft dan kan.B
waarom wil je dat ? dat lijkt mij het meest onlogische wat er is.
geef eens een voorbeeld waar je zoiets voor nodig hebt. Dit is trouwens geen software vraag maar een hardware vraag.
Ik gebruik zo al nooit 3rd party binaries omdat ik mijn code meestal zelf onder de GNU GPL (of LGPL) classeer indien mogelijk. Dus hoop ik dat het wel in orde zal zijn als ik een open source librarie zou gebruiken onder de BSD of GPL license? De code voor de DLL moet dan wel ook een GPL license dragen (bij BSD license is dit niet nodig). Of is hier nog niets over beslist ?
P.S: Als er iets meer specifiek geweten is voor de FFT module kan je me altijd mailen en zal ik direct eens kijken wat ik kan doen.