logo
Welcome, Guest. Please Login or Register.
24. May 2024, 23:29:29


Home Help Search Login RegisterWIKIUHSDR Download

Amateurfunk Sulingen
Diskussions- und Newsboard des DARC-Ortsverbandes I40  |  allgemeine Kategorie  |  mcHF Projekt Deutsch / English (here you can discuss everything related to mcHF) (Moderators: DF8OE, DL1PQ)  |  Topic: CAT Funktion eingebaut <- zurück vorwärts ->
Pages: 1 ... 3 4 [5] 6 Go Down Print
   Author  Topic: CAT Funktion eingebaut  (Read 11649 times)
DB4PLE
positron
Urgestein
*****

Offline

Posts: 1278





View Profile
Re:CAT Funktion eingebaut
« Reply #60 on: 08. April 2016, 16:21:15 »

Hallo Astralix,

modemmanager und Co. hast Du schon als Störenfriede ausgeschlossen?

lsof  | grep /dev/ttyACM

könnte noch hilfreich sein.

73
Danilo
Logged
DC3AX
Interessent
noch länger dabei
***

Offline

Posts: 186



Ich liebe dieses Forum!

View Profile
Re:CAT Funktion eingebaut
« Reply #61 on: 08. April 2016, 20:30:32 »

Gehen wir mal systematisch ran:

Der Stand ist wie gestern: Sound geht, Serielle nicht.

Also mit System:

1) Programme:
fldigi, flrig, hamlib (und damit rigctl) sind aus den latest greatest Quellen neu gebaut und korrekt installiert.
which [datei] zeigt den für Ubuntu korrekten Pfad /usr/bin/[datei] an und die meisten Versionsnummern sind nun höher als zuvor.

2) Kabel
Zur Sicherheit habe ich mal das augenscheinlich sehr dünne China-USB-Kabel gegen ein hochwertiges getauscht. Wie erwartet kein Unterschied, denn wenn Sound geht, sollte auch UART gehen.

3) Device
Bus 003 Device 010: ID 0483:5732 STMicroelectronics
Ist da, na logisch, Sound geht ja

3) Modemmanager
Ich habe keinen modemmanager, der wäre mir eh immer nur im Weg, weil ich täglich mit zig UART Platinchen aller Marken am Rechner arbeite. Es gibt keinen Service der laut lsof an den Files ttyACM oder ttyUSB hängt.
Der Modemmanager war mir schon vor Jahren immer im Weg, wenn ich Embedded oder ARM Linux gemacht habe, daher ist der mit apt-get remove --purge ganz schnell abgeflogen.
Trotzdem ps aux | grep modem ergibt keinen Treffer (außer der suche selbst)

4) Fremde Dienste blockieren den Port
Eigentlich sollte das einen Fehler produzieren, der wird in den Programmen aber vielleicht nicht abgefangen?
Also picocom -b 115200 /dev/ttyACM0 behält die Verbindung. Wäre das File anderweitig verbunden, meldet picocom das und beendet sich selbst.
lsof  | grep "/dev/ttyACM" findet keine Verbindung auf den Port.

5) Rechte
crw-rw-rw- 1 root dialout 166,  0 Apr  8 21:36 /dev/ttyACM0
crw-rw---- 1 root dialout  4, 64 Apr  8 21:26 /dev/ttyS0
...
crw-rw---- 1 root dialout  4, 73 Apr  8 21:26 /dev/ttyS9
crw-rw-r-- 1 root dialout 188,  0 Apr  8 21:26 /dev/ttyUSB0

Natürlich ist mein user in der Gruppe dialout.

6) Noch mal testen...

:~$ rigctl -m 120 -r /dev/ttyACM0 -v
Opened rig model 120, 'FT-817'

Rig command: f
rigctl_parse: input_line: f
get_freq: error = Communication timed out

Wie ich es drehe und wende, der Port nimmt entweder nix an, oder er gibt nichts zurück... Ich teste mal weiter.

vy 73
Ulrich
Logged

Es gibt drei binäre Zustände: Ein, Aus und Vielleicht. Je höher die Frequenz, desto Vielleicht...
dl8mby
alter Hase
****

Offline

Posts: 363



Ich liebe dieses Forum!

View Profile
Re:CAT Funktion eingebaut
« Reply #62 on: 08. April 2016, 20:50:47 »

