Go Down

Topic: Arduino-Oszilloskop - [Nano Version] (Read 13 times) previous topic - next topic

SBond

#30
May 10, 2013, 04:40 pm Last Edit: May 10, 2013, 04:55 pm by SBond Reason: 1
ja, müsste prinzipiell möglich sein. Das Problem ist nur, dass ich es selber nicht testen kann. Ich bin ein typischer Windows-User und arbeite ab und zu auch mal mit Linux. Ich werde mich mal schlau machen, wie ich es am besten für den Mac kompiliere. Momentan sollten alle programmierten Funktionen unter allen Systemen funktionieren.

Edit: Ist doch nicht ganz so einfach.... Ich kann die Programme nur auf dem jeweiligen System kompilieren.  ...bedeutet ich brauche ein MacOS X System, damit ich es für den Mac kompilieren kann. Ich muss mal schauen, ob und wie ich es unter Windows emulieren könnte. Habe bisher noch nie auf einem Mac gearbeitet, daher will ich jetzt noch nicht zu viel versprechen. 

Megaionstorm

Wie ich sehe wird das zu messende Signal beim Arduino an A0 eingespeist.

Wenn man einen Spannungsteiler zwischen das zu messende Signal und A0 schaltet kann man die maximal zulässige Messspannung erhöhen !

Praktisch währe auch wenn man mit der Mauscursorspitze, an einer belibigen Stelle innerhalb des Graphen, den Messwert abfragen und anzeigen lassen könnte.

Es währe auch sinnvoll wenn man die Möglichkeit hätte die Anzeige auszudrucken !
Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/

SBond


mkl0815

