मैं नियमित रूप catसे धारावाहिक कनेक्शन पर अपने FPGA विकास बोर्ड से कंसोल में डिबगिंग जानकारी देखने के लिए उपयोग करता हूं, लेकिन मुझे कभी भी यह बताने की ज़रूरत नहीं है कि बॉड दर क्या है। बिल्ली कैसे जानती है कि सीरियल कनेक्शन की बॉड दर क्या है?
मैं नियमित रूप catसे धारावाहिक कनेक्शन पर अपने FPGA विकास बोर्ड से कंसोल में डिबगिंग जानकारी देखने के लिए उपयोग करता हूं, लेकिन मुझे कभी भी यह बताने की ज़रूरत नहीं है कि बॉड दर क्या है। बिल्ली कैसे जानती है कि सीरियल कनेक्शन की बॉड दर क्या है?
जवाबों:
sttyउपयोगिता सेट या डिवाइस अपने मानक इनपुट है कि के लिए टर्मिनल आई / ओ विशेषताओं पर रिपोर्ट। इन विशेषताओं का उपयोग उस विशेष माध्यम पर संबंध स्थापित करते समय किया जाता है। catबॉड दर को इस तरह से नहीं जानता है, बल्कि यह विशेष कनेक्शन से प्राप्त स्क्रीन जानकारी पर प्रिंट करता है।
एक उदाहरण के रूप stty -F /dev/ttyACM0में ttyACM0 डिवाइस के लिए वर्तमान बॉड दर देता है।
stty)
catपोर्ट के लिए पहले से ही कॉन्फ़िगर की गई सभी सेटिंग्स का उपयोग करता है। इस छोटे से सी स्निपेट से आप बॉड दर को किसी विशेष धारावाहिक पोर्ट के लिए वर्तमान में देख सकते हैं:
मिल-बॉड-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;
}
चलाओ:
./get-baud-rate < /dev/ttyS0 # or whatever your serial port is
आपके द्वारा प्राप्त किए गए नंबरों को ऊपर देखा जा सकता है /usr/include/asm-generic/termios.h, जहां #defineइस तरह के B9600आदि हैं। ध्यान दें कि हेडर फ़ाइल और get-baud-rateआउटपुट में संख्याएँ ऑक्टल में हैं।
शायद आप प्रयोग कर सकते हैं और देख सकते हैं कि ताजा बूट पर ये संख्याएं क्या हैं और क्या वे बाद में बदलते हैं।
sttyकमांड मिली, जो सिर्फ यही करती है। उदाहरण के लिए, stty -F /dev/ttyACM0मुझे वर्तमान बॉड दर देता है, जो मेरे डिवाइस के लिए सही है।
minicomपहले की तरह पोर्ट सेट नहीं किया है ? यह यहाँ काम नहीं करता है। सीरियल पोर्ट पैरामीटर सेट करने के बाद ही मैं उपयोग कर सकता हूंcat।