Hallo zusammen,

Muss noch vor dem zu Bett gehen meinen Output loswerden.

Hilft Euch das eventuell weiter.

usbhid-dump,

sowie der Link:

https://www.rfc1149.net/blog/2013/03/05/what-is-the-difference-between-devttyusbx-and-devttyacmx/


vy73
Markus
DL8MBY

Logged
DC3AX
Interessent
noch länger dabei
***

Offline

Posts: 186



Ich liebe dieses Forum!

View Profile
Re:CAT Funktion eingebaut
« Reply #63 on: 08. April 2016, 21:59:54 »

Danke Markus,

war eine Idee, aber nichts neues

Habe mal gerade einen Raspi 2 mit aktuellem MATE bestückt und das fldigi Paket installiert.
mcHF dran, Soundkarte da, ttyACM0 auch...

Leider das gleiche Verhalten. Sound wird dekodiert, aber Steuerung via CAT geht nicht.

Ist es denn immer noch korrekt, dass man in der hamlib die Yaesu FT817 auswählt?

Auch auf dem raspi meldet rigctl -m 120 -r /dev/ttyACM0 dass get_freq: error = Communication timed out

Das wird heute nix mehr

vy 73
Ulrich
Logged

Es gibt drei binäre Zustände: Ein, Aus und Vielleicht. Je höher die Frequenz, desto Vielleicht...
DB4PLE
positron
Urgestein
*****

Offline

Posts: 1278





View Profile
Re:CAT Funktion eingebaut
« Reply #64 on: 08. April 2016, 22:19:45 »

Hallo,

FT-817 ist absolut korrekt. Ich werde es im Laufe des kommenden Tages nochmal anschauen. An der CAT Emulation und dem USB Code habe ich schon eine Weile nichts geändert und auch niemand anderers.
Schon komisch.

Worauf der mcHF unheimlich allergisch reagiert sind "falsche" Zeichen. Das Protokoll is 5 Byte lang. Wenn  da auch nur 1 Zeichen Versatz drin ist, wird es nie was, weil man am Protokoll nicht erkennen kann, wann ein 5 Byte Block anfängt.
Das wird im echten Gerät über einen Timeout geregelt. In der mcHF Emulation noch nicht.
Sollte ich aber mal einbauen.

Im Zweifel sich einfach mal mit dem ST-Link auf die entsprechende Funktion im mcHF legen und schauen was da ankommt.

73
Danilo






Logged
DB4PLE
positron
Urgestein
*****

Offline

Posts: 1278





View Profile
Re:CAT Funktion eingebaut
« Reply #65 on: 09. April 2016, 05:58:09 »

Hallo,

am Raspi 2, Rasbian, fldigi aus dem Repository, aktueller devel-DF8OE Source (!, ich baue selbst):
Es funktioniert sowohl CAT als auch Audio problemlos.

Kabel?

73
Danilo

Logged
DF8OE
Administrator
*****

Offline

Posts: 6269



Stellvertr. OVV I40, Jugend / Nachwuchsreferent

View Profile WWW
Re:CAT Funktion eingebaut
« Reply #66 on: 09. April 2016, 06:26:43 »

..oder, wo Danilo das jetzt explizit erwähnt hat - baust Du auch selbst? Hast Du mal das von mir gebaute Binary versucht (daily snapshots)? Vielleicht liegt das Problem ja ganz woanders.

Bis auf die Schwierigkeiten mit dem Modemmanager (oder auch der Braillezeile, die sich schon mal den Port greift) kenne ich keine Probleme mit CAT. Es hat bei mir stets mit allen Geräten out-of-the-box mit den Paketen aus dem Repository geklappt.

vy 73
Andreas
Logged

Wenn der Wind des Wandels weht, nageln die einen Fenster und Türen zu und verbarrikadieren sich. Die anderen gehen nach draußen und bauen Windmühlen...
qrz.com-Seite von DF8OE
-----------------------------------------------------
>>>> Die Inhalte meiner Beiträge dürfen ohne meine explizite Erlaubnis in jedwedem Medium weiterverbreitet werden! <<<<
DC3AX
Interessent
noch länger dabei
***

Offline

Posts: 186



Ich liebe dieses Forum!

