আইওটির জন্য সি বা সি ++ এ সাধারণ APIs


9

আইওটি-র জন্য সাধারণ বা সাধারণ এপিআই (বা গ্রন্থাগারগুলি) কোন ডকুমেন্টেশন, প্রোগ্রামিং ইন্টারফেসের একটি সেট থাকার অর্থে? (যেমন POSIX অপারেটিং সিস্টেমের জন্য, Qt টি GUI ইত্যাদির জন্য ইত্যাদি ....)।

এই সংক্ষিপ্ত পৃষ্ঠাটি আমার প্রশ্নকে অনুপ্রাণিত করে (আমি আইওটির জন্য স্ট্যাটিক উত্স কোড বিশ্লেষণ সরঞ্জাম বিকাশ করতে আগ্রহী)। আমি কেবল আইনী মানটিই খুঁজছি না, তবে সাধারণভাবে ব্যবহৃত এপিআই বা লাইব্রেরি-সি বা সি ++ এর জন্য তাদের জন্য বিদ্যমান শিরোনাম ফাইলগুলি সহ বিভিন্ন শিল্প ডোমেনগুলি অনুসন্ধান করছি। আমি ওয়েব API গুলি (কিছু HTTP অনুরোধ সংজ্ঞায়িত কনভেনশন) বা কোনও API বা লাইব্রেরি প্রয়োগ না করে কেবল নেটওয়ার্ক প্রোটোকলে আগ্রহী নই ।

(সুতরাং আমি নিজেকে আইওটি অ্যাপ্লিকেশনগুলি বিকাশে আগ্রহী নই, তবে আমি আইওটি সফটওয়্যার বিকাশকারীদের সহায়তা করার জন্য সোর্স কোড ওয়ার্কিং এবং বিশ্লেষণ করে সফটওয়্যার ইঞ্জিনিয়ারিং সরঞ্জাম বিকাশ করতে চাই)

এমনকি আমি শিল্পের নির্দিষ্ট আইওটি এপিআই বা লাইব্রেরি দ্বারা আগ্রহী হতে পারি, যেমন স্বাস্থ্যসেবা, সরবরাহ, পরিবহন, স্মার্ট গ্রিড, স্মার্ট বিল্ডিং ইত্যাদি; যতক্ষণ না এটি সি বা সি ++ এপিআই বা লাইব্রেরি হয়।


আমি স্ট্যাটিক সোর্স কোড বিশ্লেষণে কাজ করে এমন একটি গবেষণা গ্রুপে আছি এবং আইওটি সফটওয়্যার বিকাশকারীকে সহায়তা করতে আমরা সি বা সি ++ উত্স কোড বিশ্লেষণকারী সরঞ্জামগুলি বিকাশ করতে চাই।

যাইহোক, এই কাজ করার আগে আমার অর্থায়ন করার উপায় খুঁজে বের করতে হবে।

আইওটি প্ল্যাটফর্মগুলিকে লক্ষ্য করে উত্স কোড (সি, সি ++, এবং অ্যাডায় প্রয়োজন হয় ...) লেখার জন্য বিকাশকারী এবং ইঞ্জিনিয়ারদের জন্য আমরা একটি বিশেষায়িত সরঞ্জাম (সর্বাধিক বিদ্যমান প্রযুক্তির উপরে ওপেন সোর্স) বিকাশ করার পরামর্শ দিই। এই সরঞ্জামটি লক্ষ্যযুক্ত সফ্টওয়্যার বিকাশ কিটে একীভূত করা হবে। এই সরঞ্জামটি আইওটি সফটওয়্যার বিকাশকারীকে কোডিং বিধি, আক্রমণকারী এবং এই সফ্টওয়্যার ফ্রেমওয়ার্কগুলিতে নির্দিষ্ট ভাল অভ্যাসগুলির বিরুদ্ধে উত্স কোডের বৈধতা বিশ্লেষণ করে এবং পরীক্ষা করে সহায়তা করতে পারে। মূল উদ্দেশ্যটি হ'ল সফটওয়্যারটির মান বাড়ানো এবং বাজারের সময়কে ত্বরান্বিত করা। প্রাসঙ্গিক হলে, সরঞ্জামটি সফ্টওয়্যার কর্মক্ষমতা এবং / অথবা কোডের আকার হ্রাস করতে নির্দিষ্ট উত্স কোড অপ্টিমাইজেশন করতে পারে।


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


