NEWS
JS/Blockly "Einsteigertipps" für C-Programmierer (STM32)
-
Zum Thema IDE
Ja im JavaScript Adapter ist das extremst rudimentär.
Ich behelfe mir damit das ich das in vs Code mache.
Zu den Iobroker spezifischen Befehle mache ich mir dann wrapper Funktionen die genau das Ergebnis zurückgibt was ich zum Testen benötige.
Wenn der Code dann einigermaßen stabil läuft kopiere ich ihn nach Iobroker für den feinschliff und echt Test
Anstatt Vs Code kannst du auch jede andere beliebige ide nehmen. Ich denke auch eclipse, da dürfte es ja auch eine Node Umgebung geben. -
Wenn jemand, der mit Microcontrollern mit "richtigen" IDEs (nicht Arduino, das ist auch nix halbes und nix ganzes) arbeitet mit ioBroker anfängt und sich JS und Blockly anschaut, dann wird er eben sehr sehr viel vermissen.
Wenn Du in dem Thema nicht drin bist ist das natürlich schwer nachzuvollziehen.
Als Gleichnis: Du hättest bei Dir zu Hause (Microcontroller) einen Presslufthammer (IDE), aber Du sollst gerade im Nachbarhaus (ioBroker) eine Mauer mit Kochlöffel (JS) und Käsereibe (Blockly) abreißen
Du kannst den ganze Thread aber auch gerne löschen, da bin ich weder dem Forum noch Dir böse.
War eben ein Versuch und die Hoffnung, dass jdm, mit passedem Background das liest und mir nen entscheidenden Tipp geben könnte
-
@sven-kopelke alles klar verständlich, aber keine Antwort auf meine Fragen, die ich hier als Mod gestellt habe.
Dieses Unterforum soll Nerd-frei bleiben!
und diese Diskussion ist das nicht!und diejenigen die dir helfen könnten sind hier nicht unterwegs.
Der Hinweis auf Microcontroller IDEs klingt wieder nicht nach ioBroker spefizischem
-
Kann ich den Thead löschen?
...die Beiträge editieren scheint möglich zu sein => soll ich meine Beiträge ausleeren?
-
@sven-kopelke sagte in JS/Blockly "Einsteigertipps" für C-Programmierer (STM32):
Kann ich den Thead löschen?
nein! sollst du auch nicht, du dollst Antwort bekommen.
Nur brauche ich deine Hilfe um entscheiden zu können wo dies die beste Chance dazu hat.ich hab's erstmal in offtopic verschoben. mal sehen wie es sich hier macht
-
@homoran
wenn, dann passt es vielleicht noch in "Skripen, Java" rein -
@sven-kopelke sagte in JS/Blockly "Einsteigertipps" für C-Programmierer (STM32):
@homoran
wenn, dann passt es vielleicht noch in "Skripen, Java" reinseh ich mir morgen nochmal an ob es zu javascript passt
-
du kannst die Javascripte exportieren lassen und dann in Eclipse bearbeiten allerdings ohne Code Vervollständigung..
zumindest hast du dann eine chicke ide ...
ich schätze ich bin einer der älteren Devs hier und auch ich habe C im Jahre des Herrn 1999 auf einem os/2 System Prgrammiert
da war nix mit chicke IDE mit code highlight hier und str+space da...
nicht das Moderne kram cpp oder sogar c#..beschäftige dich mal mit assembler .. da fängt das kotzen an
da musste man alles in die LOGs schreiben und diese dann auswerten.. und die Programme waren nicht 5 zeiler..
im Endeffekt bietet dir iobroker alles was man braucht.. von Scenen über Routinen über Blockly und hardcode TS oder JS
einarbeiten musst du dich selbst. ja das dauert.. aber das ist so bei jeder neuen Sprache -
@sven-kopelke sagte in JS/Blockly "Einsteigertipps" für C-Programmierer (STM32):
wegen einem falschen Zeichen sucht man (ich) jeweils ne ganze Weile.
Das liegt in der Natur der Sache. Einmal vertippt - zack - völlig anderes Programm.
Von „vernünftigem“ Debuggen will ich mal gar nicht anfangen.
Wie willst Du denn auf 'nem Server "vernünftig" debuggen?
Du hast nur das Log oder Nachrichten an Telegram/Signal/Push.
Dein Browser ist statuslos. Durchsteppen wie in einer IDE wird da durchaus schwierigDa ich sicher mal die eine oder andere Komponente tauschen will oder muss bedeutet die Verwendung der unveränderbaren Zigbee-Item-Nummern folglich, dass man jedes Skript, in dem das Gerät verwendet wird korrigieren muss.
Genau dafür sind die Aliase da. Ich und vermutlich die meisten Anderen benutzen die aus genau diesem Grund ständig.
Du könntest da vielleicht als Alternative mit Konstanten arbeiten.@arteck sagte in JS/Blockly "Einsteigertipps" für C-Programmierer (STM32):
ich schätze ich bin einer der älteren Devs hier und auch ich habe C im Jahre des Herrn 1999 auf einem os/2 System Prgrammiert
da war nix mit chicke IDE mit code highlight hier und str+space da...
nicht das Moderne kram cpp oder sogar c#..Das hat man im Editor codiert und dann durch den Compiler gejagt.
Der hat einem dann schon gesagt, wo man sich ggf. vertippt hat.im Endeffekt bietet dir iobroker alles was man braucht.. von Scenen über Routinen über Blockly und hardcode TS oder JS
einarbeiten musst du dich selbst. ja das dauert.. aber das ist so bei jeder neuen SpracheIch schließe mich dem mal an.
Ich werde das Gefühl nicht los, dass sich heutzutage überall eine gewisse "Geiz ist geil"-Mentalität breit gemacht hat.
Nach dem Motto "Was man im Internet findet hat gefälligst kostenlos zu sein ... aber dann hätte ich gerne die eierlegende Wollmilchsau".
ioBroker ist kostenlos, bietet alles was man braucht und das wichtigste: Er läuft und funktioniert sehr stabil.HTML, CSS und JavaScript schreibe ich offline meist im PSPad. Für den kann jeder der möchte auch eigene Plugins zur Codevervollständigung und Formatierung schreiben. Das sollte bei VS Code auch möglich sein. Also nur zu.
@Sven-Kopelke Es hat schon seinen Grund, warum JS/TS mittlerweile meilenweit von ANSI-C entfernt sind. Die einzige Gemeinsamkeit ist die grundsätzliche Syntax. Da findet sich jemand der aus der C-Ecke kommt natürlich schnell zurecht.
#define
sind Makros für den Pre-Compiler. Einen solchen sucht man aber vergeblich.Mit solchen Dingen hat man seinen Code schnell ins unleserliche und damit unwartbare Nirvana geschossen.
Es gab seinerzeit in der Zeitschrift "DOS" den "Kilomark-Wettbewerb". Man musste Programme mit max. 1024 Byte einreichen und erhielt dafür 1024 DM.
Da hat mal jemand ein komplexes Menüsystem eingereicht, das mit solchen Makros gespickt war. Ein simplesxy
konnte als Makro durch ein komplexes Programmkonstrukt ersetzt werden.
Der Code war selbst für Profis so gut wie unlesbar. Die vorcompilierte Version hat dann etliche A4-Seiten umfasst. -
nur mal von einer anderne seite betrachtet
ich kam ohne ide erfahrung zu iobroker - der javascript editor ist einfach und war für mich immer aussreichend - fehler suchen: eigentlich nur, wenn eine geschweifte klammer fehlt - alles andere findet sich doch schnell und mit der zeit werden die fehler (vertippen) eh weniger
durch die einfachkeit kann man sich gut auf das wesentliche konzentrieren - die logik im code - ide' mit all ihren features können einen real anfänger erschlagen
hatte mit blockly angefangen und fand es sehr gut, dass man sich den code ansehen kann und auch in ein javascript kopieren - nimmt eine hürde weg, sich dann doch zu pur js zu wagen
-
@sven-kopelke sagte in JS/Blockly "Einsteigertipps" für C-Programmierer (STM32):
War eben ein Versuch und die Hoffnung, dass jdm, mit passedem Background das liest und mir nen entscheidenden Tipp geben könnte
wenn es sich bei deiner Anfrage jetzt um das handelt, was hier am meisten diskutiert wird, wäre das ein Feature Request zum javascript Adapter oder Admin auf github, eine entsprechende IDE für js in ioBroker zur Verfügung zu stellen.
Das müssten sich die Developer ansehen, prüfen ob jemand dazu in der Lage wäre und neben den momentanen Prioritäten noch einen Timeslot hat.
geht es jedoch darum eine weitere höhere Programmiersprache, die incl. einer "vernünftigen" IDE in ioBroker eingebunden werden soll, ist die Chance noch geringer, da ioBroker auf node aufbaut, und dieses wiederum auf javascript.
geht es "nur" um die mehr oder weniger kryptischen IDs ist ein Alias für jeden DP dein Helfer.
-
@homoran
Eigentlich hat Node alles bereits eingebaut was benötigt wird.
Node unterstützt ein inspector und debugging protocol
Damit debugge ich meine Adapter. Bisher immer mit den chrome Developer Tools (und nicht nur Client Code sondern auch Server Code)
Theoretisch müsste man eigentlich den JavaScript Adapter speziell starten, so das dieses Protokoll aktiviert wird. Dann könnte auch eine ide darauf hören und reagieren.
Für Adapter hatte ich das hier irgendwo im Forum schon mal beschriebenIn Verbindung damit
https://github.com/patriksimek/vm2#debugging-a-sandboxed-code
Müsste es dann klappten
Der js Adapter nutzt intern die vm2 Bibliothek -
Ich kenne beide Welten sehr sehr gut und was hier total übersehen wird ist das ein Interpreter Sprache mit einer Compiler sprache verglichen wird. Da besteht einfach nicht die gleichen Möglichkeiten.
Ich bin auch ein riesiger Fan von Code Vervollständigung aber die klappt selten zu 100% und das auch bei C oder C++.Als Tipp: du kannst dir die JavaScript/TrueScript Dateien auf die Festplatte syncen lassen und diesen Ordner auf deinem Dev System mounten und dort eine IDE deiner Wahl nehmen. Das hilft schon mal deutlich was die Übersichtlichkeit an angeht.
Zu der Sache mit dem device Paths kann ich auch nur den anderen zustimmen das der Alias Adapter genau das richtige ist.
Ja man legt damit "symLinks" an aber die sind sehr performant. Wenn man dann etwas Kreativität anwendet lässt sich damit
ein Struktur bauen die viel besser ist als jedes #define.
Z.b.:
Mittels Selector kann der JavaScript Code dann komplett unabhängig von den Devices laufen. So das wenn ich z.b. Ein weiteres Radio um Schlafzimmer aufstelle nur den Alias anlegen und nichts am Script ändern muss.
Auch kann man eine Übersetzten so einbauen das wenn man z.b. einen Festersensor hat der True/False aufgibt und den gegen einen Tauschen muss der Open/Close ausgibt man nichts ändern muss.Aber natürlich ist es dein System und niemand will/kann dir verbieten einen eigenen Zigbee Händler zu bauen.
-
@homoran sagte in JS/Blockly "Einsteigertipps" für C-Programmierer (STM32):
geht es jedoch darum eine weitere höhere Programmiersprache, die incl. einer "vernünftigen" IDE in ioBroker eingebunden werden soll, ist die Chance noch geringer, da ioBroker auf node aufbaut, und dieses wiederum auf javascript.
@Sven-Kopelke
Ich denke man sollte die Kirche im Dorf lassen. Der Script-Bereich ist schon gut so wie er ist. Und du kannst die IDE deiner Wahl nutzen VS, WebStorm, etc.Letztendlich kannst du mit TypeScript arbeiten, wenn du es professionell gewohnt bist.
Ich wünsche mir jetzt auch nicht eine IDE oder die Unterstützung für C, Pascal, Cobol oder Fortran77 nur weil ich das vor 100 Jahren mal benutzt habe und evtl. damit besser zurecht komme. Umdenken... Ist doch nur Semantik und Syntax und sollte für einen Entwickler schnell zu erlernen sein.
Es macht aus meiner Sicht auch gar keinen Sinn bei node.js mit C ins Rennen zu gehen. -
Erst mal herzlichen Dank an Euch Alle – da sind ja schon mal ein paar interessante Anregungen dabei die ich bisher nicht gefunden habe.
Wie so oft: Wenn man die passenden Suchbergriffe endlich mal hat wird es deutlich einfacher – z.B.: „Alias“ ist bei mir bis vor diesem Thread nicht begegnet obwohl ich einiges angeklappert habe... (ich habe ja auch eher nach "#define" gesucht
Dass ich nicht auf, mit oder in IOBroker C programmieren will ist schon klar. Die Sprache an sich ist mir ja auch egal, ich habe nichts gegen Java-Skript. Es ging mir vorwiegend um das ganze „Handling“.
Der Thread-Titel sollte eine Anregung für Erfahrenen sein, denen es schon ähnlich ging Ihre Erfahrungen zu teilen => und das hat ja nun auch gut funktioniert.
Ich werde mal ein paar von den Tipps ausprobieren.
P.S.: Assembler kenne ich noch ein ganz klein wenig von C64
Da gab es auch mal einen "Wettbewerb": Das "Ein-Zeilen-Assembler-Programm" ... oder so ähnlich: Eine Zeile definiert einen String = 255 Zeichen = Ascii-Code = zusammen 255 Assembler-Befehle & Werte/ArgumenteIch mache nur Embedded Programmierung.
Mit C auf Windows/Linux oder auch Raspi etc habe ich nichts am Hut - soweit ich weiß ist das eine ganz andere Welt – da „bringt“ die Objektorientierung angeblich auch wirklich was - im Gegensatz zum µP
-
...Du hast nicht mich sondern einen Post von homoran zitiert.... !?
wie oben geschrieben möchte ich auch nicht "C" in ioBroker. Es geht mir um das Handling, Debugging, Übersichtlichkeit etc. ... und das ist erstmal ziemlich unabhängig von der Programmiersprache..
Aber: ...wenn Du anno 1922 (=15 Jahre vor der Zuse 1 ) schon mit C programmiert hast => "Chapeau" !!
Weiterhin Danke für alle Antworten - das weiter oben hilft schon mal sehr
-
Selbst wenn wir die Erstausgabe von Kernighan & Richie betrachten, wären es erst 44 Jahre. Die Ausgabe gibt es bei mir aber noch
-
@armilar said in JS/Blockly "Einsteigertipps" für C-Programmierer (STM32):
ich das vor 100 Jahren mal benutzt habe
-
sorry, Doppel-Post
-
ich denke aber, dass du dennoch sehr viele schöne neue Sachen in dieser Umgebung zustande bekommst.