برنامه استفاده شده داخل دستگاههای POS (دستگاههای کارتخونی که توی مغازه ها استفاده می شه) با چه زبانی نوشته شده؟
برنامه استفاده شده داخل دستگاههای POS (دستگاههای کارتخونی که توی مغازه ها استفاده می شه) با چه زبانی نوشته شده؟
دوستان در این مورد نظری ندارن؟
بستگی به دستگاه Pos داره که برای کدوم بانک باشه ، اکثرا با ++C .
من می خوام یه زبان یاد بگیرم که برای چنین دستگاههایی بتونم برنامه بنویسم. مطمئنید که با ++C نوشته شده؟بستگی به دستگاه Pos داره که برای کدوم بانک باشه ، اکثرا با ++C .
اگه بخوایم از اول شروع کنیم به نوشتن برنامه این دستگاهها، بنظرتون نوشتن برنامه این دستگاهها چقدر زمان بر هست و آیا یه نفره هم می شه این نرم افزار رو نوشت؟
نومنه برنامه ای که من دیدم و تو بعضی از سازمانهای دولتی استفاده میشه برنامه خود POS رو نه ولی رابطش با کامپیوتر رو با زبان VB و #C نوشتن که برنامه VB یه OCX هست برای ارتباط بادستگاه و برنامه #C هم رابط کاربری که اطلاعات رو برای دستگاه ارسال یا از اون دریافت می کنه فایل های کامپایل شده دستگاه رو هم دارم ولی تا حالا فرصت بررسی اونها رو نداشتم
تا حالا چمدبار این سوال رو پرسیدم و هربار یه جواب متفاوت گرفتم. بالاخره برنامه این دستگاه با چه زبانی نوشته شده؟نومنه برنامه ای که من دیدم و تو بعضی از سازمانهای دولتی استفاده میشه برنامه خود POS رو نه ولی رابطش با کامپیوتر رو با زبان VB و #C نوشتن که برنامه VB یه OCX هست برای ارتباط بادستگاه و برنامه #C هم رابط کاربری که اطلاعات رو برای دستگاه ارسال یا از اون دریافت می کنه فایل های کامپایل شده دستگاه رو هم دارم ولی تا حالا فرصت بررسی اونها رو نداشتم
سوال دوم: اگه بخوایم یک نفره از اول شروع کنیم به نوشتن برنامه این دستگاهها، بنظرتون نوشتن برنامه این دستگاهها چقدر زمان بر هست و آیا یه نفره هم می شه این نرم افزار رو نوشت؟
یک سوال از شما دارم: اینکه چرا می خواین برای سخت افزاری که هیچ آشنایی با اون ندارید برنامه بنویسید؟(البته بد برداشت نکنید منظورم از اینکه هیچ اطلاعی از سخت افزارش ندارید اینکه ساختارش داخلیش رو به احتمال زیاد نمی دونید چطوریه؟)
حالا اگه شما معماری داخلی دستگاه رو برفرض بدونید و دیتاشیت اون رو هم داشته باشد اگه برنامه نویسی C و اسمبلی تون خوب باشه شاید بتونید به تنهایی کار کنید ولی اینم مدنظرتون باشه این دستگاه ها معمولا یه چیز انحصاری هستن و سخته که از کار کردشون بدون اطلاعات درست سر درآورد
یه جایی می خوندم (فکر کنم مدیرعامل همون شرکت کیش تجارت یا همچین شرکتی که برای اولین بار دستگاه های POS رو در ایران راه اندازی کردن) که مدیرعامل شرکت از نبود دانش کافی شون درباره دستگاه POS و ضررهایی که متقبل شد می گفت و موضوع از این قرار بود که برای هر بار Update برنامه دستگاه که با تغییر برنامه نیاز به انجام اون بود برای هر دستگاه یک نفر باید می رفت و دستگاه رو Update می کرد حالا حساب کنید چقدر هزینه می تونست برای یه شرکت داشته باشه فقط همین نبود دانش کافی جالب هم اینکه اون زمان همین تکنولوژی یا ماژول و ... هرچی که اسمشو بزارین تو دستگاه های دیگر تولید همون شرکتی که دستگاه ها رو ازش خریده بودن موجود بود و می تونست به صورت اتوماتیک از طریق همون شبکه Update بشه ولی نبود دانش کافی باز هم مشکل ساز شده بود و مجبور به تعویض تمام دستگاه ها شدن و الان اگه به دستگاه ها توجه کنید بعضی اوقات خود بخود مقداری از کاغذ داخل چاپگرش رو بیرون میده و یه عبارت های انگلیسی مینویسه که مربوط میشه به ارتباطش با مرکز و اطلاعاتی که دریافت میکنه
من کارم طراحی وب هست. با پی اچ پی برنامه می نویسم. توی فروشگاههای تحت وب می تونیم به بانکهای مختلف وصل بشیم، پول اجناس خریداری شده رو پرداخت کنیم. این کار خیلی ساده انجام می شه و تقریبا کار همین دستگاههای POS رو انجام می ده و در اصل این دو یکی هستن.یک سوال از شما دارم: اینکه چرا می خواین برای سخت افزاری که هیچ آشنایی با اون ندارید برنامه بنویسید؟(البته بد برداشت نکنید منظورم از اینکه هیچ اطلاعی از سخت افزارش ندارید اینکه ساختارش داخلیش رو به احتمال زیاد نمی دونید چطوریه؟)
می خواستم ببینم که تکنولوژی دستگاههای POS چطوری هست و با چه زبانی نوشته شده و اگر سخت افزار این دستگاهها آماده باشه، برنامه نویسی برای انجام عملیات بانکی به چه صورت هست؟
دستگاه های Pos یا سیستم عامل ندارند (برای ارزانتر شدن دستگاه و سخت افزار) که در این صورت شما باید با سخت افزار آشنایی کامل داشته باشید . زبان تو این حالت اغلب C هست . برنامه نویسی این جور دستگاه ها مشابه میکروکنترلر ها هست.
نوع دیگه این دستگاه ها (که پردازنده قوی تری دارند) سیستم عامل لینوکس دارند و برنامه ها هم اغلب با C و یا C++ نوشته میشه.
یعنی در کل از فریم ورکهایی مثل دات نت استفاده نمیشه(تا اونجایی که من میدونم)
با این قسمت از مطلبتون کاملا موافقم.دستگاه های Pos یا سیستم عامل ندارند (برای ارزانتر شدن دستگاه و سخت افزار) که در این صورت شما باید با سخت افزار آشنایی کامل داشته باشید . زبان تو این حالت اغلب C هست . برنامه نویسی این جور دستگاه ها مشابه میکروکنترلر ها هست.
اما با این یکی نه چون بکارگیری سیستم عاملی مثل لینوکس در یک دستگاه pos عملی نیست .نوع دیگه این دستگاه ها (که پردازنده قوی تری دارند) سیستم عامل لینوکس دارند و برنامه ها هم اغلب با C و یا C++ نوشته میشه.
یعنی در کل از فریم ورکهایی مثل دات نت استفاده نمیشه(تا اونجایی که من میدونم)
در چنین دستگاهی اغلب با برنامه نویسی های میکروکنترلر ها و ارتباطات سخت افزاری و نرم افزاری (طبق الگوی و برنامه ریزی های طراحی شده) بهره می برند .
معمولاً هم با استفاده از زبان های سطح پایین که با سخت افزار ارتباط ملموسی داشته باشند مثل اسمبلی و C و یا ++C بکار گرفته می شوند .
موفق باشید .
با احترام
با اجازه از مدیریت بخش آقا فرزاد که واقعا تخصصی ترین نظر رو دادن. یک بار برای همیشه لازم می دونم که این بحث رو انجام بدم و به اتمام برسونم.
برنامه نویسی pos به طور کلی با c انجام میشه مگر در موارد خیلی خاص. pos یا دارای بورد آرم هست یا دارای فاقد اون. به طور کلی اگر دارای بورد آرم باشه دارای سیستم عامل لینوکس هست که به راحتی با ترمینال یا راه های دیگه میشه به اون دسترسی داشت مانند linkflex. هر پوز دارای یک sdk است که می تونه برنامه شما رو کامپایل کنه و خروجی برای download روی پوز بده. هر پوز دارای sdk منحصر به فرد هست. بعضی از پوز ها هم مانند ingenico دارای IDE هستند. اصولا باید یک نفر باید بشینه و از ابتدا تا انتها برنامه را بنویسه. چگونه و با چه استانداردی؟ (کمی جستجو لطفا)
آقای hamid-nic میفرمایند : "بکارگیری سیستم عاملی مثل لینوکس در یک دستگاه pos عملی نیست." خودتان اطلاعات فنی برخی از پوزهارا مشاهده بفرمایید »
www.linkflex.co.kr/
http://www.verifone.com/
یا جناب حسن زاده می فرمایند :
"جایی می خوندم (فکر کنم مدیرعامل همون شرکت کیش تجارت یا همچین شرکتی که برای اولین بار دستگاه های POS رو در ایران راه اندازی کردن) که مدیرعامل شرکت از نبود دانش کافی شون درباره دستگاه POS و ضررهایی که متقبل شد می گفت و موضوع از این قرار بود که برای هر بار Update برنامه دستگاه که با تغییر برنامه نیاز به انجام اون بود برای هر دستگاه یک نفر باید می رفت و دستگاه رو Update می کرد حالا حساب کنید چقدر هزینه می تونست برای یه شرکت داشته باشه فقط همین نبود دانش کافی جالب هم اینکه اون زمان همین تکنولوژی یا ماژول و ... هرچی که اسمشو بزارین تو دستگاه های دیگر تولید همون شرکتی که دستگاه ها رو ازش خریده بودن موجود بود و می تونست به صورت اتوماتیک از طریق همون شبکه Update بشه ولی نبود دانش کافی باز هم مشکل ساز شده بود و مجبور به تعویض تمام دستگاه ها شدن و الان اگه به دستگاه ها توجه کنید بعضی اوقات خود بخود مقداری از کاغذ داخل چاپگرش رو بیرون میده و یه عبارت های انگلیسی مینویسه که مربوط میشه به ارتباطش با مرکز و اطلاعاتی که دریافت میکنه."
جهت اطلاع شما اکثر برنامه نویسان pos در ایران بسیار خبره تر از همکیشان خودشون توی خارج از ایران هستند. (یک شرکت داخلی زمانی که دید ingenico 5110 دارای rfid نیست خودش اون رو به پوز اضافه کرد باور ندارید برید دانشگاه تهران و از سلف اونجا بازدید کنید!!!! ).این بحث remote pos، بحث TMS هست که نه تنها در ایران بلکه در تمام دنیا به صورت گسترده قابل پیاده سازی نیست.
در آخر فقط خواهش می کنم از تمامی دوستان در این موارد کمی مطالعه کنند. دلیل نداره اگر از چیزی خبر نداریم در مورد اون نظر بدیم.
دوستان واقعا از بحثهای خوبتون ممنون.
توی این تاپک از زبانهای C و ++C صحبت شد.
هرچند این دو زبان شبیه به هم هستن ولی لطفا دقیقا بگید که چه زبانی باید بکار بره؟
سیستم ingenico با IDE ارائه شده و تغییر دادن برنامش برای کسایی که واردن کار زیاد سختی نیست در ضمن من به نبوغ برنامه نویسای ایرانی کاری نداشتم و صد در صد هم از دیگر برنامه نویسا بهترن(چون خودم هم برنامه نویسم)جهت اطلاع شما اکثر برنامه نویسان pos در ایران بسیار خبره تر از همکیشان خودشون توی خارج از ایران هستند. (یک شرکت داخلی زمانی که دید ingenico 5110 دارای rfid نیست خودش اون رو به پوز اضافه کرد باور ندارید برید دانشگاه تهران و از سلف اونجا بازدید کنید!!!! )
برای این قسمت از پست تون هم منبعی ندیدم که قابل پیاده سازی به صورت گسترده نباشه ولی ظاهرا برای برخی سازمانها پیاده سازی شده و کار میکنه اما فعلا مشکلاتی دارن مثلا تو دستگاه های SAGEM مشکل پرشدن حافظه وجود داره که باید برای پاک کردنش یه نفر از قسمت پشتیبانی برای تنظیم دستگاه محل نصب دستگاه مراجعه کنهین بحث remote pos، بحث TMS هست که نه تنها در ایران بلکه در تمام دنیا به صورت گسترده قابل پیاده سازی نیست.
و صد البته که دستگاه های جدید امکانات بیشتری دارن مثل Wifi،GPRS، و... که پیاده سازی اونها بدون سیستم عامل کار شاقی میتونه باشه
واقعا TMS چه ربطی به خالی کردن حافظه داره؟ غیر از چک کردن وصل بودن pos هیچ کاری تقریبا تا به این لحظه به صورت گسترده با اون پیاده سازی نشده است. خواهش می کنم اسم سازمان رو صریح ببرید!!
و یک سوال TMS یعنی چی؟ وظیفه ای که داره چیه؟ چگونه پیاده سازی میشه؟ حالا شما میگید که جایی پیاده سازی شده!!!!!؟؟؟
من جایی از متن پستم به TMS اشاره نکردم!؟واقعا TMS چه ربطی به خالی کردن حافظه داره؟
TMS هم تا جایی که می دونم ربطی به موردی که اشاره کردم نداره
اگه شما یه دستگاه POS داشته باشی فردا بیای ببینی که مثلا به گزینه هایی که دستگاهت داشتی یه گزینه دیگه مثل کنترل موجودی اضافه شده انوقت شما این چطوری به TMS ربط میدی؟
با توجه به اینکه در این دستگاهها یک میکروکنترلر هست ، شما با هر زبانی که برای میکروکنترلر موجود در دستگاه ساخته شده میتونید برنامه بنویسید
فرضا اگه یه avr توش گذاشته باشند شما با زبانهایی غیر از Cمثل assembly یا pascal یا basic هم به علت داشتن کامپایلرهایی مربوطه میتونید برای دستگاهتون برنامه بنویسید
اون چیزی که میبینید میان روی کامپیوتر به دستگاه وصل میشن ، در واقع به یک رابط استاندارد مثل پورت سریال وصل میشن و با فرمت استانداردی که تعریف کردند باهاش رابطه برقرار میکنن و دیتا میدن و میگیرن.
ولی اینکه بگیم محدود به سینتکس زبان سی هستند ، نخیر اینطور نیست. حتی بدون برنامه نویسی هم میتونید برای یک میکروکنترلر ، یک برنامه داشته باشید مثلا FlowCode اومده به صورت گرافیکی و استانداردهای الگوریتم و فلورچارت خودمون یک محیط ویژوال تهیه کرده که خروجیش یک فایل hex هست که میکروکنترلر به راحتی باهاش کار میکنه
پیوست : زبانهای دیگه غیر از سی بعضی مواقع حافظه و یا باراضافه روی سیستم اعمال میکنن ، بنابراین برای موارد حساس ، سعی میشه از سی و در موارد خیلی حساستر و دقیقتر مستقیم از اسمیلی استفاده کنند
من فقط می تونم یه زبان برنامه نویسی یاد بگیرم. با زبان C می تونم برای این دستگاه برنامه بنویسم و نگارن اجرا نشدن کدها نباشم؟فرضا اگه یه avr توش گذاشته باشند شما با زبانهایی غیر از Cمثل assembly یا pascal یا basic هم به علت داشتن کامپایلرهایی مربوطه میتونید برای دستگاهتون برنامه بنویسید
بله
دستورزبان سی هست ولی فکر نکنید که کامپایلرش همون ویژوال استدیو میکروسافته
کامپایلرها و IDE های مخصوص به خودشون را دارند
مثلا CodeVision را ببین
مثلا IAR را ببین
مثلا WinAVR را ببین
مثلا GCC را ببین ( قبلیه با همین موتور کار میکنه )
اسم هرکدوم را توی گوگل بزنی سایت رسمیشون برای دانلود را میاره ، آموزشهای فارسی هم برای همه شون هست.
چقدر مطالب به بیراهه رفت تا اونجاکه یادمه درپست اول کاربر idocsidocs دنبال راهکارهای ارتباط یا نوشتن برنامه دستگاه pos بود(البته ممنونم از نوشته هاتون اطلاعات بدی توش نبود)
دوست عزیز این دستگاه های متداول ایران بیشتر می خوره که بدون سیتم عامل و با همون میکرو راهندازی بشن
همونجور که می دونیم کاره اصلی و نهایی همه اونها ارسال و دریافت یک سری اطلاعاته به وسیله خطوط تلفنه ولی ممکنه هر نوع انها به شکلی ساخته شده باشن خوب حالا با یک ماژول های خاص که حالا میکو یکیشون می تونه از هر خانواده ای باشه(avr,pic,....) که هر کدوم از اینها یک سری ساختارها داره به خاطره انعطاف و همه گیر بودن زبان c اصولا همه پشتیبانشون میکنن اما این به این معنا نیشت که مثلاً حالا این دستگاه کامپایلری مثل مثلاً turbo و یا borland داشته باشه نه هر کردم از این ای سی ها یکسری ساختارها داره ویکسری مشخصات که باید با اونها اشنا بشین و بعد برای انها با c بنویسین(حتی توی وین نمی تونین اجراش کنین) و بعد با کامپایلهای مخصوص اون رو تبدیل به hex کنین من فکر میکنم اول از همه اگه شما بخواین بر روی همچین دستگاهی کار کنین باید با اجزا و دیتاشیت اون اشنا بشین که چگونه همچین دستگاهی کار می کنه و بعد با استانداردها و بعد دیگه الگوریتم کار مشخص می شه
درباره زبان هم یک باره دیگه یگم که زبانهای متفاوتی مثلی bascom و c و ... برای این میکرو ها معروفاً و الته خروجی تمامه انها hex است وبعد این فایل hex بر روی میکرو با دستگاه پروگرامر (که البته گران هم نیست) پروگرام میشود .
دوست عزیز
زبان برنامه نوسی این دستگاه ها همان زبان برنامه نوسی میکروکنترل هاست (avr,pic,arm).تا حالا چمدبار این سوال رو پرسیدم و هربار یه جواب متفاوت گرفتم. بالاخره برنامه این دستگاه با چه زبانی نوشته شده؟
پس باید برنامه نوسی یکی از میکروکنترل ها رو یاد بگیری.من می خوام یه زبان یاد بگیرم که برای چنین دستگاههایی بتونم برنامه بنویسم. مطمئنید که با ++C نوشته شده؟
به بک مهندس الکترونیک و Manual و Reference دستگاه جهت راه اندازی نیاز هست ، شاید نوشتن برنامه زمان کمی بخواد اما بررسی ساختار دستگاه به همین سادگی نیست.اگه بخوایم از اول شروع کنیم به نوشتن برنامه این دستگاهها، بنظرتون نوشتن برنامه این دستگاهها چقدر زمان بر هست و آیا یه نفره هم می شه این نرم افزار رو نوشت؟
این موضوع در مورد دستگاه POS های مبتنی بر PC صدق میکند. POS ها میتوانند مستقل از PC باشند مثل فروشگاه ها یا میتوانند مبتنی بر کامپیوتر کار کنند که همان دستگاه های داخل شعبات بانکها هستند.نومنه برنامه ای که من دیدم و تو بعضی از سازمانهای دولتی استفاده میشه برنامه خود POS رو نه ولی رابطش با کامپیوتر رو با زبان VB و #C نوشتن که برنامه VB یه OCX هست برای ارتباط بادستگاه و برنامه #C هم رابط کاربری که اطلاعات رو برای دستگاه ارسال یا از اون دریافت می کنه فایل های کامپایل شده دستگاه رو هم دارم ولی تا حالا فرصت بررسی اونها رو نداشتم
اما با این یکی نه چون بکارگیری سیستم عاملی مثل لینوکس در یک دستگاه pos عملی نیست .با آمدن میکروکنترل های ARM امکان نصب سیستم عامل بر روی POS ها فراهم شده است.دستگاه های Pos یا سیستم عامل ندارند (برای ارزانتر شدن دستگاه و سخت افزار) که در این صورت شما باید با سخت افزار آشنایی کامل داشته باشید .
شاید هدف کلی باشد اما نحوه عملکرد ، ارتباط ، ارسال ، دریافت اطلاعات کاملا متفاوت میباشد.من کارم طراحی وب هست. با پی اچ پی برنامه می نویسم. توی فروشگاههای تحت وب می تونیم به بانکهای مختلف وصل بشیم، پول اجناس خریداری شده رو پرداخت کنیم. این کار خیلی ساده انجام می شه و تقریبا کار همین دستگاههای POS رو انجام می ده و در اصل این دو یکی هستن.
... و اما نکته مهمتر اینه که برنامه نوسی این دستگاه ها براحتی امکان پذیره و هر کس بخواهد میتواند در زمینه فعالت داشته باشد . در حال حاضر Package های آماده هستش که فقط دوستان زحمت فارسی سازی آن را میکشند. نکته مهمتر، سخت ترین از همه اینه که باید با CommandReference شبکه بانکی شتاب و مقررات سرور بانک مرکزی آشنایی داشته باشید.
سلام
بحث رو دیدم راجع به برنامه نویسی روی یه دستگاه جانبی هم صحبت کرده بودین
کسی کار کرده این موضوع رو؟
چطور میشه برای یه دستگاه جانبی که با پورت کام به سیستم وصله برنامه نوشت؟
بیشتر منظورم اسمبلی هستش
ما یه دستگاه جانبی داریم که توش یه حافظه داره مثلا یه میکروکنترلر توشه که تو دفترچه راهنما آدرس خانه های حافظه رو هم داده
حالا چطوری با اسمبلی به این خانه ها دسترسی پیدا کنیم؟خانه های حافظه اون دستگاه! نه حافظه خود سیستم
ممنون
من پشتیبان دستگاههای پوز هستم/
فایلی رو میخوام جهت مشاهده و بررسی قرار بدم
امیدوارم مفید واقع بشه
ولی چون خیلی با فرومها کار نکردم و اشنایی ندارم نمیدونم از کجا باید لینک دانلود بذارم
یکی راهنمایی کنه لطفا
کاربر جدید
سلام دوستان
من یه پروژه دارم میخوام برون سپاری کنم
پروژه ارتباط با دستگاههای پوز (البته غیر بانکی)
دستگاههای Ingenico 5100
اگه کسی در این زمینه تخصص داره بفرمایید تا توضیحات کامل را ارسال کنم
تشکر
سلام
من تعدادی دستگاه کارتخوان Ingenico دارم
میخوام اطلاعاتش را تغییر بدم
مثلا لوگو، و اینکه اطلاعات را بفرستم روی سرور خودم
کسی میتونه کمک کنه؟
ممنون
سلام من نیاز دارم برنامه ای رو که با زبان C# نوشتم به دستگاه pos متصل کنم و نرم افزار مبلغ رو بفرسته و پس از ارسال مبلغ یه مقداری به حساب نرم افزار و مابقی به حساب صاحب pos بره . چطور میشه این کار رو انجام داد