اطلاعیه

Collapse
No announcement yet.

ارسال کاراکتر فارسی از طریق پورت سریال

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    ارسال کاراکتر فارسی از طریق پورت سریال

    سلام
    دوستان من می خوام یک اسم مثل علی رو که به صورت فارسی است از طریق پورت سریال ارسال کنم. من پورت سریال رو راه اندازی کردم ولی نمی دونم چجوری کاراکترهای فارسی ارسال کنم؟
    کسی هست که در این زمینه کار کرده باشد؟
    ممنون

    #2
    پاسخ : ارسال کاراکتر فارسی از طریق پورت سریال

    نوشته اصلی توسط علی حیاتی
    سلام
    دوستان من می خوام یک اسم مثل علی رو که به صورت فارسی است از طریق پورت سریال ارسال کنم. من پورت سریال رو راه اندازی کردم ولی نمی دونم چجوری کاراکترهای فارسی ارسال کنم؟
    کسی هست که در این زمینه کار کرده باشد؟
    ممنون
    ارسال به کجا ؟ اونطرف باید نمایش دهنده یونیکد را برای حروف فارسی مد نظر شما ساپورت بکنه
    مگه اینکه تحت داس باشه و با فارسی سازهایی مثل سایه محیط فارسی شده باشه ( کاراکترهای با کد اسکی بالاتر از 127 )
    برای تست میتونید محیط را با یک فارسی ساز اول فارسی کنید و با گرفتن کلید ALT و تایپ عددی بزرگتر از 127 کاراکترهای فارسی را ببینید
    اگر هم محیط مد نظرتون ویندوز هست که کلا بحث یونیکد هست ، برای بدست آوردن معادل هگز کاراکترهای کلمه مثلا " علی " توی یک فایل txt بنویسید و بعد با یک هگز ادیتور بازش کنید و کدها را بدست بیارید و روی پورت سریال ارسال کنید.

    پیوست : محیط دریافتی را مشخص کنید راحتر تر میشه توضیحات داد


    http://en.wikipedia.org/wiki/Unicode
    آن دم که مرا مي زده بر خاک سپاريد زير کفنم خمره اي از باده گذاريد
    تا در سفر دوزخ از اين باده بنوشم
    آنلحظه که با دوزخيان کنم ملاقات يک خمره شراب ارغوان برم به سوغات
    هرقدر که در خاک ننوشيدم از اين باده صافي ، بنشينم و با دوزخيان کنم تلافي

    دیدگاه


      #3
      پاسخ : ارسال کاراکتر فارسی از طریق پورت سریال

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

      دیدگاه


        #4
        پاسخ : ارسال کاراکتر فارسی از طریق پورت سریال

        ارسالش سخت نیست ، مهم قسمت دریافت یا همون جائی هست که قراره نمایش بده ( کجاست؟)
        عکس ضمیمه را ببینید
        فایل های پیوست شده
        آن دم که مرا مي زده بر خاک سپاريد زير کفنم خمره اي از باده گذاريد
        تا در سفر دوزخ از اين باده بنوشم
        آنلحظه که با دوزخيان کنم ملاقات يک خمره شراب ارغوان برم به سوغات
        هرقدر که در خاک ننوشيدم از اين باده صافي ، بنشينم و با دوزخيان کنم تلافي

        دیدگاه


          #5
          پاسخ : ارسال کاراکتر فارسی از طریق پورت سریال

          ُسلام
          من می خوام اینها رو برای میکرو AVR بفرستم و روی lcd نمایش بدم.برای فونت فارسی هم تعریف کردم.مثلا برای ع کد 165 رو تعربف کردم.
          الان من کد chr(165) رو که برای میکرو می فرستم حرف ع نمایش داده می شود.
          من می خوام همین کد ها رو بفرستم.
          واسه میکرو کدهای زیر رو تعریف کردم:
          _0 Alias Chr(128)

          _1 alias Chr(129)

          _2 alias Chr(130)

          _3 alias Chr(131)

          _4 alias Chr(132)

          _5 alias Chr(133)

          _6 alias Chr(134)

          _7 alias Chr(135)

          _8 alias Chr(136)

          _9 alias Chr(137)

          Virgool alias Chr(138)

          Khateh_chasban alias Chr(139)

          Alamat_soal alias Chr(140)

          A_ba_kolah alias Chr(141)

          Hamzeh_chasban alias Chr(142)

          Hamzeh_joda alias Chr(143)

          Alef alias Chr(144)

          Alef_chasbaan alias Chr(145)

          Be_bozorg alias Chr(146)

          Be_koochak alias Chr(147)

          Pe_bozorg alias Chr(148)

          Pe_koochak alias Chr(149)

          Te_bozorg alias Chr(150)

          Te_koochak Alias Chr(151)

          Se_bozorg alias Chr(152)

          Se_koochak alias Chr(153)

          Jim_bozorg alias Chr(154)

          Jim_koochak alias Chr(155)

          Che_bozorg alias Chr(156)

          Che Koochak alias Chr(157)

          He_jimi_bozorg alias Chr(158)

          He_jimi_koochak alias Chr(159)

          Khe_bozorg alias Chr(160)

          Khe_koochak alias Chr(161)

          Daal alias Chr(162)

          Zaal alias Chr(163)

          Re Alias Chr(164)

          Ze Alias Chr(165)

          Zhe alias Chr(166)

          Sin_bozorg alias Chr(167)

          Sin_koochak alias Chr(168)

          Shin_bozorg alias Chr(169)

          Shin_koochak alias Chr(170)

          Saad_bozorg alias Chr(171)

          Saad_koochak alias Chr(172)

          Zaad_bozorg alias Chr(173)

          Zaad_koochak alias Chr(174)

          Taa alias Chr(175)

          Zaa alias Chr(176)

          Ein_bozorg alias Chr(177)

          Ein_akhar_chasban alias Chr(178)

          Ein_vasat alias Chr(179)

          Ein_koochak alias Chr(180)

          Ghein_bozorg alias Chr(181)

          Ghein_akhar_chasban alias Chr(182)

          Ghein_vasat alias Chr(183)

          Ghein_koochak alias Chr(184)

          Fe_bozorg alias Chr(185)

          Fe_koochak alias Chr(186)

          Ghaaf_bozorg alias Chr(187)

          Ghaaf_koochak alias Chr(188)

          Kaaf_bozorg alias Chr(189)

          Kaaf_koochak alias Chr(190)

          Gaaf_bozorg alias Chr(191)

          Gaaf_koochak alias Chr(192)

          Laam_bozorg alias Chr(193)

          Laam_alef alias Chr(194)

          Laam_koochak alias Chr(195)

          Mim_bozorg alias Chr(196)

          Mim_koochak alias Chr(197)

          Noon_bozorg alias Chr(198)

          Noon_koochak alias Chr(199)

          Vav Alias Chr(200)

          He_koochak alias Chr(201)

          He_vasat alias Chr(202)

          He_chasbaan_avval alias Chr(203)

          Ye_chasbaan alias Chr(204)

          Ye_bozorg alias Chr(205)

          Ye_koochak alias Chr(206)

          حالا من در قمسمت کامپیوتر گیرم که این کدها رو چجوری بفرستم !!

          دیدگاه


            #6
            پاسخ : ارسال کاراکتر فارسی از طریق پورت سریال

            من ویژوال بیسیک کار نکردم ، دلفی کار کردم
            یه مثال نوشتم ببینید به کارشما میاد
            فایل های پیوست شده
            آن دم که مرا مي زده بر خاک سپاريد زير کفنم خمره اي از باده گذاريد
            تا در سفر دوزخ از اين باده بنوشم
            آنلحظه که با دوزخيان کنم ملاقات يک خمره شراب ارغوان برم به سوغات
            هرقدر که در خاک ننوشيدم از اين باده صافي ، بنشينم و با دوزخيان کنم تلافي

            دیدگاه


              #7
              پاسخ : ارسال کاراکتر فارسی از طریق پورت سریال

              سلام
              جناب جوکر شما ساختار کاری که من می خوام بکنم رو فهمیدید؟؟!!
              شما یک فایل exe به من میدید این چه بدرد من می خوره!! شما لطف کنید ساختار کار رو توضیح بدید چون ارتباط با سریال رو خودم کار کردم و می دونم چی به چیه.
              ممنون از لطف شما

              دیدگاه


                #8
                پاسخ : ارسال کاراکتر فارسی از طریق پورت سریال

                من یک مثال براتون گذاشتم که ببینید جوابگو هست ( قسمت هگزش ) اگه باشه ، سورسش به زبان دلفی هست نه vb ، من توابع Vb را بلد نیستم والا
                آن دم که مرا مي زده بر خاک سپاريد زير کفنم خمره اي از باده گذاريد
                تا در سفر دوزخ از اين باده بنوشم
                آنلحظه که با دوزخيان کنم ملاقات يک خمره شراب ارغوان برم به سوغات
                هرقدر که در خاک ننوشيدم از اين باده صافي ، بنشينم و با دوزخيان کنم تلافي

                دیدگاه


                  #9
                  پاسخ : ارسال کاراکتر فارسی از طریق پورت سریال

                  نوشته اصلی توسط J0KER
                  من یک مثال براتون گذاشتم که ببینید جوابگو هست ( قسمت هگزش ) اگه باشه ، سورسش به زبان دلفی هست نه vb ، من توابع Vb را بلد نیستم والا
                  سلام
                  جناب جوکر ممنون و تونستم خودم فونتش رو بسازم و ارسال فونت فارسی از طریق پورت سریال حل شد.حالا اینو اگه وقت کنم در قالب یک مقاله شرح میدم و در سایت پلود میکنم تا دیگر دوستان هم استفاده کنند.
                  موفق باشید

                  دیدگاه


                    #10
                    پاسخ : ارسال کاراکتر فارسی از طریق پورت سریال

                    فکر کنم بیشتر مشکل شما به تعاریفی مثل Encoding و Font و Glyph برمیگرده. محیط های متفاوت از نحوه ذخیره سازی متفاوتی استفاده میکنن که ما به اینها Encoding میگیم. مثلا آسکی - یونیکد - UTF8 و غیره. یک Encoding مشخص میکنه که برای ارسال یک متن یا یک سری کاراکتر چگونه بایستی بایتها قطار بشن. مثلا در استاندارد آسکی برای هر کاراکتر فقط یک بایت استفاده میشه بنا براین حداکثر 256 کاراکتر متفاوت رو میشه ارسال کرد که ما برای نمایش این اطلاعات از یک سری شکل استفاده میکنیم که به هر کدوم یک Glyph میگیم. بنا براین با کدینگ آسکی فقط میشه 256 شکل رو نمایش داد. در حالت یونیکد برای هر کاراکتر 2 بایت استفاده میشه بنا بر این تعداد کل شکلهای قابل نمایش میتونه تا مرز 65536 کاراکتر هم برسه. اما این حجم اطلاعاتش یک کمی بالاست چون اغلب موارد اطلاعات انگلیسی رد و بدل میشه. در کدینگ UTF8 یک کد متغیر از لحاظ طولی رد میشه که ممکنه 1 یا چند بایتی باشه. برای ارسال و دریافت یک متن بایستی اولا فرستنده و گیرنده هر دو از یک نحوه کدینگ مشترک استفاده کنن. ثانیا بشه در زمان نمایش یک کاراکتر؛ شکل یا Glyph اون رو روی موقعیت نمایش نشون داد (رسم کرد).

                    اطلاعات تحت داس بفرم آسکی رد و بدل میشه ولی کاراکتر های 128 به بالا به انحاء متفاوت با استاندارد های متفاوتی مثل ایران سیستم یا پانیذ و غیره جایگذاری شدن. این کاراکتر هایی که شما قید کردین فکر میکنم طبق استاندارد ایران سیستم باشن. در صورتیکه تحت windows غالبا به صورت یونیکد کار میشه.

                    دیدگاه


                      #11
                      پاسخ : ارسال کاراکتر فارسی از طریق پورت سریال

                      ;byte _0 =128;
                      ;byte _1 =129;
                      ;byte _2 =130;
                      ;byte _3 =131;
                      ;byte _4 =132;
                      ;byte _5 =133;
                      ;byte _6 =134;
                      ;byte _7 =135;
                      ;byte _8 =136;
                      ;byte _9 =137;
                      ;byte Virgool =138;
                      ;byte Khateh_chasban =139;
                      ;byte Alamat_soal =140;
                      ;byte A_ba_kolah =141;
                      ;byte Hamzeh_chasban =142;
                      ;byte Hamzeh_joda =143;
                      ;byte Alef =144;
                      ;byte Alef_chasbaan =145;
                      byte Be_bozorg =146;
                      byte Be_koochak =147;
                      byte Pe_bozorg =148;
                      byte Pe_koochak =149;
                      byte Te_bozorg =150;
                      byte Te_koochak =151;
                      byte Se_bozorg =152;
                      byte Se_koochak =153;
                      byte Jim_bozorg =154;
                      byte Jim_koochak =155;
                      byte Che_bozorg =156;
                      byte Che_Koochak =157;
                      byte He_jimi_bozorg =158;
                      byte He_jimi_koochak =159;
                      byte Khe_bozorg =160;
                      byte Khe_koochak =161;
                      byte Daal =162;
                      byte Zaal =163;
                      byte Re =164;
                      byte Ze =165;
                      byte Zhe =166;
                      byte Sin_bozorg =167;
                      byte Sin_koochak =168;
                      byte Shin_bozorg =169;
                      byte Shin_koochak =170;
                      byte Saad_bozorg =171;
                      byte Saad_koochak =172;
                      byte Zaad_bozorg =173;
                      byte Zaad_koochak =174;
                      byte Taa =175;
                      byte Zaa =176;
                      byte Ein_bozorg =177;
                      byte Ein_akhar_chasban =178;
                      byte Ein_vasat =179;
                      byte Ein_koochak =180;
                      byte Ghein_bozorg =181;
                      byte Ghein_akhar_chasban =182;
                      byte Ghein_vasat =183;
                      byte Ghein_koochak =184;
                      byte Fe_bozorg =185;
                      byte Fe_koochak =186;
                      byte Ghaaf_bozorg =187;
                      byte Ghaaf_koochak =188;
                      byte Kaaf_bozorg =189;
                      byte Kaaf_koochak =190;
                      byte Gaaf_bozorg =191;
                      byte Gaaf_koochak =192;
                      byte Laam_bozorg =193;
                      byte Laam_alef =194;
                      byte Laam_koochak =195;
                      byte Mim_bozorg =196;
                      byte Mim_koochak =197;
                      byte Noon_bozorg =198;
                      byte Noon_koochak =199;
                      byte Vav =200;
                      byte He_koochak =201;
                      byte He_vasat =202;
                      byte He_chasbaan_avval =203;
                      byte Ye_chasbaan =204;
                      byte Ye_bozorg =205;
                      byte Ye_koochak =206;
                      در سی شارپ



                      دلیل: ادغام دو پست برای جلوگیری از اسپم


                      byte [] ssss=Encoding.UTF8.GetBytes("ابپتثجچحخدذرزسشصضطظعغ فقکگلمنوهی");
                      string ss = "";
                      for (int i = 0; i < 17; i++)//toBytes.Length toBytes
                      {
                      for (int wi = 0; wi < alpha.Length; wi++)//toBytes.Length toBytes
                      {
                      if ((byte)(alpha[wi]) == (toBytes[i]))
                      {
                      ss += chAlpha[wi].ToString();
                      break;
                      }
                      }




                      }
                      serialPort1.Write(ss);


                      char[] alpha = { '$','a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' ,'0','1','2','3','4','5','6','7','8','9'
                      ,'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'
                      ,'ا', 'ب', 'پ', 'ت', 'ث', 'ج', 'چ', 'ح', 'خ', 'د', 'ذ', 'ر', 'ز', 'س', 'ش', 'ص', 'ض', 'ط', 'ظ', 'ع', 'غ', 'ف', 'ق', 'ک', 'گ', 'ل', 'م', 'ن', 'و', 'ه', 'ی'


                      };
                      char[] chAlpha = { '$','a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' ,'0','1','2','3','4','5','6','7','8','9'
                      ,'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'
                      ,(char)140, (char)141, (char)142, (char)143, (char)144, (char)145, (char)146,(char)147, (char)148, (char)149, (char)150, (char)151
                      , (char)152, (char)153, (char)154, (char)155, (char)156, (char)157, (char)158, (char)159, (char)160, (char)161, (char)162, (char)163
                      , (char)164, (char)165, (char)166, (char)167, (char)168, (char)169, (char)170


                      };

                      دیدگاه

                      لطفا صبر کنید...
                      X