سلام دوستان
شاید براتون پیش اومده باشه که نیاز باشه تا مثلا بیش از ۳ تا قبض را پرداخت کنید.
یکی از سختی های این کار وارد کردن شناسه ها است.
البته برنامه های برای Mobile وجود داره که می تونند این کارو انجام بدن.
اما بعضی مواقعه هست که ممکنه Camera موجود در Mobile کیفیت خوبی نداشته باشه. یا اصلا Camera نداشته باشه.
حتی ممکنه شما بخواید در جایی مثل شرکت از BarCode استفاده کنید، اما به هر دلیلی دستگاه BarCode خوان خراب شده.
و.....
با استفاده از ZBar میتونید این کارو انجام بدید. البته اضافه کنم که نیاز به برنامه نویسی دارید تا خروجی BarCode را به برنامه مورد نظر ارسال کنید.
برای نصب در Ubuntu از دستور زیر استفاده کنید:
sudo apt-get install zbar-tools
بعد از نصب ۲ گزینه به خط فرمان اضافه میشه:
۱- zbarcam
۲- zbarimg
از اسمشون معلومه که برای چی هستند.
در اینجا من zbarcam را توضیح میدم.
وقتی zbarcam را اجرا کنید پنجره براتون باز میشه که خروجی WebCam است.
نکته: اگر چند WebCam دارید، به صورت زیر اجرا کنید:
zbarcam /dev/video*
بجای * شماره WebCam را وارد کنید.
حالا BarCode مورد نظر را جلوی WebCam بگیرید و به خط فرمان نگاه کنید، اگر زیاد تکون ندید باید بهتون BarCode نمایش بده.
حالا شما می تونید با استفاده از یک مقدار برنامه نویسی تنظیم کنید که BarCode به برنامه مورد نظر ارسال شود.
برای نمونه یک Script ساده نوشتم که می تواند اطلاعات قبوض آب، برق، گاز، تلفن ثابت، تلفن همراه و شهرداری را نمایش دهد.
پیش نیاز ها: zbar-tools و zenity
#!/bin/bash
tmp=/tmp/barcode
zbarcam > $tmp &
pid=$!
while [[ ! -s $tmp ]] ; do
sleep 1
done
kill $pid
barcode=$(cat $tmp)
rm $tmp
barcode=${barcode:9}
bill_type=${barcode:11:1}
bill_id="$(echo ${barcode:0:13} | sed 's/^0*//')"
pay_id="$(echo ${barcode:13:13} | sed 's/^0*//')"
amount="$(echo ${barcode:13:8} | sed 's/^0*//')000"
echo "Barcode: $barcode"
echo "Bill Type: $bill_type"
echo "Bill ID: $bill_id"
echo "Pay ID: $pay_id"
echo "Amount: $amount"
case "$bill_type" in
1)
bill_type="آب"
;;
2)
bill_type="برق"
;;
3)
bill_type="گاز"
;;
4)
bill_type="تلفن ثابت"
;;
5)
bill_type="تلفن همراه"
;;
6)
bill_type="شهرداری"
;;
*)
bill_type="قبض نامعتبر"
;;
esac
zenity --info --title="مشحصات قبض $bill_type" --text="شناسه قبض: $bill_id\n\nشناسه پرداخت: $pay_id\n\nمبلغ قابل پرداخت: $amount ریال"