View Profile
Re:CAT Funktion eingebaut
« Reply #67 on: 10. April 2016, 09:04:01 »

Hallo!

Danke für die Ideen!
Ich werde mal das Binary probieren. Habe mich mal mit JTAG drauf geklemmt und kann sehen, dass Pakete empfangen werden, deren Inhalt mir jedoch seltsam vorkommt. Allerdings muss ich mir das Prokoll der FT817 erst einmal ansehen, damit ich as beurteilen kann.

Selber bauen:
- fldigi auf dem Linux PC habe ich selber gebaut, es verhält sich identisch, wie das zuvor getestete fldigi aus den Paketquellen.
- fldigi auf dem Raspi ist aus den Paketquellen installiert und verhält sich identisch.
- mcHF ist selber gebaut mit gcc-5.2 und der einzige gemeinsame Nenner bei dem Problem.

Ich verwende einen eigenen Makefile, der aber keine Veränderungen an den Optimierungen vornimmt. Im Grunde wäre es also gut, wenn die Ursache im Compiler / Toolchain liegt, dann könnten wir mal die Probleme in dem Bereich adressieren. Da mache ich mich dann mal ran.

vy 73 de Ulrich
Logged

Es gibt drei binäre Zustände: Ein, Aus und Vielleicht. Je höher die Frequenz, desto Vielleicht...
DB4PLE
positron
Urgestein
*****

Offline

Posts: 1278





View Profile
Re:CAT Funktion eingebaut
« Reply #68 on: 10. April 2016, 10:09:00 »

FT 817 Protokoll: Super simple, immer 5 Bytes. Siehe cat_driver.c, dort stehen im Kommentar die von der Hamlib unterstützten Kommandos.
Letztes Byte ist das Kommando, davor können statt der 0 Daten kommen.
mit #define FT817_DEBUG übersetzt gibt es noch einen Buffer ft817.req[], in dem die empfangenen Daten abgelegt werden (bis er voll ist).

Viel Spaß
Danilo



Logged
DC3AX
Interessent
noch länger dabei
***

Offline

Posts: 186



Ich liebe dieses Forum!

View Profile
Re:CAT Funktion eingebaut
« Reply #69 on: 10. April 2016, 10:25:24 »

Danke Danilo,

den DEBUG nebst Puffer hatte ich schon entdeckt. Bin nur noch nicht dazu gekommen das auszuwerten. Bei dem Wetter wollen YL und die Hunde an die frische Luft, das wird also bis heute Abend warten müssen.

vy 73
Ulrich
Logged

Es gibt drei binäre Zustände: Ein, Aus und Vielleicht. Je höher die Frequenz, desto Vielleicht...
DC3AX
Interessent
noch länger dabei
***

Offline

Posts: 186



Ich liebe dieses Forum!

View Profile
Re:CAT Funktion eingebaut
« Reply #70 on: 10. April 2016, 17:41:38 »

Also ich habe mich mal an den USB Code gemacht...

