jetzt quäle ich dein Image vom 3.7.19 und habe folgende Erkenntnisse:
Hurra, dank den neu vorgeleisteten libxml-Headerdateien kann ich sofort mit Compilieren loslegen. Bei soviel Service wird man übermütig: ich vermisse noch die libpthread.a zum Linken von threadhaltigen Programmen. Bei musl ist das zwar nur eine Dummydatei (nur eine Kopfzeile), und bisher kopiere ich im Verzeichnis "/usr/lib/gcc/arm-openwrt-linux-muslgnueabi/5.4.0" die quasileere libm.a nach libpthread.a.
Danke, funktioniert wie gewünscht.Ist jetzt im neuesten Image mit drin.Der basrcpd versucht (derzeit zwar nicht mehr, aber ab der geplanten Version 1907 wieder) den Neuanmeldezähler in "/etc/srcpd.regcount" zu speichern (was jedoch dem read-only-Prinzip entgegensteht). Allerdings läuft der basrcpd unter dem User "daemon", der im /etc-Verzeichnis nicht schreiben darf. Man muss die Datei also händisch anlegen und dem daemon die erforderlichen Schreibrechte geben, ...
Das ist noch wirrer als gedacht; jetzt bin ich auf drei Versionen gestoßen:Da habe ich auch den Überblick verloren ... Hoffen wir das Maxi nochmal antwortet. Ich habe jetzt mal den alten Server drin.Die Möglichkeit einer Fernsteuerung würde ich sehr begrüßen, doch hat uns der Maecan-Server wohl etwas verwirrt. Die ältere js-Version lässt die Loksteuerung (für mich Hauptmekmal) schon zu, die neuere C-Version dagegen noch nicht, obwohl sie mir vom Design her fortschrittlicher erscheint. Im aktuellen Image ist nun die C-Version (/usr/bin/maecanserver) drin, aber die alte nicht mehr, dafür wird im "can2lan"-Initskript versucht, den alten Server samt dem dafür notwendigen "can2udp" zu starten. Beide Alternativen können aber gar nicht laufen, weil die statischen Teile (Maecan-html-Zweige) sowie ein Verweis darauf in der httpd-Konfigurationsdatei fehlen.
Falls Maxi mitliest: sind die html-Zweige beider Serverversionen kompatibel oder muss man die beim Serverwechsel mit austauschen?
- die frühe node-basierte vom Juni 18, die im GBert-Repository unter "maecan-server" steht und im aktuellen Image enthalten ist.
- die verbesserte node-basierte vom August 18 bei Maxi.
- die C-basierte im GBert-Repository unter "maecan-c".
Bei der dritten Version sind zwar die neuesten Datei-Versionen im html-Baum enthalten, aber die sind leider nicht mehr kompatibel: Listen werden statt synchronem "GET" über den Webserver jetzt per asynchronem Verfahren über Websocket abgeholt (falls ich den js-Code richtig verstehe).
Eine kleine Testreihe ergab folgendes Bild:
Aufgabe | Version Juni | Version August | html aus c-Version |
CAN-Geräte auflisten | OK | OK | nicht möglich |
basrcpd-Temperatur anzeigen | falsch, 50 statt 35°C | OK, 35°C | nicht möglich |
Lokbilder hochladen | OK | OK | OK |
Lok in Lokliste anlegen | ja, aber ohne Bild | ja, mit Bild | nicht möglich |
Lok auswählen | ja, aber ohne Bild | ja, mit Bild | nicht möglich |
Lok steuern | OK | OK | nicht möglich |
Leider gibt es noch ein Problem mit dieser August-Version: node steigt aus. Das Auskommentieren der betreffenden Zeile half hier.
Code: Alles auswählen
Fehlermeldung:
/www/MaeCAN-Server/node/maecanserver.js:1180
locolist[i].functions_values[fn_number] = fn_value;
^
TypeError: Cannot set property '0' of undefined
at Socket.udpServer.on (/www/MaeCAN-Server/node/maecanserver.js:1180:49)
Schnelle Abhilfe:
1179 if (locolist[i].uid = uid) {
1180 - locolist[i].functions_values[fn_number] = fn_value;
1180 + // locolist[i].functions_values[fn_number] = fn_value;
1181 break;
1182 }
Laaaangfristig wollte ich die Dateien dazu nutzen, dass ich Einträge für meine srcp-Clients und den maecan-Server auch damit synchronisieren kann und habe mir das deshalb genauer angesehen. Habe dazu aber noch folgende Wünsche:Ein Fehler meinerseits den ich korrigiert habe. Vielen Dank für den Hinweis. IMHO ist das nur für ein CS2 Kopplung notwendig. Das ist aber bisher nicht genutzt worden und wahrscheinlich deswegen nicht aufgefallen. Irgendwann, wenn ich mal viel Zeit habe, werde ich auch mal die Dateien mit Leben füllenZuletzt noch zu einem Punkt, der wohl schon länger so ist: kommt über ie IP-Schnittstelle ein verpacktes CAN-Paket mit der "Anforderung lokstat", sucht can2lan nach einer Datei "lokomotive.sr2", im Image heisst die entsprehende Datei aber "lokstat.sr2". Bei den anderen .sr2-Dateien ist das entsprechend. Ist das Absicht?
- Die bisherige Datei "fsstat.sr2" müsste noch in "fahrstrassen.sr2" umbenannt werden.
- In can2lan.c gäbe es noch folgende Änderung:
Code: Alles auswählen
350 - syslog(LOG_NOTICE, "%s: sending gbsstat.sr2\n", __func__);
351 - send_tcp_config_data("gbsstat.sr2", config_dir, canid, tcp_socket, CRC | COMPRESSED);
350 + syslog(LOG_NOTICE, "%s: sending gleisbild.sr2\n", __func__);
351 + send_tcp_config_data("gleisbild.sr2", config_dir, canid, tcp_socket, CRC | COMPRESSED);
Gruß
Rainer