ممنون از توضیحات شما.
کامل متوجه شدم
سلام دوست عزیز، لطفا کد مربوط به اون جلسه رو هم ارسال کنید که من بدونم در مورد کدوم قسمت از کد ها صحبت میکنیم.
ولی عبارت هایی مثل stringAmade و serialKamel برای تاکید بر اینکه شما هر اسمی که دوست داشته باشید میتونید روی متغیر ها بگذارید استفاده شده اند.
ما سعی کردیم داخل بسته هر خط کدی که زده شده رو توضیح بدیم. برای این مورد هیچ توضیحی داده نشده؟ اگر آدرس دقیق این قسمت رو بدید که دقیقه چند کدوم فصل هست که من همینجا مفصل تر براتون توضیحش بدم.
سلام وقتتون بخیر
میشه لطفا بفرمایید که stringAmade و serialkamel دقیقا چکار میکنن؟
توی آموزش ها توضیحش ندادین به صورت واضح.
ممنون میشم
سلام سرکار خانم اسکندری
با توجه به فرمایشات شما این بخش از آموزش بررسی شد
پارامترهای stringAmade و serialKamel که در کد پروژه trafficlight وارد شدند در اپیزود قبلی همین فصل تحت عنوان پروژه wiredSmartHome توضیح داده شده بودن که یک بخش اون شامل خوندن ورودی سریال میکروکنترلر بوده و به دلیل تشابه کد مورد نیاز در این اپیزود مجددا توضیحات و کدنویسی از ابتدا انجام نشده و این بخش کد از پروژه قبلی استفاده شده
در ادامه مهندس معین توضیح روند کار این بخش از کد رو خدمتتون اعلام می کنند
سلام دوست عزیز، من کد رو دیدم. ما در این کد دنبال این هستیم که ببینیم که آیا کاربر عبارت roshan رو برای میکرو ارسال کرده و یا khamush رو ؟ عملکرد کد به این صورت هست که شما در loop اصلی برنامه، تابع serialKhan رو صدا میزنید. این تابع میاد چک میکنه ببینه آیا روی پورت سریال، چیزی برای میکرو ارسال شده یا نه. اگر ارسال شده بود، اون رو به stringKamel اضافه میکنه. برای اینکه بفهمه که آیا به انتهای کاراکتر ها رسیده یا نه هم دنبال
میگرده که به معنی new line هست.
پس فرض کنید که ما عبارت roshan رو ارسال میکنیم. داخل تنظیمات ترمینال گفتیم که آخر این عبارت، یک new line هم ارسال کنه. پس برای میکرو اینطوری این عبارت ارسال میشه:
اول r بعد o و به ترتیب s و h و a و n و
تابع serialKhan اول r رو میگیره. چک میکنه ببینه آیا r برابر
هست یا نه؟ میبینه نیست. پس به stringKamel اون رو اضافه میکنه. stringKamel اولش خالی بوده پس الان میشه r
بعدش o میاد. آیا o با
برابره؟ نه. پس دوباره به انتهای stringKamel اضافه میشه. پس الان مقدار stringKamel برابر ro هست.
همینطوری پیش میره تا مقدار stringKamel برابر roshan میشه و حالا آخرین کاراکتر یعنی
میرسه. آیا
به
برابره؟ بله! پس دیگه با stringKamel کاری نداریم و به کد خبر میدیم که یک متن کامل رو دریافت کردیم. چطوری؟ از متغیر stringAmade استفاده میکنیم و مقدار اون رو true میکنیم.
حالا توی loop اصلی برنامه، این کد if(stringAmade) که قبلا اجرا نمیشد، اجرا میشه و میره داخلش و چک میکنه میبینه که عبارت roshan اومده و بعد خروجی رو روشن میکنه. وقتی که کارش رو تموم کرد، مقدار stringKamel و خالی میکنه و stringAmade رو هم برابر false میکنه که کد آماده بشه برای دریافت عبارت بعدی.
سلام وقتتون بخیر
درون برنامه نویسی trafficlight
برنامه نویسی که مختص چراغ راهنمایی و رانندگی هست