Author Topic: C/C++ Schnittstelle (Logik ohne Pi und RED Brick)  (Read 1857 times)

Ingenieur

  • Newbie
  • *
  • Posts: 48
    • View Profile
C/C++ Schnittstelle (Logik ohne Pi und RED Brick)
« on: March 04, 2019, 19:26:00 »
Hallo Tinkerforge,

ich habe einen Vorschlag für die Erweiterung der C/C++ Schnittstelle bzw. für die Erstellung einer neuen Implementierung. Diese Implementierung soll die Ausführung einer einfachen Logik auf dem Master Brick gewährleisten. Meiner Meinung nach wäre es für die ganz einfache Projekte, die auch robust seien sollen, sehr nutzbar.
 
Ich habe z.B. zwei Pumpen, die in der Abhängigkeit der gemessenen Temperatur eingeschaltet oder ausgeschaltet werden (Aufbau der Steuerungseinheit siehe auf den Bildern unten). Eine Raspberry Pi oder einen RED Brick zu nehmen, wäre für das Problem ein Overkill. Aus diesen Gedanken habe ich die Generatoren der C/C++ Schnittstelle modifiziert, um die Abhängigkeit von dem ip_connection.h zu eliminieren. Die generierten Dateien erhalten somit nur die Strukturdefinitionen und die FIDs und lassen sich in das Projekt des Master Bricks einkompilieren. Zusätzlich sollte die Brickletslogik für die Ausführung auf dem Master Brick programmiert werden.

Als letztes kam die Kapselung der Anwendungslogik in einem FreeRTOS Task.
 
Die Frage ist, ob man von euch solche Implementierung erwarten könnte? Auch wäre interessant einen bestimmten Speicherblock für die Anwendungslogik zu reservieren. So könnte man die Logik dem Master Brick aus dem Brickv flashen.

Gruß,
Kirill
« Last Edit: March 04, 2019, 19:58:29 by Ingenieur »

borg

  • Tinkerforge Staff
  • Administrator
  • Hero Member
  • *****
  • Posts: 3.135
    • View Profile
Re: C/C++ Schnittstelle (Logik ohne Pi und RED Brick)
« Reply #1 on: March 04, 2019, 21:13:18 »
Die Idee hatten wir natürlich auch bereits. Ich kann mir gut vorstellen das sowas auch mittelfristig von uns offiziell kommen wird.

Anstatt dem "alten" Master Brick dafür Support beizubringen würde ich es allerdings eher vorziehen entweder dafür ein komplett neues Brick zu machen welches auch reichlich mehr Speicher hat und neben C vielleicht auch sowas wie Micropython ausführen kann.

Alternativ könnte man jetzt mit den neuen Bricklets auch ein Arduino Shield mit den neuen Bricklet-Steckern und Bindings machen die sich in das Arduino-Ökosystem integrieren.

Wir haben allerdings aktuell eine volle Roadmap mit neuem Kram. Eine "Embedded-API" wird es daher erst mittelfristig geben (nicht in den nächsten Monaten).
Wir sind die Borg, Widerstand ist Spannung durch Stromstärke!

Ingenieur

  • Newbie
  • *
  • Posts: 48
    • View Profile
Re: C/C++ Schnittstelle (Logik ohne Pi und RED Brick)
« Reply #2 on: March 05, 2019, 11:16:16 »
Danke für die schnelle Antwort. Wie gesagt, ich benutze aktuell meine Lösung. Somit ist die Frage erstmal nicht akut. Theoretisch könnte man einen Extension Brick auf der Basis eines Omega2 bauen (in der konstruktiven Ausführung ähnlich zu der WiFi Erweiterung). Bei der Omega2 hat man Linux + WiFi. Falls ich mich richtig erinnere: alles circa für 15 Euro bei Amazon.

Ist die Roadmap irgendwo veröffentlich? Da ich manchmal die Sachen, die mir bei den bestehenden Bricklets und Schnittstellen fehlen, selbst implementiere, wäre es für mich sinnvoll im Sinne den Rad nicht neue zu entwickelt. Z.B. zurzeit baue ich mir auf der Basis des Silent Stepper Bricks einen Silent Stepper Bricklet. Falls ihr es im kurzfristigen Plan habt, ist die Arbeit dann überflüssig  :).

Gruß,
Kirill

borg

  • Tinkerforge Staff
  • Administrator
  • Hero Member
  • *****
  • Posts: 3.135
    • View Profile
Re: C/C++ Schnittstelle (Logik ohne Pi und RED Brick)
« Reply #3 on: March 05, 2019, 11:42:03 »
Z.B. zurzeit baue ich mir auf der Basis des Silent Stepper Bricks einen Silent Stepper Bricklet. Falls ihr es im kurzfristigen Plan habt, ist die Arbeit dann überflüssig  :).

Uhm... Wir planen aktuell damit alle Bricks (bis auf den Master Brick) auf Bricklets umzustellen. Diese neuen "Bricklet-Bricks" werden aber wahrscheinlich zusätzlich einen USB-Stecker haben, sodass man sie weiterhin einzeln per USB benutzen kann, zusätzlich aber z.B. über das neue RPi HAT per Bricklet Kabel oder auch am Master Brick im Stapel.

Das ist allerdings noch reine Planung, wir haben noch keine Prototypen dafür hier. Wird also noch ein paar Monate dauern bis es ein "Silent Stepper Bricklet" gibt.
Wir sind die Borg, Widerstand ist Spannung durch Stromstärke!

Ingenieur

  • Newbie
  • *
  • Posts: 48
    • View Profile
Re: C/C++ Schnittstelle (Logik ohne Pi und RED Brick)
« Reply #4 on: March 05, 2019, 11:57:58 »
Ich habe mir bereits einen Silent Stepper Bricklet zusammengelötet. Die Ausführung ist dem Silent Stepper Brick ähnlich. Als das MCU habe ich den XMC1400 genommen. Aktuell programmiere ich die für mich passende Schnittstelle. Die ersten Tests habe ich schon hinter mir und der Stepper dreht sich.

Diesbezüglich habe ich dann eine nächste Frage  :). Für meine Ziele möchte ich das auf zwei oder mehrehren Silent Stepper Bricklets die Aufgaben scheduled synchron ablaufen. Dafür sollen die Uhr auf allen Bricklets auch synchron ticken. Hast du eine Idee wie man so was realisieren könnte?

borg

  • Tinkerforge Staff
  • Administrator
  • Hero Member
  • *****
  • Posts: 3.135
    • View Profile
Re: C/C++ Schnittstelle (Logik ohne Pi und RED Brick)
« Reply #5 on: March 05, 2019, 12:05:12 »
Zeitsynchronisation zwischen zwei Microcontrollern ist nicht so einfach. Du könntest versuchen sowas wie NTP/PTP über SPI zu implementieren oder einen Sync Ein-/Ausgang bei den Bricklets haben. Wenn einer der Stepper den zieht führt der andere den letzten Befehl aus den er bekommen hat.
Wir sind die Borg, Widerstand ist Spannung durch Stromstärke!

Ingenieur

  • Newbie
  • *
  • Posts: 48
    • View Profile
Re: C/C++ Schnittstelle (Logik ohne Pi und RED Brick)
« Reply #6 on: March 05, 2019, 19:55:55 »
Danke für den Tipp. Ich schau mal tatsächlich in die Richtung von NTP oder PTP. Falls Interesse besteht, findest du im Anhang das von mir adoptierte Layout für den Bricklet.