در نرم افزار DGUS برای تنظیم روشنایی صفحه فقط یک روش وجود ندارد. یک حالت مربوط به نور پسزمینه کل نمایشگر است، اما ابزار Brightness برای زمانی کاربرد دارد که بخواهید روشنایی یک ناحیه مشخص از صفحه را تغییر دهید.
این تفاوت در طراحی رابط کاربری مهم است. مثلاً ممکن است بخواهید یک بخش از صفحه در حالت فعال، روشنتر دیده شود یا یک قسمت از رابط را نسبت به پسزمینه کمرنگتر کنید. در چنین شرایطی Brightness به جای تغییر نور کل LCD، فقط محدودهای را که برای آن تعریف کردهاید تحت تأثیر قرار میدهد.
این ابزار زمانی کاربرد بیشتری پیدا میکند که کنترل روشنایی را از طریق یک VP به نرم افزار یا کنترلر اصلی دستگاه وصل کنید. در این حالت کافی است مقدار مناسب را در آدرس مشخصشده بنویسید و میزان روشنایی آن ناحیه تغییر میکند.

Brightness در DGUS چه کاری انجام میدهد؟
Brightness برای تنظیم روشنایی یک Area مشخص روی صفحه استفاده میشود. محدوده مورد نظر با مختصات مشخص میشود و مقدار روشنایی از طریق VP کنترل خواهد شد.
این موضوع را با Backlight اشتباه نگیرید.
وقتی Backlight را تنظیم میکنید، نور کل نمایشگر تغییر میکند. Brightness چنین کاری انجام نمیدهد و فقط همان ناحیهای را که برای کنترل تعریف کردهاید تحت تأثیر قرار میدهد.
در یک رابط گرافیکی میتوان از این قابلیت برای برجسته کردن یا کمرنگ کردن بخشی از محتوا استفاده کرد. برای نمونه، در یک صفحه میتوانید چند بخش داشته باشید و هنگام فعال شدن یک وضعیت، روشنایی یکی از آنها را تغییر دهید.
اضافه کردن Brightness به صفحه
برای شروع، صفحه مورد نظر را در DGUS باز کنید و کنترل Brightness را انتخاب کنید.
بعد از قرار دادن این کنترل روی صفحه، باید محدودهای را که قرار است روشنایی آن تغییر کند مشخص کنید. این محدوده از طریق مختصات و ابعاد Area تعریف میشود.
در تنظیمات کنترل، پارامترهای X و Y محل شروع ناحیه را تعیین میکنند و W و H اندازه محدوده نمایش را مشخص میکنند.
بنابراین اولین کار این است که دقیقاً مشخص کنید کدام قسمت صفحه باید تحت کنترل Brightness باشد.
برای مثال اگر یک کادر در سمت راست صفحه دارید و فقط میخواهید همان کادر کمنور یا پرنور شود، Area مربوط به Brightness باید روی همان محدوده تنظیم شود، نه کل صفحه.
این قسمت بیشتر از چیزی که به نظر میرسد مهم است؛ چون هر تغییری که در مقدار روشنایی انجام شود، فقط روی محدوده انتخابشده اعمال خواهد شد.