@ বাসাইল এই বাণিজ্যিক বা FOSS হবে? যাইহোক, এমন কোনও উপায় আছে যা আমরা আপনার অগ্রগতি অনুসরণ করতে পারি? আমি বুঝতে পারি যে কয়েক মাস, এমনকি কয়েক বছর সময়ও লাগতে পারে, তাই কোনও ইউটিএল দেখতে বা একটি মেইলিং তালিকা খুব স্বাগত জানায়
মাওগ

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

1
আপনি কি সিএমএসআইএসের মতো জিনিস বোঝাতে চান? keil.com/pack/doc/CMSIS/ জেনারেল
html/

1
আইওটি করার সময় এমকিউটিটি এবং মোসকুইটো বেশ জনপ্রিয়। হতে পারে Libmosquitto API আপনার কোড বিশ্লেষকের জন্য একটি ভাল লক্ষ্য?
বেনস কৌলিক্স

1
আপনি আগ্রহী বিশেষত আইওটির কোনও দিক রয়েছে কি? বেনস কৌলিক্সের পরামর্শ অনুসারে যোগাযোগের দিক রয়েছে (এমকিউটিটি, কোপ, L লওপান ইত্যাদি) বা অ্যান্ড্রয়েড থিংস বা উবুন্টু আইওটির মতো পুরো আইওটি প্ল্যাটফর্ম রয়েছে । আপনি কোন অংশটি মোকাবেলা করতে চান?
Aurora0001

উত্তর:


8

বেসিল, আমি মনে করি যে আমরা এখানে একটি দুর্দান্ত পার্থক্য মিস করছি।

আপনি যখন আইওটি-র স্ট্যান্ডার্ডের মতো প্যাসিক্সের কথা বলবেন, তখন আমি মনে করি যে আপনি এমন লাইব্রেরিগুলির কথা বলছেন যা একটি প্রোটোকল জড়ান।

টেলিফোনি এবং স্যাটেলাইট যোগাযোগের জন্য প্রোটোকল স্ট্যাক বাস্তবায়নের ( কাশি ) দশক ধরে নিযুক্ত একজন হিসাবে , আমি বলতে পারি (আপনি সম্ভবত সচেতন) এই প্রোটোকলগুলি প্রয়োজন অনুসারে ইতিমধ্যে কঠোরভাবে সংজ্ঞায়িত হয়েছে। উদাহরণস্বরূপ, জিগবি https://en.wikedia.org/wiki/IEEE_802.15.4 দ্বারা পরিচালিত

এই মানদণ্ডগুলি প্রেরণ করার জন্য বার্তাগুলি নির্দিষ্ট করে দেয় এবং সংজ্ঞায়িত করে যে বাইট 0 এর অর্থ এটি, বাইট 1 থেকে 4 এর অর্থ, ইত্যাদি, গল্পসমূহ ;-)

আমি যেমন বলেছি, যে কোনও প্রদত্ত প্রোটোকলের জন্য, উত্পাদনগুলির আধিক্য থাকতে পারে। এবং প্রদত্ত যে কোনও প্রস্তুতকারকের জন্য, একাধিক সফ্টওয়্যার লাইব্রেরি থাকতে পারে, যা আপনার সমস্যা।

আপনার কাজটি যতক্ষণ না একাধিক এপিআইএস উপলব্ধ থাকে ততক্ষণ পর্যন্ত এটি অত্যন্ত কঠিন, যা প্রতিটি প্রোটোকলকে জড়িয়ে রাখে।

