বিড়াল কীভাবে সিরিয়াল বন্দরের বাড রেট জানতে পারে?


24

catসিরিয়াল সংযোগের জন্য আমি আমার এফপিজিএ ডেভেলপমেন্ট বোর্ডের কাছ থেকে কনসোলে ডিবাগিংয়ের তথ্যটি নিয়মিত দেখতে ব্যবহার করি তবে বাউডের হারটি কী তা আমাকে কখনও লিনাক্সকে জানাতে হয়নি। সিরিয়াল সংযোগের বাড রেট কী তা বিড়াল কীভাবে জানতে পারে?


আপনি minicomআগের মতো বন্দর স্থাপন করেননি ? এটি এখানে কাজ করে না। আমি সিরিয়াল পোর্ট প্যারামিটারগুলি সেট আপ করার পরেই আমি ব্যবহার করতে পারি cat
মার্কো

এটি বাউড্রেট সেট করে না বা জানে না, এটি কেবল ডিভাইস থেকে পড়ে।
উলরিচ ড্যাঙ্গেল

@ মার্কো, আমি জানি না যে ডিবিয়ানের কোনও ডিফল্ট বাউড রেট সেটিং আছে কিনা, তবে আমি এটি কোথাও সেট করি নি।
stanri

উত্তর:


34

sttyউপযোগ সেট বা ডিভাইস তার মান ইনপুট যে জন্য টার্মিনাল ইনপুট / আউটপুট বৈশিষ্ট্যের উপর রিপোর্ট। নির্দিষ্ট বৈশিষ্ট্যগুলির সাথে সংযোগ স্থাপনের সময় এই বৈশিষ্ট্যগুলি ব্যবহৃত হয়। catবাউড রেট যেমন জানে না, এটি নির্দিষ্ট সংযোগ থেকে প্রাপ্ত স্ক্রিনের তথ্যের উপর প্রিন্ট করে।

উদাহরণ হিসাবে stty -F /dev/ttyACM0ttyACM0 ডিভাইসের বর্তমান বাড রেট দেয়।


1
তবে স্টটি বাউড রেট সম্পর্কে কীভাবে জানবে? এই উত্তরটি কেবল কোনওভাবে প্রশ্নকে পিছনে ফেলে, যদি বাউডের হারটি স্বয়ংক্রিয়ভাবে আবিষ্কার করা যায় বা কোনও পর্যায়ে সেট করা হয় (অর্থাত্ stty)
মানবতাআন্ডপিস

@ হিউম্যানিটিএন্ডপিস আমি ধরে নিই যে ডিফল্ট বাউড রেটটি আমি ব্যবহার করছিলাম। ডিভাইসে বাড রেট পরিবর্তন করার পরে আমার পরে স্টটিয়ের মাধ্যমে এটি পরিবর্তন করার দরকার হয়েছিল।
stanri

9

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আউটপুট অকট্যাল রয়েছে।

আপনি পরীক্ষা করতে পারেন এবং এই সংখ্যাগুলি একটি নতুন বুটে কেমন এবং পরে সেগুলি পরিবর্তন হয় কিনা তা দেখতে পারেন।


2
আমি sttyকমান্ডটি পেয়েছি যা এটি কেবল এটি করে does উদাহরণস্বরূপ, stty -F /dev/ttyACM0আমাকে বর্তমান বাড রেট দেয় যা আমার ডিভাইসের জন্য সঠিক।
stanri

অবশ্যই এটি একটি আরও ভাল ধারণা।
ক্লেক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.