آدرس VP را مشخص کنید
بعد از تعیین محدوده، باید برای Brightness یک VP مشخص کنید.
VP همان آدرسی است که مقدار روشنایی از طریق آن به کنترل داده میشود. در عمل، یک آدرس برای کنترل در نظر میگیرید و بعد برنامه اصلی دستگاه میتواند مقدار روشنایی را در همان آدرس بنویسد.
مثلاً در DGUS برای کنترل خودتان VP را روی یک آدرس مشخص تنظیم کردهاید. حالا کنترلر باید مقدار روشنایی را در همین آدرس بنویسد.
این قسمت را بین طراحی DGUS و برنامه میکروکنترلر هماهنگ کنید. اگر در نرم افزار DGUS یک آدرس ست شده باشد اما برنامه مقدار را در رجیستر دیگری ارسال کند، روشنایی آن بخش مطابق انتظار تغییر نمیکند.
در پروژههای واقعی بهتر است از همان ابتدا جدول مشخصی برای VPها داشته باشید. وقتی تعداد کنترلها زیاد میشود، پیدا کردن اینکه هر رجیستر مربوط به کدام عنصر است، بدون یک ساختار مشخص دردسر ساز خواهد شد.
مقدار Brightness چطور تعیین میشود؟
Brightness یک مقدار عددی دریافت میکند که سطح روشنایی را مشخص میکند.
در DGUS بازه این مقدار از 0 تا 100 تعریف میشود. برای نمونه، مقدار 50 را میتوان برای قرار دادن روشنایی در سطح میانی استفاده کرد.
کنترلر از طریق همان VP مقدار مورد نظر را میفرستد و DGUS آن را دریافت کرده و سطح روشنایی ناحیه را بر اساس مقدار دریافتی تغییر میدهد.
برای نمونه، اگر VP مربوط به Brightness روی 0x5432 باشد، برنامه میتواند مقدار مورد نظر را در همین آدرس بنویسد. در چنین شرایطی دیگر نیازی نیست برای هر سطح روشنایی یک عنصر جداگانه در صفحه طراحی کنید.
این روش زمانی مفید است که تغییر روشنایی بخشی از منطق خود دستگاه باشد. مثلاً در یک حالت خاص روشنایی یک پنل افزایش پیدا کند و با خروج از آن حالت، مقدار دوباره کاهش پیدا کند.
یک مثال کاربردی
بگذارید یک حالت واقعیتر را بررسی کنیم.
فرض کنید یک نمایشگر DWIN دارید که در صفحه اصلی آن یک پنل وضعیت قرار گرفته است. میخواهید وقتی یک بخش فعال است، پنل کمی پرنورتر دیده شود و وقتی غیرفعال است، از شدت آن کم شود.
یک Brightness روی همان پنل قرار میدهید و محدوده X، Y، W و H را مطابق ابعاد پنل تنظیم میکنید.
بعد VP را روی یک آدرس مشخص قرار میدهید.
حالا کنترلر میتواند مقدارهای مختلفی در این آدرس بنویسد. مثلاً مقدار 80 باعث میشود آن ناحیه در سطح 80 تنظیم شود و مقدار 30 سطح پایینتری را ایجاد میکند.
به این شکل، به جای اینکه هر بار تصویر جدیدی برای وضعیت فعال و غیرفعال طراحی کنید، مقدار روشنایی را ست میکنید و خود DGUS تغییر را روی همان Area اعمال میکند.
فرض کنید این پنل مربوط به یک موتور باشد. زمانی که موتور خاموش است، مقدار روشنایی روی یک سطح پایینتر قرار میگیرد. با روشن شدن موتور، برنامه مقدار بیشتری را در VP پاس میدهد و همان بخش روی صفحه پرنورتر دیده میشود.
تفاوت Brightness با تنظیم Backlight
این بخش یکی از مواردی است که هنگام کار با DGUS بهتر است از همان ابتدا مشخص باشد.
Backlight به نور کل نمایشگر مربوط است. اگر مقدار Backlight را تغییر دهید، روشنایی کلی LCD کم یا زیاد میشود.
اما Brightness فقط یک ناحیه از تصویر را هدف قرار میدهد.
در تنظیم رابط کاربری، این دو کاربرد متفاوتی دارند.
برای تنظیم روشنایی کلی صفحه در حالت شب و روز، معمولاً باید سراغ کنترل Backlight بروید. برای تأکید روی یک بخش از رابط یا کمرنگ کردن بخشی از نمایش، Brightness کاربرد دیگری دارد.
پس اگر هدف شما این است که کل صفحه تاریکتر شود، Brightness را روی کل صفحه قرار ندهید و آن را جایگزین کنترل Backlight نکنید.