Dabei auch gleich etwas aufgeräumt, da gab es ein paar Unstimmigkeiten.
CatInterfaceState cat_driver_state() { return USBD_User_GetStatus(); }
Dabei wird in
void CatDriverFT817CheckAndExecute() {
bei der Antwort 0xff der Puffer zurückgesetzt, weil wohl angenommen wird, dass keine USB Verbindung mehr besteht.
USBD_User_GetStatus() ist wohl aus den ST-Libs? jedenfalls kennt die eigentlich nur 0 und 1 als Antwort.

Das ist aber nicht das Problem. Bei mir landen die CAT Telegramme um 1 byte nach links versetzt im Puffer, ich habe also nicht
00 00 00 00 03 als GET FRQ AND MODE bsi mir steht da
00 00 00 03 00
Damit ist es also das fehlende Framing, dass da Ärger macht und ehe ich jetzt lange suche, hat jemand eine Funktion im mcHF entdeckt, mit der ich z.B. eine ms genaue Laufzeit bekommen kann?

Dann wäre es sehr einfach, den für das Protokoll notwendigen Timeout zu implementieren.

Ich habe auch schon ein wenig umgestellt, als eine uinion für das Telegramm, ENUMs für die Befehle...
Habe noch ein paar Optimierungen vorbereitet, aber eines nach dem Anderen. Wenn ich mit Timeout die Telegramme korrekt verschieben kann, kann ich die Ausführung von CAT noch deutlich schneller machen.

vy 73
Ulrich

Logged

Es gibt drei binäre Zustände: Ein, Aus und Vielleicht. Je höher die Frequenz, desto Vielleicht...
DF8OE
Administrator
*****

Offline

Posts: 6269



Stellvertr. OVV I40, Jugend / Nachwuchsreferent

View Profile WWW
Re:CAT Funktion eingebaut
« Reply #71 on: 10. April 2016, 17:45:07 »

Hallo Ulrich,

das läuft bereits mit vielen Nutzern von Windows und Linux! Ich würde an deiner Stelle in Betracht ziehen, dass das Problem irgendwo bei Dir und nicht in der Firmware zu suchen ist!

Was mir noch fehlt ist die Aussage, ob es mit einem fertig gebauten daily snaphot die gleichen Probleme gibt.

vy 73
Andreas
« Last Edit: 10. April 2016, 17:46:24 by DF8OE » Logged

Wenn der Wind des Wandels weht, nageln die einen Fenster und Türen zu und verbarrikadieren sich. Die anderen gehen nach draußen und bauen Windmühlen...
qrz.com-Seite von DF8OE
-----------------------------------------------------
>>>> Die Inhalte meiner Beiträge dürfen ohne meine explizite Erlaubnis in jedwedem Medium weiterverbreitet werden! <<<<
DC3AX
Interessent
noch länger dabei
***

Offline

Posts: 186



Ich liebe dieses Forum!

View Profile
Re:CAT Funktion eingebaut
« Reply #72 on: 10. April 2016, 18:43:51 »

Auch mit dem daily snapshot von hier
http://www.amateurfunk-sulingen.de/mchf-projekt/modifikationen#start
auf der Seite ganz unten habe ich das gleiche Problem.
Sowohl die Linux, wie auch der RasPi mögen nicht.

Habe ja schon gesehen, dass der SysTick auch als solcher verwendet wird, damit habe ich ja dann eine ms Timeout Clock.

vy 73
Ulrich


Logged

Es gibt drei binäre Zustände: Ein, Aus und Vielleicht. Je höher die Frequenz, desto Vielleicht...
DB4PLE
positron
Urgestein
*****

Offline

Posts: 1278





View Profile
Re:CAT Funktion eingebaut
« Reply #73 on: 10. April 2016, 18:57:51 »

Quote from: Astralix on 10. April 2016, 17:41:38
Dabei auch gleich etwas aufgeräumt, da gab es ein paar Unstimmigkeiten.
CatInterfaceState cat_driver_state() { return USBD_User_GetStatus(); }
Dabei wird in
void CatDriverFT817CheckAndExecute() {
bei der Antwort 0xff der Puffer zurückgesetzt, weil wohl angenommen wird, dass keine USB Verbindung mehr besteht.
USBD_User_GetStatus() ist wohl aus den ST-Libs? jedenfalls kennt die eigentlich nur 0 und 1 als Antwort.

Ich habe das auf 0xFF geändert (vorher 0) weil es so nicht funktioniert hat (hat immer zu den Buffer resettet, ist auch logisch, es kommt ja immer wieder 0 wenn man fragt). Vorallem  aber war es einfach nicht notwendig, das zu fixen. Hat ja auch so funktioniert.


Quote:
Das ist aber nicht das Problem. Bei mir landen die CAT Telegramme um 1 byte nach links versetzt im Puffer, ich habe also nicht
00 00 00 00 03 als GET FRQ AND MODE bsi mir steht da
00 00 00 03 00
Damit ist es also das fehlende Framing, dass da Ärger macht und ehe ich jetzt lange suche, hat jemand eine Funktion im mcHF entdeckt, mit der ich z.B. eine ms genaue Laufzeit bekommen kann?
In der Tat finde ich es verwunderlich, das hier zuverlässig ein Versatz ist. Normalerweise kann das nicht passieren, macht es ja auch bei den meisten nicht. Es werden ja alle 5 Byte in einem USB Packet geschickt. Da ist es schwierig, mittendrin zu unterbrechen. Nur wenn ein Programm dazwischen funkt oder abstürzt, sehr viele Packete hintereinander verschickt werden, ist ein Versatz logisch erklärbar.


Quote:
Dann wäre es sehr einfach, den für das Protokoll notwendigen Timeout zu implementieren.
ts.sysclock ca. 10ms Takt (abgeleitet aus 1,5Khz Audio-Interrupt).

Normaler Sysclock interrupt ist nicht angeschaltet.


Quote:
Ich habe auch schon ein wenig umgestellt, als eine uinion für das Telegramm, ENUMs für die Befehle...

Habe noch ein paar Optimierungen vorbereitet, aber eines nach dem Anderen. Wenn ich mit Timeout die Telegramme korrekt verschieben kann, kann ich die Ausführung von CAT noch deutlich schneller machen.
Nur zu, ordentliche Strukturen im Code sind willkommen.

Wobei die Performance der CAT Befehle aus meiner Sicht eher nicht so kritisch ist, da sie relativ selten kommen und insgesamt kaum auftragen sollten im Vergleich zum UI, in dem ja ähnliche Funktionen aufgerufen werden und das deutlich mehr Code ausführt. Schaden solte es aber auch nicht.


73
Danilo
Logged
DC3AX
Interessent
noch länger dabei
***

Offline

Posts: 186



Ich liebe dieses Forum!

View Profile
Re:CAT Funktion eingebaut
« Reply #74 on: 10. April 2016, 21:49:37 »

Danke,

ES GEHT!

Hätte jetzt den SysClock Counter abgefragt, da ich ja nur ein Delta brauche, keinen Interrupt. ts.systime geht aber auch gut.

Es soll ja nur nachgesehen werden, ob der Anfang des Telegramms schon mehr als 200ms in der Vergangenheit liegt, bevor es beendet wurde. Das habe ich jetzt implementiert und es geht!

Eigentlich sollten ja auch nicht mehr als ein Telegramm im USB->CAT Buffer liegen, aber USB und Timing ist so eine Sache, der packt einfach gerade das über den Bus, was gerade da ist. Also lassen wir das erst mal so.

Mir ist beim debuggen aufgefallen, dass im Buffer AT Befehle sind. Ich habe definitiv keinen Modemmanager laufen, aber ich gehe davon aus, dass das udev die Schnittstelle erkennt und eine Hardware-Erkennung dann loslegt um das Gerät zu identifizieren. Dieser Müll verursachte dann einen Offset von 1.
Es ist ebenfalls aufgefallen, dass der USB Stack sich das ein oder andere merkt. So habe ich gleich beim Start des mcHF schon CAT Telegramme empfangen, die ich wohl vorher mal versucht habe zu senden,  und die dann wegen JTAG HALT noch im USB Puffer des Host lagen.

Schon jetzt ist ein TODO in der Liste:
Es ist möglich, dass die Kombination aus Schrott im Puffer + Timeout dafür sorgt, dass das erste Telegramm verloren geht.
Ich schreibe das jetzt mal noch schön und teste es, dann mache ich einen Mergerequest.

vy 73!
Ulrich
« Last Edit: 10. April 2016, 21:50:14 by Astralix » Logged

Es gibt drei binäre Zustände: Ein, Aus und Vielleicht. Je höher die Frequenz, desto Vielleicht...
Pages: 1 ... 3 4 [5] 6 Go Up Print 
Diskussions- und Newsboard des DARC-Ortsverbandes I40  |  allgemeine Kategorie  |  mcHF Projekt Deutsch / English (here you can discuss everything related to mcHF) (Moderators: DF8OE, DL1PQ)  |  Topic: CAT Funktion eingebaut <- zurück vorwärts ->
Jump to: 


Login with username, password and session length

 Es wird die Verwendung von Browsern die auf der "Blink"-Engine basieren und mindestens
1024x768 Pixel Bildschirmauflösung für die beste Darstellung empfohlen
 
Amateurfunk Die Beiträge sind, sofern nicht anders vermerkt, unter der folgenden Lizenz veröffentlicht:
GNU Free Documentation License 1.3 GNU Free Documentation License 1.3
verbindet!
Powered by MySQL Powered by PHP Diskussions- und Newsboard des DARC-Ortsverbandes I40 | Powered by YaBB SE
© 2001-2004, YaBB SE Dev Team. All Rights Reserved.
- modified by Andreas Richter (DF8OE)
Impressum & Disclaimer
Valid XHTML 1.0! Valid CSS!