تایپ فارسی در LCD یک دستگاه صنعتی

已查看 31 次
跳至第一个未读帖子

rezaesm...@gmail.com

未读,
2018年3月28日 13:05:182018/3/28
收件人 محاسبات فارسی
سلام دوستان

سوالی داشتم. ممنون میشم که من رو راهنمایی بفرمایید.

در یک دستگاه صنعتی قراره زبان فارسی پیاده سازی بشه. در واقع ما در اون دستگاه صنعتی یک کیبورد تاچ اسکرین داریم و میخایم به کاربر قابلیت تایپ به زبان فارسی بدیمتمامی 32 حرف فارسی (در 4 فرم اول، وسط، آخر و تنها مثلا  ﮎ ، ﮏ ، ﮐ ، ﮑ ) به میکروکنترولر داده میشه. قراره وقتی روی کیبورد شروع به تایپ می کنیم، دقیقا مثل نرم افزار های تیپ فارسی مثل Word ، ابتدا همه حرف ها بصورت تنها نوشته میشه، با ادامه تایپ حروف بر اساس موقعیتشون در کلمه به فرم اول، وسط، آخر تغییر پیدا می کنند و کلمه نهایی به شکل صحیح نمایش داده میشه.

در واقع ما یک فایل اکسل داریم که در اون چهار فرم ماتریس حروف فارسی رو طراحی کردیم (فایل اکسل پیوست). فونت ها در 3 حالت Normal و Bold و Big هستند که جهت فارسی سازی LCD انگلیسی پیوست قراره استفاده بشه. با توجه به اینکه ماتریس فونت ما کوچک است، متاسفانه فضای کافی برای طراحی فونت با رزولوشن و کیفیت بالاتر نداریم. طراحی فونت های داخل فایل اکسل بصورت ساده است و امیدوارم در عمل جوابگو باشه. بخاطر ساده کردن کار و کوچکی ماتریس، بعضی حروف ترکیبی مثل ترکیبات "لا" رو هم اصلا کار نکردیم.

باتوجه به اینکه سایز ماتریس های ما از قبل مشخص شده، آیا فکر میکنید بتونیم از "حرف باز" استفاده کنیم یا همین روش خودمون رو باید پیش ببریم؟

همچنین ما  کد یا الگوریتمی نیاز داریم که جهت پردازش تایپ کلمه استفاده کنیم و نرم افزار ویرایشگر ما متوجه بشه که در کلمه از کدوم یک از چهار فرم حرف بسته به موقعیت حرف در کلمه استفاده کنه. یک الگوریتم پیدا کردم که فکر کنم جواب کار ما رو میده ولی مطمئن نیستم. (الگوریتم پیوست).

به نظر شما این ماتریس های فونت و این الگوریتم ما رو به نتیجه میرسونه؟

شاد باشید

رضا اسماعیلی

09122444875

English LCD.jpg
FarsiTemplate.xlsx
توضیح الگوریتم.docx
الگوریتم تایپ فارسی.doc

J. Sharmahd

未读,
2018年3月28日 13:41:482018/3/28
收件人 rezaesm...@gmail.com、محاسبات فارسی
درود،

یک نگاه به سایت unipad.org  در این نرمافزار نگاره ها به صورت بیت مپ تعریف شده اند. پیشنهاد من این است که:
۱- «اگر راحت جان میطلبی ...»، تنها از آلگوریتمی که در استاندارد یونی - کد تعریف شده استفاده کن. الگوریتمهای بینابینی ممکن است در نخست کار راحت تر و یا ساده تر و یا تیز تر به نظر آید. اما معمولا چنین برداشتی درست نیست و یک سرآب هست.

۲- یونی پد ۲ نوع خط را به صورت پیکسل ای در خودش به صورت ریسوس دارد. یکی با پهنای ثابت مخصوص متن های برنامه نویسی و دیگری با پهنای متغیر. هر دو خط ها ( و دبیره های آن) با توجه به خوانا بودن طراحی شده است. مناسب برای کنزول و HMI ها هست.

جمشید شارمهد

J. Sharmahd


phon: +1-626-733-7389

--
--
http://groups.google.com/group/persian-computing-fa

---
‏این پیام را به خاطر این دریافت کردید که برای مبحثی در گروه «محاسبات فارسی» در ‏گروه Google ثبت‌نام شده‌اید.
جهت لغو اشتراک از این گروه و قطع دریافت رایانامه از آن، رایانامه‌ای به persian-computing-fa+unsub...@googlegroups.com ارسال کنید.
برای گزینه‌های بیشتر از https://groups.google.com/d/optout بازدید کنید.

Behdad Esfahbod

未读,
2018年3月31日 13:29:302018/3/31
收件人 rezaesm...@gmail.com、محاسبات فارسی
سلام،

می‌تونین از GNU FriBidi استفاده کنین. یا خودتون الگوریتمِ اتصال رو پیاده کنیم. استانداد ایزیری ۶۲۱۹ و یونیکد مرجع الگوریتم هستند:

http://sharif.ir/~tabesh/isiri-6219.pdf

--
--
http://groups.google.com/group/persian-computing-fa

---
‏این پیام را به خاطر این دریافت کردید که برای مبحثی در گروه «محاسبات فارسی» در ‏گروه Google ثبت‌نام شده‌اید.
جهت لغو اشتراک از این گروه و قطع دریافت رایانامه از آن، رایانامه‌ای به persian-computing-fa+unsub...@googlegroups.com ارسال کنید.
برای گزینه‌های بیشتر از https://groups.google.com/d/optout بازدید کنید.