দুঃখের বিষয়, কেবলমাত্র একটি পসিক্সের মতো এপিআই থাকবে যদি কোনও সংস্থা প্রভাবশালী হয়। কোনও বড় সরকার এতে প্রচুর অর্থ নিক্ষেপ করলে একটি পাতলা সম্ভাবনা থাকতে পারে, তবে আমি ঘটতে দেখছি না। ওপেন সোর্স সম্প্রদায়টি আমি লিনাক্সের মতো প্রচেষ্টা হিসাবে অন্য একমাত্র সুযোগ।


বিটিডব্লু, আমি মনে করি না যে আপনি এটি যথেষ্ট পরিষ্কার করে দিয়েছেন যে আপনার কেবল অন্য স্ট্যাটিক কোড বিশ্লেষক হবে না, এটি সাধারণ কোডের জন্য নয়, নির্দিষ্ট কিছু এপিআইয়ের জন্য। আপনি এটি বলছেন না, সাজান, কিন্তু পরিষ্কারভাবে যথেষ্ট নয়, আইএমও। আপনি যখন এটি সঠিকভাবে সংজ্ঞায়িত করবেন, আপনি বুঝতে পারবেন আপনার প্রকল্পটি আসলে কী। আপনি যদি ইতিমধ্যে জানেন, আপনি এটির উপর জোর দিচ্ছেন বলে মনে হচ্ছে না (তবে সম্ভবত আমি যথেষ্ট ভাল করে পড়ছি না, দু'টি সভার মধ্যে ছুটে এসেছি)।

POSIX এপিআই এর সিনট্যাক্সটি সংকলক দ্বারা পালিশ করা হয়েছে, যেমন আপনি অধ্যয়ন করেন এমন কোনও এপিআইয়ের বাক্য গঠন হবে। সুতরাং আমি অনুমান করি যে আপনি সম্ভাব্য বিপজ্জনক কোডের সন্ধান করছেন, যেমন ইউনিটায়িটাইজড রিসোর্স ব্যবহার, বরাদ্দকৃত সম্পদগুলি নিখরচায় না করা ইত্যাদি - এটি কি সঠিক?

এটি দুর্দান্ত প্রকল্প হিসাবে মনে হচ্ছে, এবং আমি এই প্রশ্নটি অভিনয় করেছি।


এখানে চিত্র বর্ণনা লিখুন


1
আমি এপিআইগুলির শব্দার্থবিজ্ঞানের প্রতি আগ্রহী (কেবল বা বেশিরভাগ তাদের সিনট্যাক্সের নয় )। এবং হ্যাঁ, আপনি উল্লিখিত জিনিসগুলির (এবং আরও অনেক কিছু) জন্য আমি সেই এপিআই ব্যবহার করে কোডটি বিশ্লেষণ করতে চাই। এটি বর্তমানে কেবল একটি মোটামুটি ধারণা (এবং আমি এটি প্রয়োজনের সাথে খাপ খাইয়ে নেব), এবং আমি এখনও এটির অর্থায়নের জন্য উপায়গুলি (বিশেষত সহযোগী গবেষণা ও উন্নয়ন প্রকল্পগুলি) সন্ধান করার চেষ্টা করছি।
বেসিল স্টারিঙ্কেভিচ

বিটিডাব্লু, কিউটি উদাহরণ দেখায় যে একটি এপিআই (এবং একটি গ্রন্থাগার) গুরুত্বপূর্ণ হয়ে উঠতে পারে - এবং সম্ভবত প্রভাবশালী- এমনকি আইনী মান না হয়েও।
বেসিল স্টারিনকিভিচ

5

বিভিন্ন নেটওয়ার্কিং প্রোটোকলের মানগুলি ইতিমধ্যে ভালভাবে সংজ্ঞায়িত হয়েছে। আপনি যেটি খুঁজে পাওয়ার আশা করছেন তা হ'ল এটি একটি আইপিআই প্রয়োগকারী আইওটি ডিভাইসের অন্তর্নিহিত মানক আচরণ। লাইটের মতো কিছু () ফাংশন যা তাদের আলোকসজ্জার একটি ভগ্নাংশে লাইট চালু, বন্ধ করতে বা मंद করতে পারে; ডোর সেন্সর () যা সশস্ত্র বা নিরস্ত্র হতে পারে, বা দরজা খোলা বা দরজা বন্ধের ইভেন্টগুলিতে একটি সতর্কতার জন্য নিবন্ধন করতে পারে; আর যে সাজানোর. তবে আমি এমন কোনও এপিআই লাইব্রেরি সম্পর্কে অবগত নই যা অ্যাপ্লিকেশন নির্দিষ্ট নয়।

কারও যদি একটি থাকে তবে আপনি ডমোটিকজে কিছু খুঁজে পেতে পারেন । এটি একটি ওপেন সোর্স হোম অটোমেশন নিয়ন্ত্রক সি ++ তে লিখিত।


5

দ্রুত প্রতিক্রিয়া হিসাবে, আমি মনে করি না যে আইওটি-র জন্য একটি বিশেষ ধরণের গ্রন্থাগার রয়েছে, আমি বলব যে আইওটি মূলত " নতুন এমবেডেড সিস্টেম ", তারা কেবল নামটি পরিবর্তন করে এবং ক্লাউডের সাথে সংযোগ যুক্ত করেছিল।

সুতরাং আমি সি ++ প্রোগ্রামিংয়ের জন্য যা ব্যবহার করি তার উত্তর দিয়ে আমার রেফারেন্স পৃষ্ঠাটি http://www.cplusplus.com/ .com/

মূলত আইওটি-র জন্য আপনার যোগাযোগের গ্রন্থাগারগুলির প্রয়োজন হবে , আপনি যে কোনও প্রোটোকল ব্যবহার করুন (ইউএসবি, টিসিপি / আইপি, ইউডিপি, জিগবি, ইত্যাদি)

এছাড়াও, আপনার যদি যোগাযোগ থাকে তবে আপনার সুরক্ষা / এনক্রিপশন প্রয়োজন ।

এবং বাকীটি আপনি যে হার্ডওয়্যারটি নিয়ন্ত্রণ করছেন বা পরিমাপ করছেন তার উপর নির্ভর করবে। এই জাতীয় হার্ডওয়্যারের জন্য আপনার লাইব্রেরি (এপিআই / ফার্মওয়্যার) প্রয়োজন হবে ।

অবশ্যই এখানে আমি অনেক কিছুই মিস করছি ... আসুন অন্যের উত্তরগুলি দেখুন


2
সুতরাং মূলত, আপনি আমার স্থূল অন্তর্নিহিততা নিশ্চিত করছেন যে আইওটি এম্বেডড কম্পিউটিংয়ের সম্ভবত নতুন এম্বেডড লিনাক্স সিস্টেমের জন্য নতুন বজওয়ার্ড?
বেসাইল স্টারিঙ্কেভিচ

@ বেসাইলস্টারিঙ্কেভিচ এটি ডিভাইস শ্রেণীর উপর নির্ভর করে। ফিটনেস ট্র্যাকার (মাউন্টযুক্ত ফোন এক্সটেনশানগুলি দেখার বিপরীতে) লিনাক্স চালায় না। স্ব-চালিত নোডগুলি লিনাক্স চালায় না। হাব নোডগুলি, যা বিতরণকৃত সাম্পিউট সম্পাদন করে) সম্ভবত লিনাক্স চালায়। সুতরাং আমার স্ট্যাকের প্রান্ত থেকে মেঘ পর্যন্ত প্রসারিত আলাপের কথা।
শন হোলিহানে

