PDA

View Full Version : حرفه ای: با پی اچ پی می شه یه برنامه برای دستگاههای POS نوشت ؟



idocsidocs
جمعه 05 اسفند 1390, 01:38 صبح
این برنامه باید بتونه با همه سخت افزار مورد نیاز ارتباط برقرار کنه، دستگاه رو روشن و خاموش کنه، از فیش بانکی پرینت بگیره، عملیات بانکی رو انجام بده و ...

لطفا راهنمایی کنید.

ravand
جمعه 05 اسفند 1390, 09:26 صبح
فكر ميكنم براي ارتباط با سخت افزار نيازي به يه برنامه نويسي خاصي هست.

ayub_coder
جمعه 05 اسفند 1390, 09:32 صبح
عملا خیر. برای اینگونه برنامه های زبانهایی مانند جاوا و سی/سی++ کاربرد دارند.!!!

ravand
جمعه 05 اسفند 1390, 10:04 صبح
منظورم روشن و خاموش كردن سيستم از راه دور بود. كه گفتم فكر ميكنم نيازي به يه برنامه نويسي خاصي هست.

MMSHFE
جمعه 05 اسفند 1390, 10:46 صبح
باید ببینید اون دستگاه سرویس موردنظر رو ازطریق بستر وب ارائه میده یا نه چون معمولاً با سوکت این کارها انجام میشه. بعلاوه باید Manual برنامه نویسی برای اون دستگاه رو مطالعه کنید تا از فهرست توابعی که ارائه میده و... مطلع بشین. هرچند معمولاً این دستگاهها فرستنده دستورات هستن نه گیرنده و سرور بانک، گیرنده و اجرا کننده دستورات هست.

idocsidocs
جمعه 05 اسفند 1390, 11:59 صبح
باید ببینید اون دستگاه سرویس موردنظر رو ازطریق بستر وب ارائه میده یا نه چون معمولاً با سوکت این کارها انجام میشه. بعلاوه باید Manual برنامه نویسی برای اون دستگاه رو مطالعه کنید تا از فهرست توابعی که ارائه میده و... مطلع بشین. هرچند معمولاً این دستگاهها فرستنده دستورات هستن نه گیرنده و سرور بانک، گیرنده و اجرا کننده دستورات هست.

من می خوام همه کارهای دستگاه رو با پی اچ پی انجام بدم. هم عملیات بانکی و هم چاپ رسید، خاموش و روشن کردن دستگاه و ...

ayub_coder
جمعه 05 اسفند 1390, 12:12 عصر
ببینید برای کار با پی اچ پی تو یک device او دیوایس باید پی اچ پی رو ساپورت کنه
php هم معمولا برای وب بکار میره پس اون دیوایس یه جورایی باید بستر مناسب برای وب رو ایجاد کنه
اگه نه باید یه کامپایلری برای اون دیوایس تعریف شده باشه که کد های پی اچ پی رو به زبان ماشین اون سخت افزار تبدیل کنه. که تا اونجایی که من می دونم هنوز برای پی اچ پی همچین امکانی وجود نداره و این کارها رو بیشتر با c/c++ و یا نسخه ای از جاوا به نام java card انجام میدن.

ravand
جمعه 05 اسفند 1390, 14:26 عصر
يعني حتي يك پرينتر رو هم نميشه از راه دور به كار انداخت؟ الان برخي دستورات داس رو ميشه با كدهاي php اجرا كرد. پس ميشه كامپيوتر رو هم باهاش خاموش كرد. نظرتون چيه؟

امیـرحسین
جمعه 05 اسفند 1390, 16:35 عصر
PHP با ترمینال و CLI هم کار میکنه در واقع هر سیستمی که بتونه PHP رو اجرا کنه میتونه Request بفرسته و Response بگیره مثل یک برنامه‌ی عادی بدون وب. یعنی میشه ولی خب چنین کاری مثل این میمونه که بخوایم با چاقو موهای کسی رو کوتاه کنیم! زبانهایی مثل C یا JAVA برای چنین کارهایی طراحی شدند.
خلاصه چنین کاری عاقلانه نیست.