rezaesm...@gmail.com

未读,
2018年4月10日 11:33:382018/4/10
收件人 محاسبات فارسی
جناب آقای مهندس شارمهد و جناب آقای مهندس اسفهبد
از پاسخ شما بسیار سپاسگزارم
امیدوارم با کمک شما و سایر دوستان نتیجه کار رضایت بخش باشد. در پایان پروژه تعدادی عکس از صفحه نمایش تقدیم خواهم کرد تا مورد اظهار نظر شما قرار گیرد
ارادتمند/ رضا اسماعیلی

Saleh Souzanchi

未读,
2018年4月12日 01:56:092018/4/12
收件人 محاسبات فارسی

من پاسخ سوالات شما را به چند بخش تقسیم می‌کنم تا در صورت وجود سوالات بیشتر در ادامه صحبت موضوع‌ها رو تفکیک کنیم:

 

۱- محیط گرافیکی:

بر اساس تصویری که فرستادید محیط گرافیک سخت افزار شما محیط بیت مپی است. تا آنجایی که می‌دانم موتورهای نمایش و رندر حروف مثل فری تایپ و حرف باز برای  محیط برداری و سطح بالا هستند. متاسفانه چون محیط بیت مپی کاربرد انچنانی برای من و ارتباطی با نیازهای من نداشتند، اطلاعاتم در این زمینه کم هست و محدود به زمان سیستم عامل داس است.

پس من بنا رو بر اساس محیط سیستم عامل داس در نظر می‌گیریم.

 

۲- الگوریتم‌های مورد نیاز:

 

۲-۱: الگوریتم راست به چپ:

بطوری کلی اگر نیاز به تایپ و نوشتن راست به چپ دارید باید از الگوریتم fribidi استفاده کنید : https://github.com/fribidi

البته بستگی دارد به نوع نیاز این الگوریتم همه حالات را در نظر می‌گیرد مثل ترکیب فارسی با لاتین و یا فارسی با اعداد

اگر در دستگاه شما نیاز به نگارش راست به چپ پیشرفته دارید که باید از این استفاده کنید. اگر نه فقط نیاز به نگارش حروف فارسی تنها دارید فکر می‌کنم با چند خط می‌توانید این نیاز رو خودتان در ساده‌ترین حالت حل کنید.

 

۲-۲: الگوریتم تغییر فرم حروف:

اصطلاحا به این الگوریتم  Reshaper گفته میشود. که کارش هم تغییر  کاراکتر یک حروف به  سایر فرم‌های  راست وصل، چپ وصل، دو وصل و مفرد  بر اساس  استاندارد unicode است.

و نمونه جاوا اسکریت آن که خودم کمی تغییرش دادم را می‌توانید در اینجا مشاهده کنید:  http://libre.font-store.ir/persian-reshaper/

 

۳- حروف و فونت :

بر اساس تجارب قبلی خودم ، دیوایس شما برای نمایش حروف از دو روش زیر می‌تواند بهره گرفته باشد:

 

۳-۱ : زیرساخت فراخوانی فونت‌های بیت مپی را داشته باشد:

قبلا دیوایس هایی رو دیده‌ام که قابلیت لود فونت‌های با پسوند fon را دارند.

اگر دیوایس شما همچنین امکانی را داشته باشد می توانید از فونت های ویندوز که در کامند لاین می‌تواند فارسی را نمایش دهد استفاده کنید. و اصلا خودتان را درگیر حروف فارسی نکنید.

 

۳-۲: شبیه سازی و بارگذاری حروف ماتریکسی در حافظه:

در زمان سیستم عامل داس از این تکنیک استفاده می‌شد. آن زمان مباحث بومی سازی و چند زبانی مطرح نبود. ۲۵۵ کاراکتر وجود داشت که می‌آمدیم ماتریکس حروف فارسی را جایگزین یکسری حروف اسکی در حافظه می‌کردیم و از آنها در فارسی سازها استفاده می‌کردیم.

 

 با توجه به اینکه به فکر طراحی حروف برای نیاز خود افتاده‌اید،  فکر می‌کنم دیوایس شما دارد از  این روش برای تعریف حروف بهره می‌گیرد.

پیشنهادی که می‌توانم برای شما داشته باشم این است که از حروفی که قبلا برای محیط داس استفاده می‌شد استفاده کنید که از لحاظ بصری و دیداری تست شده و به سطح پایداری رسیده‌اند. و مشکل دیداری ندارند.

من قبلا روی این مباحث زیاد کار می‌کردم. یکسری سورس هم دارم که می‌توانید در این مخزن  به آنها  دسترسی داشته باشد و امیدوارم بتواند به شما کمک کند.https://github.com/zoghal/my-old-projects

 

 

 

من سعی کردم مباحث را تفکیک کنم و در مورد هر کدام توضیحات مختصری بدم.

امیدوارم در مرحله اول توانسته باشم پاسخگوی سوالات شما باشم.احیانا اگر سوالی داشتید یا هرگونه کمکی از درست من بر بیاید،  من  در خدمت شما هستم.

 

شاد و پیروز باشید

سوزنچی
回复全部
回复作者
转发
0 个新帖子