PDA

View Full Version : من میخوام با دستگاههای جانبی کار کنم ..



kiosksoft
چهارشنبه 22 آبان 1387, 14:15 عصر
سلام به همه

من میخوام با دستگاههای جانبی کار کنم ..

چه منبعی سراغ دارید ؟ خیلی دستگاههای جانبی به راحتی با سی کنترل میشوند اما چطور ؟ همان توابع api ؟ یا کلاسهای خاص ارائه شده به توی سی ؟

سوال دیگه اینکه آیا از دوستان کسی هست با کارت ریدرهای اعتباری کار کرده باشد ؟

با تشکر

Nima_NF
پنج شنبه 23 آبان 1387, 14:18 عصر
معمولا سازندگان این دستگاه ها( از جمله POS یا همان کار خوان های بانک ها) SDK و یا حتی محیط IDE خود را برای برنامه نویسی آن ها ارائه می کنند، SDK برخی به صورت تکنولوژی COM هست تا همه زبان های برنامه نویسی که COM را پشتیبانی می کنند از آن بهره ببرند (++C و VB و ... ). برخی نیز تماما java . (در کل اکثرا ++C هست)
پس باید به سایت سازنده آن مراجعه کرد و ابزار ها و SDK را دریافت کرد، اما معمولا باید خرید داشته باشید تا اجازه این کار داده شود و ابزار در اختیارتان قرار گیرد.

از روی مدل هر دستگاه می توانید به سایت آن مراجعه کنید(البته اگر معروفیت جهانی داشته باشند که اکثرا ندارند)، مثلا دستگاه POS بانک پارسیان Bitel ، بانک صادرات Magic 6100 ، بانک سامان sagem monetel و ...

kiosksoft
شنبه 25 آبان 1387, 11:46 صبح
ممنون دوست عزیز

من میدونم که اکثرا sdk دارند اما بعضی یه سری سورس سی ارائه میدن مثل کارت ریدر های اعتباری magtek ... الان دوستام میخوان سیستم عامل pos بنویسند... یعنی شما میفرمائید که من همیشه منتظر بمونم تا تولید کننده دستگاه یه کام بهم بده و از اون استفاده کنم ... خودم هیچ اقدامی نکنم , آخه با این سورس های خود کارخونه رو چکار کنم ؟ راهی یا کتابی یا نوعی کدنویسی برای کار مسقیم با دستگاههای جانبی وجود نداره ؟ میشه بیشتر کمک کنید ؟ میخوام با کارتهای اعتباری بانکها کار کنم ,این شرایط رو برام فراهم میکنن ... حالا میخوام توی حافظه کارت ها بنویسم یا بخونم . اگه امکانش هست بیشتر کمک کنید.

با تشکر مرادی.

kiosksoft
دوشنبه 27 آبان 1387, 11:33 صبح
لطفا کمک کنید

Nima_NF
دوشنبه 27 آبان 1387, 16:03 عصر
والا من خودم با کارت خوان ها کار نکردم، تا جایی که به نرم افزار مریوط می شود و اطلاع دارم، SDK های ارائه شده برای آن است که شما درگیر معماری سخت افزاری آن نشوید و مستقیم با command ها و غیره برنامه ریزی ها را انجام دهید. که کار کردن با آن ها، انقدر ها هم سخت نیست.

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

منظور شما ازجملات زیر چه هست ؟ نمونه مثال ها و سورس کدهای کار با SDK یا چیز دیگری ؟


آخه با این سورس های خود کارخونه رو چکار کنم ؟
یه سری سورس سی ارائه میدن

kiosksoft
چهارشنبه 29 آبان 1387, 11:58 صبح
دوست من

من یه کارت ریدر دارم که خود کارخونه یه مثال vc همراش فرستاده, این مثال یه توابع خاص توش تعریف شده , که بیشتر شبیه توابع api هستش اما ,ظاهرا خودش یه سری توابع تعریف و پیاده سازی کرده با vc البته که خروجیش یه dll که در زبانهای دیگه مثل سی شارپ استفاده میشه ,این dll ناقص هست,یعنی اون چیزی که من میخوام رو بهم نمیده, میخوام سورس اون رو بررسی کنم, بخاطر همین بیشتر دنبال برنامه نویسی تقریبا سطح پایین هستم , که خودم حداقل از سورس این نمونه برنامه استفاده و توسعه شون بدم. به هر حال اونها هم با برنامه نویسی با دستگاه ارتباط برقرار میکنن,درسته؟یا مثلا برنامه نویسی GPS یا نمیدونم نحوه کار و کدنویسی اینجور دستگاه ها , که البته شما فرمودید که اکثرا خودشون یه سری ابزار کا با دستگاه در اختیار مشتری میذارن.

با تشکر

