Arduino:
স্ট্যান্ডার্ড এররে লিখন
কিভাবে:
Arduino মূলত স্ট্যান্ডার্ড আউটপুট এবং স্ট্যান্ডার্ড এরর এর মধ্যে পার্থক্য করে না যেমনটা সাধারণ কম্পিউটিং সিস্টেম করে থাকে। Serial.print()
এবং Serial.println()
উভয় পদ্ধতিই একই সিরিয়াল আউটপুটে লেখে, যা সাধারণত Arduino IDE সিরিয়াল মনিটরে দেখা যায়। তবে, আমরা বিশেষভাবে এরর মেসেজগুলি ফরম্যাটিং করে অথবা তাদেরকে একটি বিকল্প আউটপুটে নির্দেশ করে, যেমন এসডি কার্ডের উপর একটি ফাইলে অথবা একটি নেটওয়ার্ক সংযোগের মাধ্যমে লেখা অনুকরণ করতে পারি।
stderr অনুকরণ করতে, আপনি “ERROR:” ট্যাগের সাথে এরর মেসেজগুলি চিহ্নিত করতে পারেন যাতে সিরিয়াল মনিটরে তা আলাদা করা যায়:
void setup() {
Serial.begin(9600); // 9600 বোড রেটে সিরিয়াল যোগাযোগ শুরু করুন
}
void loop() {
int result = someFunction();
if (result == -1) {
// এরর মেসেজের আগে 'ERROR:' যোগ করে stderr অনুকরণ
Serial.println("ERROR: ফাংশনটি সম্পাদনে ব্যর্থ হয়েছে।");
} else {
Serial.println("ফাংশনটি সফলভাবে সম্পাদিত হয়েছে।");
}
delay(1000); // লুপ পুনরায় শুরু করার আগে এক সেকেন্ড অপেক্ষা করুন
}
int someFunction() {
// একটি ডামি ফাংশন যা এররে -1 ফেরত দেয়
return -1;
}
Arduino IDE সিরিয়াল মনিটরে নমুনা আউটপুট এরকম দেখতে পারেন:
ERROR: ফাংশনটি সম্পাদনে ব্যর্থ হয়েছে।
বিভিন্ন শারীরিক আউটপুটে লেখনের মত আরও জটিল পদ্ধতি প্রয়োজন হলে, তৃতীয়-পক্ষের লাইব্রেরি অথবা অতিরিক্ত হার্ডওয়্যারের ব্যবহার প্রয়োজন হতে পারে। যেমন, এসডি কার্ডে এরর মেসেজ লগ করার জন্য SD
লাইব্রেরির প্রয়োজন হয়:
#include <SPI.h>
#include <SD.h>
File myFile;
void setup() {
Serial.begin(9600);
if (!SD.begin()) {
Serial.println("ERROR: এসডি কার্ড শুরু করার প্রক্রিয়া ব্যর্থ হয়েছে!");
return;
}
myFile = SD.open("error.log", FILE_WRITE);
if (myFile) {
myFile.println("ERROR: ফাংশনটি সম্পাদনে ব্যর্থ হয়েছে।");
myFile.close(); // কন্টেন্ট সংরক্ষণ করার জন্য ফাইলটি বন্ধ করতে ভুলবেন না
} else {
Serial.println("ERROR: error.log খোলার প্রক্রিয়া ব্যর্থ হয়েছে!");
}
}
void loop() {
// আপনার মূল কোড এখানে যাবে
}
এই পদ্ধতির সাথে, আপনি স্বাভাবিক প্রোগ্রাম আউটপুট এবং এরর মেসেজগুলি শহ মৃত্যু-বিশ্লেষণ সহায়তার জন্য একটি এসডি কার্ডের error.log
ফাইলে পরিচালনা করে প্রাথমিক আউটপুট চ্যানেল যাতে গোলমাল হয় না তা নিশ্চিত করেন।