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í.