Nima_NF
چهارشنبه 29 آبان 1387, 15:26 عصر
تا من کدی را نبینم که نمی توانم هیچ نظر دقیقی بدهم یا بگویم با چه شیوه ای نوشته شده است !؟
پس حداقل چند خط کد آن را (یا یک تابع پیاده سازی شده را) اینجا قرار دهید تا بهتر بتوانم کمک کنم.

در هر حال این موردی که شما گفتید به نظر همان SDK است البته در صورتی که به dll یا lib دیگری متصل نباشد.

خودتان می دانید که ارتباطات با دستگاه انواع گوناگون دارد، اگر پورت USP هست با آن، اگر Com با آن، اگر ethernet با آن و ...
هر کدام API ها خود را برای ارتباط با سخت افزار دارند، مثلا اگر به بخش documents ها یا features آن کارت ریدر بروید معمولا توضیح می دهند که از فلان تکنولوژی ارتباطی با سخت افزار استفاده کرده اند، به این شکل می توان فهمید ارتباط به چه نحو است و باید دنبال چه چیزی باشید.

مطمئن باشید اگر در ویندوز است باید از API ها استفاده کنند.
اگر می خواهید متوجه شوید که تابعی جز API ها است یا نه، آن را در MSDN چک کنید.
برای شروع از کتاب Programming Windows Fifth Edition برای API ویندوز استفاده کنید.

kiosksoft
چهارشنبه 29 آبان 1387, 19:05 عصر
چشم , خودش چند فایل .h درست کرده و بیشتر از اونا استفاده کرده , اما من مهم ترین قسمت رو اینجا میزارم ,ملاحظه فرمایید .
در مورد توضیحات دستگاه هم بله , چند فایل pdf داره (manual) که در مورد دستگاه توضیحاتی رو ارائه داده,بیشتر به جزئیات الکترونیکی دستگاه اشاره کرده ,اما نحوه ارتباط با دستگاه رو هم توضیح داده ,من سورسش رو متوجه نمیشم.

2 فایل مهم از این برنامه رو گذاشتم. ملاحظه فرمائید

با تشکر

Nima_NF
پنج شنبه 30 آبان 1387, 02:14 صبح
این دو فایل دقیقا بخشی از SDK هست نه یک sample.
شما اصلا نیاز نیست به نحوه پیاده سازی آن ها توجه کنید، فقط باید یاد بگیرید که در کجا و چه وقت از API های آن (همان توابعش) در برنامه خود برای ارتباط با device استفاده کنید.
باید این فایل ها در کنار فایل های پروژه برنامه اصلی خود داشته باشند تا بتوانند فراخوانی شوند.

(در این دو فایلی که قرار دادید تنها از توابع استاندارد C استفاده شده است و خبری از API ها ویندوز نبوده است، وابستگی کامل به فایل های دیگری داشته است)

مثلا تابع MAP_uwOpen مقدار دهی اولیه برای ایجاد یک کانال ارتباطی هست و همیشه قبل از هر کاری باید فراخوانی شود، تا ارتباط آغاز شود.

تابع MAP_uwCmd برای ارسال command (دستور) به دستگاه است (برای کنترل قسمت های مختلف یا ارسال و دریافت داده ها).
لیست تمامی command ها به همراه ID ، مشخصات آن ها و نحوه عملشان در دفترچه ها و document های دستگاه شما وجود دارد. باید اسامی را از آن جا مطالعه کنید و به عنوان پارامتر تابع به کار ببرید. هزاران command برای این دستگاه ها وجود دارد.

تابع MAP_uwGet برای دریافت مشخصات از دستگاه است. ID ها یا همان ubPrpID باید از دفترچه کمکی دستگاه پیدا شودکه برای چه چیزی هستند و سپس استفاده شود؛ مقدار مورد نظر از طریق یکی از پارامتر ها که با out مشخص شده است برگردانده می شود.

و به همین شکل ...

تنها راه، مطالعه دفترچه های همراه آن است.
حداقل باید یک نمونه مثال (sample project یا demo) به شما داده شده باشد. از آن باید شروع به مطالعه و یادگیری کنید.
مثلا یک مثال ببینید که چگونه command ای ارسال کنید و سپس خودتان با توجه به دفترچه command مورد نظر برای انجام کار خود را ارسال کنید.
اگر مثالی وجود دارد، بررسی کنید که MFC هست، Console هست یا ... و سپس به سراغ یادگیری آن بروید.

kiosksoft
پنج شنبه 30 آبان 1387, 12:36 عصر
مثال هم دارد , از این سورسی که مطالعه فرمودید یک dll ساخته شده که ,در vb نحوه استفاده از آن را گفته (sample) .

سعی میکنم که بیشتر روی sample کار کنم ....