1
ঠিক আছে। সুতরাং এই ডিভাইসে সাধারণত ব্যবহৃত API গুলি বা লাইব্রেরিগুলি কী।
বেসিল স্টারিঙ্কেভিচ

1
জিগবি যেহেতু একটি নেটওয়ার্ক প্রোটোকলের মতো দেখাচ্ছে তাই এটি সুযোগের বাইরে। যাইহোক, সি বা সি ++ জিগবি বাস্তবায়নে একটি সাধারণভাবে উপলব্ধ এপিআই আকর্ষণীয় হবে
বেসাইল স্টারিনকিভিচ

4

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

ক্লাউড সলিউশন সরবরাহকারী বেশ কয়েকটি সরবরাহকারী রয়েছে, তাদের সাধারণত তাদের নিজস্ব ক্লায়েন্ট এআইপি এবং বেছে নেওয়া শেষ পয়েন্ট অপারেটিং সিস্টেম থাকবে।

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


1
আমি আইওটি অ্যাপ্লিকেশনগুলি বিকাশ করছি না, তবে আমি আইওটি সফটওয়্যার বিকাশকারীদের সুবিধার্থে স্থির উত্স কোড বিশ্লেষণ সরঞ্জাম বিকাশ করতে চাই।
বেসাইল স্টারিঙ্কেভিচ

