stty
obslužný program nastavuje nebo hlásí charakteristiky I/O terminálu pro zařízení, které je jeho standardním vstupem. Tyto vlastnosti se používají při navazování spojení přes toto konkrétní médium. cat
nezná přenosovou rychlost jako takovou, spíše vytiskne na obrazovku informace přijaté z konkrétního připojení.
Jako příklad stty -F /dev/ttyACM0
udává aktuální přenosovou rychlost pro zařízení ttyACM0.
cat
pouze používá jakékoli nastavení, pro které je port již nakonfigurován. S tímto malým úryvkem C můžete vidět přenosovou rychlost aktuálně nastavenou pro konkrétní sériový port:
get-baud-rate.c
#include <termios.h>
#include <unistd.h>
#include <stdio.h>
int main() {
struct termios tios;
tcgetattr(0, &tios);
speed_t ispeed = cfgetispeed(&tios);
speed_t ospeed = cfgetospeed(&tios);
printf("baud rate in: 0%o\n", ispeed);
printf("baud rate out: 0%o\n", ospeed);
return 0;
}
Spusťte to:
./get-baud-rate < /dev/ttyS0 # or whatever your serial port is
Získaná čísla lze vyhledat v /usr/include/asm-generic/termios.h
, kde je #define
s jako B9600
atd. Všimněte si, že čísla v záhlaví souboru a v get-baud-rate
výstupy jsou v osmičkové soustavě.
Možná můžete experimentovat a zjistit, jaká jsou tato čísla na novém startu a zda se později změní.