Jump to content

pluto

Members
  • Gesamte Inhalte

    161
  • Benutzer seit

  • Letzter Besuch

Posts erstellt von pluto

  1. Was mir noch aufgefallen ist: Wenn ich eine Verbindung zum BrickD habe, über die Pascal Bindings, und dann die Verbindung Trenne, kommt es zu einem Fehler, dass Programm verabschiedet sich. Schön, wäre, wenn man das Abfangen könnte.

     

    edit01: Ich weiß noch nicht genau, warum aber das Poti scheint ein "Event" auszulösen, obwohl ich den Dreh Knopf gar nicht betätige. Der Wert Schwankt. Zuerst dachte, es liegt am Kabel, scheint aber nicht der Fall zu sein.Alles liegt gerade auf dem Tisch.

     

    edit02: Ich glaube inzwischen, dass es nur am Anfang auftritt, wenn ich den Master Brick anschließe.

     

    edit03: Lustig, wenn ich die Hintergrund Beleuchtung beim LCD recht schnell hintereinander an und aus schalte, ändert sich der Wert vom Enteferungs Messer.

     

    edit04: Wenn die Hintergrund Beleuchtung an ist beim LCD, ist der Wert vom Entferungs Messer Stabil, schalte ich sie aus, ändert sich der Wert, obwohl ich den Sensor gar nicht bewegt habe.

     

    ps: Wenn ihr eine Oberfläche erstellt, wo alle Sensoren auf einmal zu sehen sind, so wie bei mir, könnt ihr diese Fehler besser Nachvollziehen.

     

  2. Ich habe heute ein kleines Beispiel mit Lazarus erstellt. Im Prinzip eine sehr einfache Version vom BrickV.

    Im Anhang erst einmal ein Bild davon.

    Die Panels werden Sichtbar, wenn bestimmte Bricklets gefunden wurden. Ich habe erst mal die eingebaut, die mir vorliegen. Sobald es fertig ist, lade ich das Beispiel mit einigen Hinweisen hoch.

     

    Toll wäre jetzt natürlich noch, wenn der Masterbrick Automatisch ein Callback liefern würde, wenn ich ein Bricklet Anschließe oder entferne...

    bild1.png.188e142fd35e81611fb99a7a0441bb09.png

  3. Ich habe das ganze mal eben unter Lazarus getestet:

    Ich musste erst mal "PositionCB(const position: smallint);"  in ändern:

    "PositionCB(const aposition: smallint);"

    Ich weiß noch nicht warum, die Anwendung stürzt ab, wenn ich den Wert in ein Label schreibe.

     

    edit01: Außerdem reagiert die Anwendung auf die Maus. D.H. Die Callback Methode wird auch aufgerufen, wenn ich die Mausbewege.

    Muss ich mir noch näher anschauen.

     

    edit02: Das hier kommt dann:

     WARNING: TGtk2WidgetSet.InvalidateRect refused invalidating during paint message: TForm1
    WARNING: TGtk2WidgetSet.InvalidateRect refused invalidating during paint message: TForm1
    ERROR in LCL: TGtk2WidgetSet.DeleteObject invalid GdiObject=140737353569856
    Creating gdb catchable error:
    
      $000000000056F0D5 line 676 of lazloggerbase.pas
      $0000000000539B96 line 1406 of lclproc.pas
      $0000000000537B2B line 864 of lclproc.pas
      $000000000063C971 line 1951 of gtk2winapi.inc
      $000000000063C8B4 line 1976 of gtk2winapi.inc
      $000000000064A3EE line 7527 of gtk2winapi.inc
      $00000000006146FD line 776 of include/winapi.inc
      $0000000000667D72 line 123 of include/controlcanvas.inc
      $0000000000694209 line 104 of include/graphiccontrol.inc
    

     

    edit03: Es lag wohl an der AutoSize Eigenschaft vom Label.

  4. Warum sollte das noch restriktiver in FPC sein ?

    Geht hier genauso. FPC verarbeitet ja Object Pascal.

     

    Das Problem liegt daran, dass ich LEConvertInt8To ohne Klasse definiert habe.

    Brauchst du auch nicht. Muss nur ein Datentyp dafür erstellen für dein Array of Smallint.

     

    z.b. in etwa so: am Anfang deiner Unit, nach dem ersten Type: TSmallIntArray = array of Smallint

     

    Und jetzt nehme ich das zurück, denn ich habe beim Schreiben diese Post herausgefunden, dass der Prototype auch im type Block sein kann. Alles gut

    So schnell lassen sich Probleme lösen.... Bin schon auf die neue Preview gespannt.

     

    Pascal ist sehr unterschiedlich zu den Sprachen, die ihr bisher unterstützt.

     

    edit01:

    Woher kennt Dein Compiler eigentlich den Typen TByteArray z.B. in der IpConnection ?

    Von Haus aus, kennt FPC schon einige Datentypen wie TByteArray und einige weitere.Ist das bei Delphi nicht so?

  5. Falls die Brick-Klassen und Prozeduren später ableitbar sein sollen, müssen im Vorfahr hinter jeder Prozedur das Keyword virtual oder dynamic angegeben werden. So ist das zumnindest in Delphi 7.

    In FPC/Lazarus ist das nicht anders. dynamic ist mir jetzt zwar neu, aber virtual muss angegeben werden, damit man die Methoden überschreiben kann oder halt virtual und abstract, je nach dem.

  6. Ich bin zwar noch nicht so lange dabei, bin aber überrascht was man mit Tinkerforge so machen kann. Auch ohne eine Funk Verbindung. Gut, es ist halt auch nur für Labor-Aufbauten gedacht.

     

    Daher, denke ich ist es fraglich, ob man damit überhaupt Szenarien aufbauen kann, die für den Dauereinsatz gedacht sind. Ich selbst habe natürlich solche Gedanken... und sobald es eine Delphi/Lazarus Unterstützung gibt, fange ich damit auch an. Und so lange muss man eben Warten. Würde ich einfach sagen.

     

    Ach ja: Passt vielleicht nicht so zum diesen Thrend, aber zur der Anwendungs-Möglichkeit von webster7567 würde es passen; Nimm doch den RJ45 Brick(Hieß das so?) aus dem Shop und besorgt die ein Netzwerkkabel schon ist das Problem gelöst. Wobei ich natürlich nicht weiß, wie lang deine Seilbahn-Kamera ist.

  7. Erster Test-Bricht:

    Komplieren geht, aber sobald ich den "Rotary Potis" drehe, kommt eine AV

    An unhandled exception occurred at $0000000000452F99 :

    Exception : Could not add device 9Hh, timeout

      $0000000000452F99

      $0000000000413958

    ich werde es mir mal genauer ansehen.

     

    Edit01: Vielleicht sollte ich die UID anpassen?

    Edit02: Klappt nun bestens.

    Edit03: Habe mir den Code mal genauer angesehen, macht einen recht guten Eindruck.

  8. Richtig, das geht, sieht dann aber in den Examples recht hässlich aus :)

     

    Ich würde dem daher fpc -Mdelphi vorziehen wollen.

    Mag sein, dass es nicht schön aussieht, aber wer schaut sich schon den Code genauer an?

    Außerdem ist das eine gängige Praxis unter FPC/Lazarus. Schau dir mal SynEdit an.

    Aber der Delphi Modus geht natürlich auch. Ist dann aber nicht mehr Standard FPC.

     

    Aber, Hauptsache es läuft *G*

  9. pluto, das ist ja mal ganz schön von hinten durch die Brust in's Auge

    So kann man es auch sehen. Ich finde es nur toll: Das es geht.

     

    Ich sehe aber gerade gar nicht warum du das so tust. Ich bin gerade mit den Delphi Bindings beschäftigt und das läuft wunderbar unter Lazarus

    Ach, wirklich? Hast du schon was, was ich ausprobieren könnte?

    Ich habe nur das Starter Kit... Es war auch nur ein Experiment. Für mich ist das eine Art Spiel-Wiese(Vielleicht bin ich etwas Alt dafür), andere Spielen "Baller"-Spiele, ich Spiele sowas. Finde ich viel Spannender.

     

    Die Timeline setzt Delphi Bindings für nächste Woche an. Ich denke das kann ich einhalten.

    Ich freue mich darauf. Ich dachte, dass du dich eher dass die Delphi-Bindings nur unter Delphi laufen werden, aber schön das sie auch unter Lazarus/FPC laufen. Ich hoffe auch unter Linux.

     

  10. Habe eine Weg gefunden, um Tinkerforge auch unter Lazarus nutzen zu können. Ist zwar bestimmt nicht Effizient aber es scheint zu gehen:

    Ich nutzte PHP als Zwischen Sprache. Habe mir zwei PHP Scripte erstellt:

    Das erste zum Lesen und das zweite zum Schreiben. Die rufe ich in meiner Lazarus-Anwendung auf.

    Die Kommunikation läuft über PIPES.

     

    Zum Spielen reicht es. Dieser Weg ist einfacher als jetzt gleich TCP/IP zu verwenden.

    eine weitere Möglichkeit wäre: Über C eine Art Wapper zu erstellen.

    Ich hoffe ihr wisst was ich damit meine.

     

    Aber erst mal finde ich es toll. Z.b. nutzte ich ein Timer in Lazarus der alle 1000 ms das Datum und die Uhrzeit auf das LCD Schreibt. Außerdem wird noch die Temperatur angezeigt.

     

    Toll wäre natürlich, wenn es noch eine weitere Möglichkeit geben würde außer dem BrickD direkt zu nutzen. Ich dachte da an Botschaften. 

  11. So ganz verstehe ich das mit der Modularität noch nicht.

    Meinst du, weil die Sender und emfangseinheit zusammen sind?

    Dann kann man die auch trennen, aber einfacher wäre es wenn sie zusammen sind.

    War auch nur so eine Idee... die mir gefallen würde *G*

  12. Naja, die Lösung ist ein weiterer Master (die kannst du ja aufeinander stecken). Alternativ halt einer der Motortreiber Bricks, falls du auch einen Motor steuern möchtest

    Schön, dass es so schnell eine Antwort gibt. Ein weiteren Master? Irgendwie zu Teuer.... Einen Motortreiber Bricks, keine schlechte Idee, nur hatte ich gehofft, eine einfache Platine drauf stecken zu können oder sowas in der Richtung, was günstiger wäre.

     

    Aber gut, ich werde es mir überlegen.... ich wollte sowieso noch einige Kleinigkeiten vielleicht nach bestellen...

  13. Hallo!

    Ich habe mir das Starterkit bestellt und ein Temperatur Sensor dazu.

    Leider reichen die vier Anschlüsse nicht aus, um alle "Erweiterungen" gleichzeitig angeschlossen zu haben. Gibt es hier eine Lösung?

     

    Ich habe mir den Shop noch mal angeschaut und konnte auch beim wiederholen durch gehen nichts passenden Finden.

     

  14. nach 10 sec Suche über Google

    Ja die habe ich auch gefunden, nur gibt es keinen Code mehr dazu.Jedenfalls habe ich keinen gefunden.

     

    Ich kann mir auch nicht vorstellen, daß solche elementaren Bausteine wie Sockets in einer Programmiersprache nicht vorhanden sind...Ansonsten einfach mal googlen.

    Es gibt bestimmt auch was. Aber das muss ich erst finden. Ich habe ja auch schon das eine oder andere Gefunden, nur gibt es dazu keine Beispiele. Z.B. LNet oder Synapse oder halt ftsocks und sowas.

    Es gibt da auch im FPC-Ordner einige Sachen zu, aber ich weiß noch nicht wie man damit umgeht.

    Von Zeit zu Zeit werde ich aber mal weiter suchen. Das Problem ist auch:Das meiste ist leider in Englisch und das kann ich kaum.

    (Ich weiß ein Widerspruch an sich)

     

    Und welchen Constructor in den Delphi-Bindings meinst du, da gibt es zahlreiche...

    Überall wo ich ein A an den Parameter vorgeschoben habe.Aber ich kann eine Liste erstellen.

     

    Hab mir Deine Änderungen mal angeschaut: Du meinst ev. TBaseThread, dort ist eine (private) Klassenvariable mit Namen ipconn, ebenso heißt aber auch das Argument im Klassenkonstruktor.

    Z.B. Damit kommt FPC nicht zurecht, jedenfalls höchsten nur im Delphi-Modus.

     

     

×
×
  • Neu erstellen...