Die MAC-Version könnte ein kleines Problem werden, da Du in Deinem Programm direkt auf die Windows "Registry" zugreifst:
Code: [Select]
If RegOpenKeyEx_(#HKEY_LOCAL_MACHINE, "HARDWARE\DEVICEMAP\SERIALCOMM", 0, #KEY_QUERY_VALUE , @hKey) = #ERROR_SUCCESS
Das geht beim Mac und bei Linux natürlich nicht. Gut wäre, wenn die Software die serielle Schnittstelle OS-unabhängig erkennen könnte.

Mario.

SBond

#34
May 12, 2013, 10:53 pm Last Edit: May 12, 2013, 10:56 pm by SBond Reason: 1
ja, in der aktuellen Form klappt das mit dem auslesen nur bei Windows. Momentan kenne ich auch gar keine andere Methode, um die Anzahl der vorhandenen Schnittstellen auszulesen. Gerade bei Mac und Linux wird es für mich schwierig, da ich nicht weiß wie ich an diese Infos gelange. Notfalls lasse ich diese Funktion außen vor. Eine manuelle Eingabe ist ja weiterhin möglich. In wie fern ich das Programm für den Mac kompilieren kann, kann ich noch nicht sagen. Ich müsste es erstmal schaffen ein MacOS X-System unter Windows zu emulieren. Hast du mit so etwas schon irgendwie Erfahrung?

achja... das geplante update wird sich wohl noch um eine Woche verschieben müssen. Die nächsten Tage werde ich leider kaum Zeit zum Programmieren finden, da ich gerade viel um die Ohren habe. Zumindest ist der neue Graph soweit (fast) fertig und mit knapp 4000 Zeilen schon etwas umfangreicher als in der letzten Version. Den Quellcode stelle online, sobald die Formatierung und Dokumentation vollständig ist.

sth77

In der PB-Hilfe findet sich ja folgendes Beispiel:
Code: [Select]
CompilerIf #PB_Compiler_OS = #PB_OS_Windows
  Port$ = "COM1"
CompilerElse
  Port$ = "/dev/ttyS0"
CompilerEndIf


Darauf aufbauend könnte man den nächsten Codeschnipsel anpassen, den ich mir mal zurechtgewurstelt habe:

Code: [Select]

Enumeration
  #MainWindow
  #BTN_Quit
  #BTN_Connect
  #BTN_Disconnect
  #Port
  #CB_Port
EndEnumeration

ProgramName.s = "TEST"
OpenWindow (#MainWindow, 100, 100, 230, 330, ProgramName.s)
ButtonGadget (#BTN_Quit, 120, 300, 100, 20, "Ende")
ButtonGadget (#BTN_Connect, 120, 230, 100, 20, "Verbinden")
ButtonGadget (#BTN_Disconnect, 120, 255, 100, 20, "Trennen")
DisableGadget (#BTN_Disconnect, 1)

ComboBoxGadget(#CB_Port, 120, 205, 100, 20)

For i = 1 To 20
  If OpenSerialPort (#Port, "COM"+Str(i), 9600, #PB_SerialPort_NoParity, 8, 1, #PB_SerialPort_NoHandshake, 64, 64)
    AddGadgetItem(#CB_Port, -1,"COM" + Str(i))
    CloseSerialPort (#Port)
  EndIf 
Next
SetGadgetState (#CB_Port, 0)         ; Voreinstellung für seriellen Port

Repeat 
  Event = WaitWindowEvent (10)
 
  If Event = #PB_Event_CloseWindow
    Quit = 1
  EndIf
 
  If Event = #PB_Event_Gadget
    Select EventGadget()
      Case #BTN_Quit
        Quit=1
      Case #BTN_Connect
        If OpenSerialPort (#Port, GetGadgetText (#CB_Port), 9600, #PB_SerialPort_NoParity, 8, 1, #PB_SerialPort_NoHandshake, 64, 64)
          connect = 1
          DisableGadget (#BTN_Connect, 1)
          DisableGadget (#CB_Port, 1)
          DisableGadget (#BTN_Disconnect, 0) 
        EndIf
      Case #BTN_Disconnect
        connect = 0
        DisableGadget (#BTN_Connect, 0)
        DisableGadget (#CB_Port, 0)
        DisableGadget (#BTN_Disconnect, 1)
        CloseSerialPort (#Port) 
    EndSelect   
  EndIf     

Until Quit


Habe mal alles unwichtige rausgeschmissen und nur die Basisfunktionalität gelassen. Ich teste einfach beim Programmstart, welche COM-Ports sich überhaupt öfnen lassen und setze für jeden verfügbaren Port ein Element in die ComboBox. Dann schließe ich den Port und habe ne schöne Auswahlliste der verfügbaren Ports.
Mein Arduino-Blog: http://www.sth77.de/ - letzte Einträge: Teensy 3.0 - Teensyduino unter Window 7 - Teensyduino unter Windows 8

SBond

lol  :D

so geht es natürlich auch. Ist keine schlechte Idee ;)
Arbeitest du auch mit Purebasic, sth77?

sth77


Arbeitest du auch mit Purebasic, sth77?

Manchmal, aber eher auf Einsteiger-Niveau.
Mein Arduino-Blog: http://www.sth77.de/ - letzte Einträge: Teensy 3.0 - Teensyduino unter Window 7 - Teensyduino unter Windows 8

SBond

oh ok, schade eigentlich.

Ich bin in der Sprache auch noch ein Anfänger und manchmal hängt man an den einfachsten Aufgaben ;)

J3RE

#39
May 12, 2013, 11:41 pm Last Edit: May 12, 2013, 11:58 pm by J3RE Reason: 1
Quote
Ich müsste es erstmal schaffen ein MacOS X-System unter Windows zu emulieren. Hast du mit so etwas schon irgendwie Erfahrung?


Mit VM Workstation kannst du Mac OS X emulieren.

Auf meinem Windows 7 läuft auch OS X 10.8 Mountain Lion, zwar mit geringer Leistung, aber es läuft.

Zum programmieren reicht es auf jeden Fall, aber ob die fertige Anwendung dann flüssig läuft weiß ich nicht.

Edit: Ich habe probiert dein PureBasic-Programm, welches du schon vor längerer Zeit veröffentlicht hast, zu kompilieren. Es kam aber eine Fehlermeldung. Genau der Fehler welcher mkl0815 schon erwähnt hat.

Grüße,
J3RE

SBond

ich werde es mir am Wochenende mal näher anschauen. Die kommenden Tage habe ich leider kaum Zeit dafür.

Megaionstorm

Das Programm lässt sich auch nicht mit der Demoversion von Purebasic compilieren.
Weis allerdings nicht mit welcher Version J3RE versucht hat das Programm zu compilieren.
Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/

J3RE


Das Programm lässt sich auch nicht mit der Demoversion von Purebasic compilieren.
Weis allerdings nicht mit welcher Version J3RE versucht hat das Programm zu compilieren.

Ich habe es mit der Vollversion versucht.

Grüße,
J3RE

SBond

gibt es irgendwo eine Anleitung, wie man Mac auf einem PC emuliert? Ich finde überall solche texte wie: "ohne Lizenz kann man das vergessen" und "die Lizenzen sind an die Hardware gebunden".

Ich tue mich da eventuell etwas schwer, aber ich habe auch keine Ahnung von Apple-Produkten und dessen Betriebssysteme.

zu dem aktuellen Stand des Oszis: Es ist viel zu tun. Komme momentan etwas langsam voran, da ich gerade viele Labortermine habe. Ich will nichts zu viel versprechen, daher sage ich mal, dass das nächste Update erst in 3-4 Wochen kommen wird. Ich bin gerade dabei das Einstellungs-Menü und die Status-Leiste zu programmieren. Wenn das fertig ist, dann kommt das Update.




Gruß
SBond

michael_x

Wenn du Mac auf dem PC emulierst, weisst du nicht, ob er sich tatsächlich wie ein Mac verhält, insbesondere was hardwarenahe Fragen angeht.
(max. Geschwindigkeit serieller Ports via USB z.B.)

Sollen doch die Apple-Besitzer sich drum kümmern ;)
Vermutlich ist auch unklar, ob deine purebasic Lizenz dafür gelten würde...

Mach lieber weiter an deinem Nano Oszilloskop.

Meine java-Version hab ich übrigens aufgegeben, nachdem ich gemerkt habe, dass man auch mit c# locker 500kBd statt max. 115200 schafft.


Go Up