1
ঠিক আছে, সুতরাং (অনুমান করা) 4 বা 5 টি পৃথক স্ট্যাক রয়েছে যা প্রাসঙ্গিক এবং আপনি যদি কয়েকটি বাছাইয়ের মধ্যে দু'জন তিনজনের মধ্যে প্রভাবশালী হয়ে উঠতে চান তবে তাদের সমস্ত বিবেচনা করা উচিত।
শান হোলিহানে

1
আপনি কোন সুনির্দিষ্ট এপিআই বা লাইব্রেরি (সি বা সি ++ এ) সম্পর্কে ভাবছেন? আপনার উত্তরে তাদের নাম দিন!
বেসিল স্টারিঙ্কেভিচ

1
যদি আপনি এই জাতীয় এপিআইগুলিতে কিছু দল কাজ করে জানতে পারেন তবে দয়া করে তাদের আমার প্রশ্নটি ফরোয়ার্ড করুন এবং তাদের gcc-melt.org/IoT-03-interest-Starynkevitch.html
বেসাইল স্টারিনকিভিচ

3

আমি মনে করি আপনার উদ্দেশ্যটি বুস্টের সাথে কিছুটা মিল is

সি ++ গ্রন্থাগারগুলিকে বুস্ট করুন

তাদের লক্ষ্য "বিদ্যমান অনুশীলন" প্রতিষ্ঠা করা এবং রেফারেন্স বাস্তবায়ন সরবরাহ করা যাতে বুস্ট গ্রন্থাগারগুলি চূড়ান্ত মানককরণের জন্য উপযুক্ত।

সম্ভবত বুস্ট আইওটির একটি বড় খেলোয়াড় হতে পারে: এটি অবশ্যই সি ++ তে কিছু দুর্দান্ত উন্নতি করেছে।


1
মন্তব্যগুলি বর্ধিত আলোচনার জন্য নয়; এই কথোপকথন চ্যাটে সরানো হয়েছে ।
বেনামী 2

2

আইওটিভিটি হ'ল ওসিএফ স্পেসিফিকেশনের রেফারেন্স বাস্তবায়ন । আপনি তাদের গিটহাব সংগ্রহস্থলে ডকুমেন্টেশন এবং উত্স কোডটি পেতে পারেন ।

তাদের বৈশিষ্ট্যগুলির তালিকা থেকে :

  • সীমাবদ্ধ ডিভাইসগুলিতে স্থাপনার জন্য সি তে লিখিত কোর কার্যকারিতা
  • বেশিরভাগ কার্যকারিতা সি এবং সি ++ থেকে পাওয়া যায়

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

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