تنظیم محدوده نمایش
Area مربوط به Brightness با مختصات تعیین میشود.
هنگام ست کردن این بخش، ابعاد واقعی المان گرافیکی را در نظر بگیرید.
اگر محدوده کوچکتر از عنصر مورد نظر باشد، فقط بخشی از آن تحت تأثیر Brightness قرار میگیرد. اگر محدوده بیش از اندازه بزرگ انتخاب شود، المانهای اطراف نیز ممکن است داخل ناحیه کنترل قرار بگیرند.
برای رابطهایی که چند بخش کنار هم قرار دارند، این موضوع اهمیت بیشتری پیدا میکند. بهتر است Area دقیقاً مطابق همان بخشی باشد که قرار است کنترل شود.
قبل از نهایی کردن صفحه هم چند مقدار مختلف را روی خود نمایشگر امتحان کنید. این کار کمک میکند متوجه شوید محدودهای که در محیط طراحی انتخاب کردهاید، دقیقاً همان چیزی است که در خروجی نیاز دارید یا نه.
Pointer در تنظیمات Brightness
در تنظیمات Brightness ممکن است با گزینه Pointer نیز روبهرو شوید.
Pointer بخشی از تنظیمات کنترلی این عنصر است و در پروژههایی که چند کنترل روی یک صفحه قرار گرفتهاند، باید با ساختار آدرسدهی پروژه هماهنگ باشد.
برای پروژههای معمول، مهمترین چیزی که باید بین DGUS و برنامه اصلی هماهنگ باشد همان Variable Address یا VP است؛ چون مقدار Brightness از طریق آن به کنترل پاس داده میشود.
هنگام استفاده از چند کنترل، آدرسها را منظم انتخاب کنید تا بعداً هنگام توسعه پروژه مجبور نباشید دنبال این بگردید که هر رجیستر مربوط به کدام عنصر است.
کنترل Brightness از سمت میکروکنترلر
کاربرد اصلی این ابزار زمانی مشخص میشود که تغییر روشنایی را از نرم افزار اصلی دستگاه کنترل کنید.
کنترلر از طریق ارتباط سریال DWIN میتواند در VP مربوط به Brightness مقدار بنویسد. این مقدار میتواند بر اساس وضعیت واقعی دستگاه تغییر کند.
مثلاً اگر یک تجهیز در حالت هشدار قرار گرفت، میتوان برای بخش مشخصی از رابط مقدار روشنایی متفاوتی ارسال کرد تا آن قسمت بیشتر به چشم بیاید.
یا در یک دستگاه صنعتی، زمانی که یک فرایند در حال اجرا است، میتوان روشنایی یک پنل مربوط به همان فرایند را تغییر داد.
اینجا Brightness فقط یک گزینه ظاهری نیست؛ بلکه بخشی از منطق رابط کاربری میشود.
Brightness برای چه نوع رابطهایی مناسب است؟
این ابزار بیشتر زمانی خودش را نشان میدهد که طراحی رابط کاربری چند بخشی باشد.
مثلاً یک صفحه کنترل میتواند چند پنل، دکمه و ناحیه اطلاعاتی داشته باشد. وقتی کاربر یا دستگاه یک وضعیت خاص را فعال میکند، میتوان با تغییر Brightness یک بخش از رابط را نسبت به بخشهای دیگر متمایز کرد.
در صفحههای مانیتورینگ هم میتوان از این قابلیت برای مشخص کردن بخشی از رابط که در همان لحظه اهمیت بیشتری دارد استفاده کرد.
استفاده از Brightness الزاماً به معنی ساخت افکت پیچیده نیست. گاهی یک تغییر ساده در مقدار روشنایی کافی است تا تفاوت بین دو وضعیت روی نمایشگر واضح شود.
از طرف دیگر، اگر قرار است چند عنصر فقط با کم و زیاد شدن نور تغییر کنند، استفاده از Brightness میتواند تعداد تصاویر و ویجتهای مورد نیاز پروژه را هم کاهش دهد.
خطاهای رایج هنگام استفاده از Brightness
یکی از اولین مواردی که باید بررسی کنید، VP است. اگر آدرس DGUS و آدرسی که کنترلر مقدار را در آن مینویسد یکی نباشند، مقدار ارسالشده به این کنترل نمیرسد.
مورد بعدی محدوده Area است. اگر X، Y، W و H اشتباه باشند، ممکن است تغییر روشنایی روی بخش اشتباهی دیده شود.
مقدار ارسالی را هم بررسی کنید. اگر مقدار با بازه تعریفشده برای Brightness هماهنگ نباشد، نتیجهای که روی صفحه میبینید ممکن است با انتظار شما متفاوت باشد.
موضوع دیگری که گاهی باعث سردرگمی میشود، اشتباه گرفتن Brightness با Backlight است. تغییر یکی قرار نیست همان نتیجه تغییر دیگری را ایجاد کند، چون یکی برای ناحیه مشخص و دیگری برای کل صفحه در نظر گرفته شده است.
یک مورد دیگر هم به طراحی خود فریم یا تصویر مربوط میشود. اگر تصویر از ابتدا با کنتراست یا رنگبندی نامناسب طراحی شده باشد، تغییر Brightness لزوماً ظاهر مورد نظر را ایجاد نمیکند.
تست Brightness روی نمایشگر
بعد از تنظیم کنترل، حتماً عملکرد آن را روی سخت افزار واقعی بررسی کنید.
در محیط طراحی ممکن است محدوده انتخابشده درست به نظر برسد، اما روی نمایشگر واقعی ترکیب روشنایی، رنگ پسزمینه و دیگر المانها نتیجه متفاوتی ایجاد کند.
چند مقدار مختلف را در VP ست کنید و بررسی کنید تغییر روشنایی دقیقاً در همان محدودهای اتفاق میافتد که انتظار دارید.
همچنین کنترلر را در حالتهای مختلف دستگاه تست کنید. Brightness باید با وضعیت واقعی سیستم هماهنگ باشد. اگر قرار است با روشن و خاموش شدن یک بخش، مقدار VP تغییر کند، هر دو حالت را پشت سر هم امتحان کنید.
Brightness در پروژههای واقعی DGUS
در پروژههایی که رابط کاربری فقط برای نمایش اطلاعات ساخته نشده و کاربر از طریق صفحه با دستگاه تعامل دارد، این ابزار میتواند نقش کاربردیتری پیدا کند.
مثلاً میتوان برای بخشهای غیرفعال روشنایی پایینتری در نظر گرفت و با فعال شدن یک بخش، مقدار Brightness آن را افزایش داد. در این حالت کاربر راحتتر متوجه میشود کدام قسمت از رابط در حال استفاده است.
در صفحات وضعیت هم میتوان از همین روش برای جدا کردن بخشهای مهم از سایر اطلاعات استفاده کرد.
البته بهتر است همه چیز را با تغییر روشنایی حل نکنید. اگر تفاوت بین دو وضعیت خیلی زیاد است، ممکن است استفاده از Icon، Bit Icon یا سایر کنترلهای گرافیکی DGUS نتیجه واضحتری بدهد.
Brightness بیشتر زمانی مناسب است که تغییر شدت نمایش، خودش بخشی از طراحی رابط باشد.
چرا استفاده از Brightness میتواند مفید باشد؟
اگر قرار باشد برای هر وضعیت یک تصویر جداگانه داشته باشید، تعداد فایلهای گرافیکی پروژه بیشتر میشود و نگهداری آنها نیز زمان بیشتری میگیرد.
Brightness این امکان را میدهد که از همان عنصر اصلی استفاده کنید و فقط مقدار روشنایی آن را تغییر دهید.
از طرف دیگر، کنترل آن از طریق VP باعث میشود برنامه نویس بتواند مستقیماً از سمت کنترلر وضعیت نمایش را تغییر دهد. کافی است متغیر مربوطه را در زمان مناسب ست کنید.
در یک پروژه منظم، طراحی گرافیکی، آدرسدهی VP و منطق برنامه در کنار هم قرار میگیرند و تغییرات رابط بدون ساختن عناصر اضافی انجام میشود.
نتیجه نهایی کار با ابزار Brightness در DGUS
ابزار Brightness در نرم افزار DGUS برای تنظیم روشنایی یک ناحیه مشخص از رابط کاربری استفاده میشود. این کنترل با Backlight تفاوت دارد و قرار نیست روشنایی کل نمایشگر را تغییر دهد.
برای استفاده از آن باید محدوده Area را مشخص کنید، VP را ست کنید و مقدار روشنایی را از طریق همان آدرس کنترل کنید.
اگر پروژه شما به تغییر روشنایی بخشهای مختلف صفحه بر اساس وضعیت دستگاه نیاز دارد، Brightness میتواند این کار را با یک کنترل و یک متغیر انجام دهد.
در زمان پیادهسازی، سه بخش را حتماً با هم هماهنگ کنید: محدوده Brightness، آدرس VP و مقداری که کنترلر ارسال میکند. بیشتر خطاهایی که هنگام تست این ابزار دیده میشوند، به همین سه بخش مربوط هستند.