কোডটি এমইআর ( স্পিরিট অ্যান্ড অপারচিউনিটি ) এর উপর ভিত্তি করে তৈরি করা হয়েছে , যা তাদের প্রথম ল্যান্ডার, এমপিএফ ( সোজোরনার ) এর ভিত্তিতে ছিল । এটা তোলে C- এর 3.5 মিলিয়ন লাইন (তা স্বতঃজেনারেট অনেক), একটি RA50 প্রসেসর দ্বারা উত্পাদিত বুকে গুলি চালাচ্ছেন বিএই এবং VxWorks অপারেটিং সিস্টেম। দশ লক্ষেরও বেশি লাইন হাতে কোডড ছিল।
কোডটি 150 টি পৃথক মডিউল হিসাবে প্রয়োগ করা হয়েছে, প্রতিটি পৃথক ফাংশন সম্পাদন করে। উচ্চ মিলিত মডিউলগুলি এমন উপাদানগুলিতে সংগঠিত করা হয় যা সেগুলিতে থাকা মডিউলগুলি বিমূর্ত করে এবং "নির্দিষ্ট ফাংশন, ক্রিয়াকলাপ বা আচরণ নির্দিষ্ট করে দেয়" " এই উপাদানগুলি আরও স্তরগুলিতে সংগঠিত হয় এবং সেখানে "শীর্ষ-স্তরের 10 টিরও বেশি উপাদান নেই।"
উত্স: কীনোট আলাপ দ্বারা বেঞ্জামিন Cichy এ মহাকাশযানের ফ্লাইট সফটওয়্যার (FSW -10) এ 2010 ওয়ার্কশপ , স্লাইড, অডিও এবং ভিডিও (মিশন ওভারভিউ, স্লাইড 80 এ স্থাপত্য আলোচনা দিয়ে শুরু হয়)।
হ্যাকার নিউজের কেউ জিজ্ঞাসা করেছিলেন "বেশিরভাগ সি কোডটি স্বয়ংক্রিয়ভাবে উত্পন্ন হয় তার মানে কি তা নিশ্চিত নয়। কোনটি থেকে?"
আমি ১০০% নিশ্চিত নই, যদিও সম্ভবত সে বছর বা অন্য বছরে একটি পৃথক উপস্থাপনা রয়েছে যা তাদের স্বয়ংক্রিয় উত্পাদন প্রক্রিয়া বর্ণনা করে describes আমি জানি যে এফএসডাব্লু -11 সম্মেলনে এটি সাধারণভাবে জনপ্রিয় একটি বিষয় ছিল।
সিমুলিঙ্ক একটি সম্ভাবনা। এটি একটি ম্যাটল্যাব উপাদানটি যান্ত্রিক প্রকৌশলীগুলির মধ্যে জনপ্রিয়, এবং তাই বেশিরভাগ নেভিগেশন এবং নিয়ন্ত্রণ প্রকৌশলীদের, এবং তাদের কোডিংয়ের কথা চিন্তা না করে জিনিসগুলিকে 'কোড' এবং সিমুলেট করার অনুমতি দেয়।
মডেল-ভিত্তিক প্রোগ্রামিং অবশ্যই এমন একটি জিনিস যা শিল্প ধীরে ধীরে সচেতন হয়ে উঠছে, তবে আমি জানি না এটি জেপিএলে কতটা ভালভাবে জড়িয়েছে বা প্রকল্প শুরু হওয়ার পরে তারা যদি এটি ব্যবহার করতে বেছে নিয়েছিল।
তৃতীয় এবং সম্ভবত সম্ভাবনা যোগাযোগ কোডের জন্য। সমস্ত স্পেস সিস্টেমের সাথে, আপনাকে গ্রাউন্ড সফ্টওয়্যার থেকে ফ্লাইট সফ্টওয়্যারটিতে কমান্ড প্রেরণ করতে হবে, এবং ফ্লাইট সফ্টওয়্যার থেকে টেলিমেট্রি গ্রহণ করতে হবে এবং স্থল সফ্টওয়্যার দিয়ে এটি প্রক্রিয়া করতে হবে। প্রতিটি কমান্ড / টেলিমেট্রি প্যাকেট একটি ভিন্ন ভিন্ন ডেটা কাঠামো, এবং প্রয়োজনীয় যে উভয় পক্ষই একই প্যাকেট সংজ্ঞা থেকে কাজ করছে এবং প্যাকেটটি ফর্ম্যাট করে যাতে এটি একদিকে সঠিকভাবে ফর্ম্যাট হয় এবং অন্যদিকে পার্স হয় ed এর মধ্যে ডেটা টাইপ, আকার এবং এন্ডিয়েননেস সহ পুরোপুরি সঠিক জিনিস পাওয়া জড়িত (যদিও আধুনিকতা সাধারণত একটি বিশ্বব্যাপী জিনিস; আপনার বিভিন্ন প্রান্তিকতা সহ একাধিক প্রসেসর বহন করতে পারেন)।
তবে এটি কেবল পৃষ্ঠতল। লগিং, কমান্ড / টেলিমেট্রি বৈধকরণ, সীমাবদ্ধতা পরীক্ষা করা, এবং ত্রুটি পরিচালনার মতো জিনিসগুলি পরিচালনা করতে আপনার উভয় পক্ষের প্রচুর পুনরাবৃত্ত কোড দরকার। এবং তারপরে আপনি আরও পরিশীলিত জিনিসগুলি করতে পারেন। বলুন যে আপনার কাছে একটি হার্ডওয়্যার রেজিস্ট্রার মান সেট করার জন্য একটি আদেশ রয়েছে এবং সেই মানটি নির্দিষ্ট প্যাকেটে টেলিমেট্রিতে ফিরে পাঠানো হয়। আপনি এই গ্রাহক সফ্টওয়্যার তৈরি করতে পারেন যা এই টেলিমেট্রি পয়েন্ট পর্যবেক্ষণ করে যখন এই নিবন্ধের মান সেট করা থাকে, শেষ পর্যন্ত টেলিমেট্রি পরিবর্তনটি প্রতিবিম্বিত করে changes এবং অবশ্যই, কিছু টেলিমেট্রি পয়েন্টগুলি অন্যের চেয়ে গুরুত্বপূর্ণ (যেমন মূল বাসের স্রোত) এবং একাধিক প্যাকেটে নামার জন্য মনোনীত করা হয়, যার মধ্যে ফ্লাইটের পাশের অতিরিক্ত অনুলিপি এবং গ্রাউন্ড সাইডে ডেটা-নকল অন্তর্ভুক্ত রয়েছে।
সব কিছুর পরেও, স্ট্যাটিক টেক্সট ফাইলগুলির একটি সংগ্রহ (এক্সএমএল, সিএসভি বা কিছু ডিএসএল / আপনার কী আছে) লিখতে অনেক সহজ (আমার মতে), পার্ল / পাইথন স্ক্রিপ্টের মাধ্যমে চালনা এবং প্রেস্টো! কোড!
আমি জেপিএল তে কাজ করি না, তাই আমি ব্যতিক্রম ভিডিওতে নেই এমন কোনও বিবরণ দিতে পারি না। আমি শুনেছি যে অটোজেনারেটেড সি কোডটি পাইথন স্ক্রিপ্টগুলি দ্বারা রচিত এবং এফএসডাব্লু নেতৃত্বের উপর নির্ভর করে কোনও প্রকল্পে অটোকোডিংয়ের পরিমাণ অনেক বেশি হয়।