সি ব্যবহার করে পিআই এর তাপমাত্রা পান


11

আমি জানি আপনি vcgencmd সরঞ্জামটি ব্যবহার করে তাপমাত্রা পেতে পারেন তবে আমি ভাবছিলাম যে ভিসিএনসিএমডি এর স্টাডআউট না পড়ে তাপমাত্রাটি ক্রমাগতভাবে পেতে সি তে ব্যবহার করতে পারি এমন কোন এপিআই রয়েছে কিনা?


: আপনি এই পক্ষে উপযোগী হতে পারে mjmwired.net/kernel/Documentation/sysfs-rules.txt
স্বর্ণকেশ

উত্তর:


13

এই উত্তরে বর্ণিত /sys/class/thermal/thermal_zone0/tempহিসাবে আপনি ফাইলটি পড়তে পারেন । এটি কমান্ড লাইন থেকে পরিমাপ সম্পর্কে, এবং ফাইলটি পড়া হয় । তবে আপনার কেবলমাত্র সি তে ফাইলটি খুলতে সক্ষম হওয়া উচিত তাপমাত্রাটি মিলি-ডিগ্রি সেন্টিগ্রেড এবং ASCII নম্বর হিসাবে ফিরে আসে। সম্ভবত এটি পরীক্ষিত নয় :)cat

FILE *temperatureFile;
double T;
temperatureFile = fopen ("/sys/class/thermal/thermal_zone0/temp", "r");
if (temperatureFile == NULL)
  ; //print some message
fscanf (temperatureFile, "%lf", &T);
T /= 1000;
printf ("The temperature is %6.3f C.\n", T);
fclose (temperatureFile);

অভিজ্ঞতাই আমাকে বিশ্বাস করতে পরিচালিত করেছে যে উচ্চ স্তরের স্ট্রিম ইন্টারফেস প্রোক / সিএস ফাইলগুলিতে নির্ভরযোগ্য নয়, এবং আপনার ব্যবহার করা উচিত open()এবং read()পরিবর্তে - তবে ওয়াইএমএমভি। একটি "লিবিসিসফস" রয়েছে, তবে এটি পরিত্যাগ করা হয়েছে এবং কার্নেল ডেভস স্পষ্টভাবে লোকদের এ থেকে দূরে থাকতে বলেছে।
স্বর্ণলোকস

আকর্ষণীয়! আমি এটি জানতাম না, ভেবেছিলাম এটি কেবল কোনও ফাইলের মতোই আচরণ করে। আপনি খুব ভাল হতে পারে।
ফ্রেপা

2

@ ফ্রেপা যেমন বলেছিল, রাস্পবেরিপি-র জন্য এখন কার্নেল তাপচালক রয়েছে তাই এটি ব্যবহার করার সহজতম উপায়। আমি যতদূর জানি, vgencmdতবে সেভাবে কাজ করে না । তাপীয় কার্নেল চালকের অস্তিত্বের আগেই এটি তাপমাত্রা পড়তে সক্ষম হয়েছিল। এটি mailboxজিপিইউতে চলমান ভিডিওকোএস ওএসের সাথে যোগাযোগের জন্য ডেকে আনা রাস্পবেরিপিতে উপলব্ধ বিশেষ যোগাযোগ ব্যবস্থা ব্যবহার করছে । এটি আংশিকভাবে এখানে নথিভুক্ত করা হয়


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