حالا میخوام یاد بگیرم همین توابع C از کجا اومدن, آیا منبعی برای یادگیری سراغ دارید.ضمنا اون کتابی که معرفی کردید رو گرفتم دارم میخونم.

Nima_NF
پنج شنبه 30 آبان 1387, 16:00 عصر
معمولا توابع استاندارد به طور کامل در کتاب ها آموزش داده نمی شود، به هرحال نیازمند داشتن کتابی برای زبان C هستید :
C How to Program - Deitel & Deitel نسخه فارسی هم هست (چگونه با C برنامه بنویسیم)
و یا کتاب زبان C کتاب جعفرنژاد و ...

بهترین مکان برای مشاهده و دیدن مثال های کتابخانه های استاندارد C همان MSDN هست:
http://msdn.microsoft.com/en-us/library/2aza74he(VS.80).aspx (http://msdn.microsoft.com/en-us/library/2aza74he%28VS.80%29.aspx)

kiosksoft
دوشنبه 11 آذر 1387, 11:34 صبح
سلام

دوست من

اگه بخوام خودم یه دستگاه بسازم و باهاش کار کنم چی؟

مثلا فعلا یه بورد ساده که فقط یه صفر و یک میفرسته به کامپیوتر!

چطور با سی برنامه شو بنویسم؟ چه کتابخانه ای یا چه نسخه ای؟ آیا میشه با vs2008 , در سی++ اونو نوشت یا vs6 رو پیشنهاد میکنید؟

با تشکر

Nima_NF
دوشنبه 11 آذر 1387, 15:12 عصر
هر کاری که در VC++6 هم قابل انجام بود در VC++2008 نیز می توانید انجام دهید با قابلیت های بیشتر.

بستگی به سخت افزار مورد نظر دارد، از آنجایی که معمولا از chip ها و قطعات آماده استفاده می شود، در ایران اکثرا به سمت کامپایلرهای AVR C می روند که راحت تر است و برایش یک پروگرامر خریداری می کنند و کار می کنند. برای این موارد باید با یک مهندس الکترونیک مشورت کنید.

A_Salimi
دوشنبه 11 آذر 1387, 16:18 عصر
مثلا فعلا یه بورد ساده که فقط یه صفر و یک میفرسته به کامپیوتر!

همونطوری که اشاره شد براي اين طور كارها بهتر است به سمت برنامه نويسي هاي میکروهای Avr بروید كه به راحتی در محیطی مثل bascome avr می توانید برنامه نویسی نمایید .

یکی از قابلیت هایی که میکروهای Avr آن را ساپورت میکنند استفاده از سریال پورت است که به راحتی میتوانید داده را به کامپیوتر دریافت و از آن ارسال نمایید . و مثلا روشن و خاموش شدن یک LED را در خروجی سریال مشاهده نمایید.

برای مطالعه یکی از بهترین کتابها میکروکنترلرهای AVR مهندس علی کاهه است که روش بستن یک پروگرامر(از نوع STK) خیلی ساده که با آی سی بافر 74244 را بیان میکند.من با این پروگرامر کار کردم و خودم بستمش .

البته این بحثها در قسمت برنامه نویسی سیستم های Embedded (http://barnamenevis.org/forum/forumdisplay.php?f=119) صورت می گیرند.

deopen
چهارشنبه 14 اسفند 1387, 10:30 صبح
چگونه باید از SDK استفاده کرد؟ من یک SDK برای گوشیهای سیمین دانلود کردم ولی طرز استفاده از SDK را در VC++ 2008 بلد نیستم...

Nima_NF
چهارشنبه 14 اسفند 1387, 14:50 عصر
چگونه باید از SDK استفاده کرد؟ من یک SDK برای گوشیهای سیمین دانلود کردم ولی طرز استفاده از SDK را در VC++ 2008 بلد نیستم...
1- هر SDK برای خودش یکسری اسناد کمکی دارد و در ان کامپایلر مورد پشتیبانی ذکر شده است. معمولا در حالت معمول symbian ابزارهایی مثل ++Carbide.c را نیاز دارد و بدون plugin کامپایلر ++VC پشتیبانی نمی شود. پس مطالب را از همان سایتی که SDK را دانلود کردید مطالعه کنید.

Yousha
چهارشنبه 14 اسفند 1387, 15:02 عصر
سلام،
در وبسایتهای الکترونیک جستجو کنید تا منابع قوی پیدا کنید.

deopen
چهارشنبه 14 اسفند 1387, 22:07 عصر
بله در سایت هم carbide.c++ 2 پیشنهاد شده بود , استفاده از یک پروجه مثال در SDK و ایجاد تغییر در آن هم پیشنهاد شده, سعی میکنم این برنامه را دانلود کنم البته از خود سایت نوکیا در ایران امکان دانلود وجود ندارد,مرسی.