MMSHFE
جمعه 05 اسفند 1390, 17:26 عصر
من می خوام همه کارهای دستگاه رو با پی اچ پی انجام بدم. هم عملیات بانکی و هم چاپ رسید، خاموش و روشن کردن دستگاه و ...
دوست عزیز، شما به گفته من دقت نکردین: دستگاههای POS فرستنده دستورات هستند و نه گیرنده و درواقع گیرنده و اجراکننده دستورات، سرور بانک هست. اگه میشد اینقدر راحت به POS وصل بشیم و کارهایی که میخوایم رو ازطریق اون انجام بدیم که دیگه بانک بهش اعتماد نمیکرد. صاحبان فروشگاه خیلی راحت وقتی اولین بار رمز یک مشتری رو میگرفتن، با ثبت شماره کارت و رمزش و استفاده در دفعات بعدی، به راحتی از حساب مشتریها پول کم میکردن.
کارهایی مثل خاموش و روشن کردن دستگاه و... هم نیاز به دسترسی سیستمی داره. اینکه با PHP میشه فرامین سیستم عامل رو اجرا کرد هم کاملاً وابسته به اینه که اولاً سیستم عامل دستوری برای اون کار ارائه کرده باشه و ثانیاً ما هم از وجود و نحوه استفاده از اون دستور مطلع باشیم که برمیگرده به مطالعه Programming Manual اون دستگاه (تازه اگه اون دستگاه API ارائه بده). درهرحال فکر نمیکنم چنین چیزی امکان پذیر باشه چون دستگاه POS عملاً هیچ کاری انجام نمیده و فقط اطلاعات رو میفرسته به سرور بانک و تراکنشها اونجا انجام میشه. موفق باشید.

idocsidocs
جمعه 05 اسفند 1390, 17:35 عصر
درهرحال فکر نمیکنم چنین چیزی امکان پذیر باشه چون دستگاه POS عملاً هیچ کاری انجام نمیده و فقط اطلاعات رو میفرسته به سرور بانک و تراکنشها اونجا انجام میشه.
یعنی منوها رو از بانک می گیره و نمایش می ده و وقتی صاحب مغازه روی یه دکمه فشار داد دستور رو برای سرور بانک می فرسته؟


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

MMSHFE
جمعه 05 اسفند 1390, 19:14 عصر
یعنی منوها رو از بانک می گیره و نمایش می ده و وقتی صاحب مغازه روی یه دکمه فشار داد دستور رو برای سرور بانک می فرسته؟
منوها رو نه چون اینها داخل دستگاه برنامه ریزی شده ولی گزینه انتخاب شده و اطلاعاتی مثل شماره کارت و رمز واردشده و... رو برای بانک میفرسته و پاسخ تراکنش رو هم از بانک میگیره و چاپ میکنه. خود POS هیچ کاری با حساب انجام نمیده.

یعنی با برنامه نویسی سوکت نمی شه چنین کاری کرد؟
ببینید، در برنامه نویسی سوکت شما به یک IP و پورت خاص متصل میشین و یک درخواست رو بصورت یک رشته متنی میفرستین و طرف مقابل برحسب اینکه این رشته متنی قبلاً براش تعریف شده باشه یا نه، کار خاصی رو براتون انجام میده و پاسخ رو درصورت نیاز، دوباره برای شما میفرسته. پس طبیعتاً اگه اون دستگاهی که با IP و Port بهش متصل شدین، درخواست شما رو نشناسه، هر دستوری که بفرستین، کاری براتون انجام نمیده. بنابراین باید دقیقاً بدونید چه دستوراتی اونطرف تعریف شده و ثانیاً برای هر دستور چه پارامترهایی لازمه بفرستین. موضوع به راحتی استفاده از تابع system و... نیست. تازه توی همون تابع هم باید بدونید دستورات سیستم عامل چی هستن و چطور باید فراخوانیشون کنید.