نمایش نتایج 1 تا 24 از 24

نام تاپیک: Transfered wav file to hex file

  1. #1
    کاربر جدید
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    iran
    پست
    19

    Transfered wav file to hex file

    با عرض سلام
    من یک فایل با پسوند wav با سرعت 8 k bit و بصورت مونو ذخیره کرده ام و میخواهم فایل مورد نظر را بصورت یک فایل هگز دربیاورم چگونه باید از فایل مورد نظر بخونم.
    در ضمن وقتی فایل را بصورت باینری باز میکنم به ازای یک حرف بعضی وقتها چندین hex تولید مینماید.
    ممنون میشم راهنماییم کنید

  2. #2
    چیزی بنام "فایل هگز" معنی فنی نداره . بگو دقیقا" جکار میخواهی بکنی تا جواب بگیری .
    UNIX is simple. It just takes a genius to understand its simplicity
    -- Dennis Ritchie

  3. #3
    کاربر جدید
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    iran
    پست
    19
    من رشتم الکترونیکه فایل هگز جهت انتقال اون به پورت سریال است و من لازم دارم تا اونو بتونم به یک سیستم مدیا پلیر خروجی انتقال بدم
    ممنون

  4. #4
    فایل مورد نظرت رو روی مود باینری باز کن - بخون - بفرست .
    UNIX is simple. It just takes a genius to understand its simplicity
    -- Dennis Ritchie

  5. #5
    کاربر جدید
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    iran
    پست
    19
    مهندس جان من همین کار را کردهام ولی به ازائ بعضی کدها درست کار نمی کند علت چیست؟؟؟؟؟؟؟؟؟؟

  6. #6
    کاربر جدید
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    iran
    پست
    19

    Cool

    کسی نیست به من جواب بدهد دوست عزیز یک بار خودت امتحان کن ببین چه مشکلی برات پیش میاد!!!!!!!!!!!!!!!!!!!!!!

  7. #7
    -درخواست یا سوالت رو تکرار نکن . اگر کسی قرار باشه جواب بده به اولی جواب خواهد داد.
    - قاعدتا" خوندن باینری فایل و ارسال اون به Player باید کافیه باشه و اگر نیست یا داری روند خوندن رو بد انجام میدی یا ارسال به Player مشکل داره یا Player ات یک مشکلی داره ؛ باید بیشتر توضیح بدی ، نمونه کدت رو بگذاری ، فایل صوتی مشکلدار رو ضمیمه کنی و غیره تا بشه کمک کرد ، و الا بندگان خدا علم غیب ندارند .

    روز خوش
    UNIX is simple. It just takes a genius to understand its simplicity
    -- Dennis Ritchie

  8. #8
    سلام
    احتمالا با بایتهایی که از 127 بیشتر هستند مشکل دارید. دلیلش اینکه که یا توی کد ارسالتون از نوع char استفاده کرده اید یا پورت سریال رو با استاندارد 7 بیتی باز کردید نه ۸ بیتی (

  9. #9
    کاربر تازه وارد آواتار Blaster
    تاریخ عضویت
    اسفند 1383
    محل زندگی
    Subway
    پست
    82
    اگر می خوای Hex بفرستی باید اون رو به شکل Ascii تبدیل کنی وبعد اون رو ارسال کنی، یعنی 21h رو به صورت یک String حاوی "21" تبدیل کنی و بعد ارسال کنی . این روش معمول بین دوستان الکترونیکی هست . در هر صورت این تبدیلات در سخت افزار مورد نظر انجام میشه و باید بین دو طرف استفاده کننده از پورت سریال به طور توافقی مشخص بشه.

  10. #10
    کاربر جدید
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    iran
    پست
    19
    با تشکر از تمامی دوستانی که به من راهنمایی کردم و معذرت از اینکه سوالم را تکرار کردم قصد بی احترامی نداشتم و مطمئنن سوال من ناقص بوده. اینو هم به تازه واردی من ببخشید.

    و فکر میکنم حق با مدیر بخش بوده چون دقیقن همین مشکل را دارم یعنی از 127 به بعد را نمیتوانم بخونم و حتی اگر بجای کاراکتر یک اینتیجر نیز تعریف بکنم مشکلم حل نمیشه چیکار باید بکنم ؟؟
    کدهایی را که خودم نوشتم براتون می فرستم.
    FILE *in,*out;
    char ch;
    in=fopen("c:one.wav","rb");
    out=fopen("c:tow.txt","w");
    while(!feof(in))
    {
    ch=getc(in);
    fprintf(out,"%x",ch);
    }
    fcloseall();
    ممنون میشم جواب بدهید.
    اینم یه قسمت از کد ورودی که من می خونم .
    RIFF¤Ô__WAVEfmt ________@___@_______data€Ô__€€€€€ €€€€€€€€€€€€€€€€ €€€€€€€€€€€€€€ €
    و اینم کد خروجی تولید شده
    52494646ffffffa4ffffffd40057415645666d742010000101 0401f00401f00108064617461ffffff80ffffffd400fffff
    االبته اگر به جای هگز اینتیجر بگذارم کد بزرگتر از 127 تولید نمینماید و کد بالایی هم به ازاء یک کد خاص که خالی است چندیدن کد ffff تولید مینماید.
    ممنون میشم راهنماییم کنید.

    راستی با تشکر از کاربر blaster و جواب ایشان بهشون می گم که برای انتقال اطلاعات بصورت سریال اینکه من بصورت استرینگ دربیارم و بفرستم نه بهینه است و نه منطقی.
    مهمترین دلیلش این است که مثلن اگر شما بخواهید یک عدد فلوت را انتقال دهید این عدد در حالت عادی چهار بایت است ولی وقتی بصورت استیرینگ انتقال میدهید اماکن دارد یک بار 4 بایت و یک بار ده بایت باشد و مطمئنن دقت کار نیز پایین میاد.
    و تازه اگر بخواهید این اعداد را جایی هم ذخیره کنید مثلن یک eeprom خارجی تازه دردسر شروع میشه که اونوقت یک بایت هم یک بایته:

    راستی اگر کسی یه متنی درباره نوع ذخیره اطلاعات فایلهای موسیقی wav و mp3 دارد ممنون میشم در اختیار من بذاره و بخصوص درباره بایتهای تعیین کننده توع فرمت wav.

    ممنون از همه دوستان.

  11. #11
    سلام
    پورت رو به صورت هشت ان یک باز کنید نه مثلا هفت ان دو ! ببخشید نتونستم انگلیسی تایپ کنم. اینها پارامترهای برقراری ارتباط سریال هست که فکر کنم بدونید N یعنی پریتی نمیخواهید و هشت یعنی اینکه بیتهای داده هاتون ۸ بیتی است. مشکل شما اینه که چون پورت ارتباط ۷ بیتی باز شده نمیتونه اطلاعات ۸ بیتی رو بفرسته یعنی بایتهای بیشتر از ۱۲۷ رو.
    حالا من نمیدونم که توی کدوم محیط برنامه نویسی میکنید ولیکن فکر کنم با یک سرچ کوچیک توی گوگل به راحتی بتونید روتینهای مربوط به پورت سریال رو با امکان تنظیم نوع ارتباط هشت ان یک پیدا کنید من تا اینجاش هستم که مشکل رو پیدا کردم و راهنمایی کنم بقیه با خودتون.
    کار راحتیه.
    ممنون علی

  12. #12
    کاربر جدید
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    iran
    پست
    19
    علی اقا ممنون از جوابتون
    راستشو بخواین من تمام این پروتکلهای ارتباطی رو کار کردم و دقیقن میدونم پریتی و سایر اونها تو تنظیمات چیه ولی مشکل من همون کد هگزی است که میسازم چون کد هگزی که با ویژوال سی میسازم بیشتر از 127 نداره یعنی هفت بیتیه و سوالم دقیقمن اینه که تو اون برنامه ای که نوشتم به جای کاراکتر چه متغیری باید بگذارم تا جواب بدد ممنون میشم جواب بدهید. البته امیدوارم منظورم رو درست رسونده باشم. بای

  13. #13
    سلام
    unsigned char
    ممنون علی

  14. #14
    کاربر تازه وارد آواتار Blaster
    تاریخ عضویت
    اسفند 1383
    محل زندگی
    Subway
    پست
    82
    دوست عزیز فرقی نداره از چه نوع متغیری استفاده می کنی ! فقط قبل از ارسال اون کاراکتر رو با 7F (برای اطمینان) AND بیتی کن.

  15. #15
    کاربر جدید
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    iran
    پست
    19
    ببخشید من الان جواب گرفتم ولی دلیل اینکار شما رو متوجه نمیشم چرا باید اینکار را کرد منظورم
    and
    بیتی است
    ممنون میشم جواب بدهید.
    بای

  16. #16
    کاربر تازه وارد آواتار Blaster
    تاریخ عضویت
    اسفند 1383
    محل زندگی
    Subway
    پست
    82
    دوست عزیز برای کامپیوتر و پورت سریال char با unsigned char هیچ فرقی نداره . اینها فقط توسط کامپایلر معنی پیدا می کنه ! اون and بیتی با 7F هم باعث می شه که بیت اخر کاراکتر مورد نظر همیشه صفر بشه در نتیجه شما هیچ وقت کد بیشتر از 127 روی پورت نخواهید داشت !

  17. #17
    کاربر جدید
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    iran
    پست
    19
    ممنون از جواب شما

  18. #18
    سلام
    خب اینطوری که داده ها خراب میشن. شما دارید یک بیت با ارزش از اطلاعات رو حذف میکنید.
    ممنون علی

  19. #19
    کاربر تازه وارد آواتار Blaster
    تاریخ عضویت
    اسفند 1383
    محل زندگی
    Subway
    پست
    82
    سلام،
    جناب seyedof عزیز ،بعضی مواقع اون بیت با ارزش معنایی مشخصی روی پورت پیدا می کنه . مثلا نشان دهنده آدرسه .و باتوجه به خطاهای نرم افزاری ممکنه که اون بیت با ارزش یه جایی اشتباهی ست بشه و باعث بروز مشکل بشه .برای همین قبل از ارسال اون روی پورت باید حذف بشه. یا الگوریتمی که کاراکترها رو برای پورت اماده می کنه باید این اطمینان رو بده که هیچ کاراکتری ، کدی بالای 127 نداشته باشه . برای همینه که اطلاعات اغلب به صورت Ascii ارسال میشه.

  20. #20
    کاربر جدید
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    iran
    پست
    19
    نظر من هم همین است این برای وقتی درست است که ما تمام اطلاعات را بصورت استرینگ دراورده و بعد بفرستیم ولی خیلی وقتها ایطوری نیست مثلن همین کار من خیلی اطلاعات من بیشتر از 127 است بخاطر همین باعث از بین رفتن اطلاعات میشود.
    با تشکر

  21. #21
    سلام
    ولله من خیلی اینکارو کردم و مشکلی هم نداشته. وقتی پورت در مود ۸ بیتی کار میکنه یعنی ۸ بیت Data و این یعنی اوون ۸ بیت داده هستند نه اطلاعات کنترلی. اگر این چیزی که شما میگین درست باشه پس باید فاتحه پورت rs232 رو خوند.
    مشکل در یکی از جاهایی است که مثلا میخواهید اطلاعات رو ارسال کنید. شاید از نوع signed استفاده شده و بعد به نوع unsigned تبدیل شده. این تبدیل میتونه عدد رو خراب کنه.
    خودم شخصا اینکارو ۲-۳ بار انجام دادم واسه همین هم مطمئنم که اگر اشکالی وجود نداشته باشه حتما کار میکنه.
    ممنون علی

  22. #22
    کاربر تازه وارد آواتار Blaster
    تاریخ عضویت
    اسفند 1383
    محل زندگی
    Subway
    پست
    82
    سلام ،
    تبدیل عدد signed به unsigned عدد رو خراب می کنه ولی برای برنامه نه پورت سریال ! چون این دو عدد اصولا به یک شکل در حافظه ذخیره میشن . به عنوان مثال 1- و 255 در یک بایت به صورت 1111 1111 ذخیره میشن . پس فرقی نداره که ما 1- یا 255 رو ارسال کنیم . قبلا هم اشاره کردم که این یک قرارداد بین دو طرف استفاده کننده از پورت هست . یعنی اینکه عددی که به صورت 1111 1111 دریافت شده رو 1- یا 255 تفسیر کنند.

  23. #23
    سلام
    به شرط اینکه جایی تبدیل صورت نگیره یعنی مثلا یک بافر در حافظه باشه و آدرسش رو بدیم و بفرستیم روی پورت. ولی اگه توی برنامه تبدیل شده باشه خرابش میکنه.
    ممنون علی

  24. #24
    کاربر تازه وارد آواتار Blaster
    تاریخ عضویت
    اسفند 1383
    محل زندگی
    Subway
    پست
    82
    سلام،
    کاملا درسته . و اگر هم داخل برنامه تبدیل بشه باید فرم باینری اعداد حفظ بشه.

تاپیک های مشابه

  1. Zip File & Unzip File
    نوشته شده توسط specialim در بخش VB.NET
    پاسخ: 5
    آخرین پست: جمعه 07 دی 1386, 11:23 صبح
  2. no setting file can be found in project. add setting file and try again
    نوشته شده توسط saeed_rezaei در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 0
    آخرین پست: دوشنبه 17 اردیبهشت 1386, 12:36 عصر
  3. make .exe file from .class file
    نوشته شده توسط navid_ad در بخش برنامه‌نویسی جاوا
    پاسخ: 1
    آخرین پست: یک شنبه 22 آذر 1383, 22:47 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •