كيفية استرداد خراطيش الحبر مستوى برمجيا (إبسون StatusMonitor + ماك OS X)؟

StackOverflow https://stackoverflow.com/questions/314054

  •  10-07-2019
  •  | 
  •  

سؤال

وأنا أبحث عن وسيلة للاستعلام عن مستوى الحبر لإبسون بلدي DX 4050 على نظام التشغيل Mac OS X. وهناك بعض UI دعا EPSON StatusMonitor لعرض مستويات خراطيش بيانيا، ولكن أود أن الحصول عليه من األوامر خط لذلك يمكن أن تغذي الروبوت.

وأي فكرة؟

هل كانت مفيدة؟

المحلول

وهذا سيكون التعهد. إما عكس مهندس التطبيق StatusMonitor لمعرفة كيف يستعلم السائقين للعثور على مستوى الحبر أو للبحث عن بعض الوثائق لذلك. قد يكون من الممكن لكزة في التطبيق StatusMonitor لمعرفة القيم الداخلية للالحاجيات لها (شيء من هذا القبيل ممكن مع ويندوز، على الرغم من hacky)، ولكن من المرجح أن يكون المجرى العملية برمتها لمرة: (

نصائح أخرى

وإذا كانت الطابعة تدعم SNMP قد تكون محظوظا للاستعلام مع أي أداة سطر الأوامر SNMP. هناك تعريفات موحدة للطابعات وأنها تحتوي على واجهات برمجة التطبيقات للاستعلام عن مستويات الحبر الحالية والحد الأقصى.

وهنا هو كيف أفعل ذلك مع بسيطة الأوامر قذيفة يونكس (يتطلب الصافية للتجميعيه تثبيت). هذا ليس بدقة ماك ولكن يجب عليك الحصول على فكرة.

#!/bin/sh

me="${0##*/}"

host="${1:-wp4535}"

base=1.3.6.1.2.1.43.11.1.1

name="WP-4535"

type=$(snmpget -v1 -c public ${host} SNMPv2-MIB::sysDescr.0)

case "$type" in
"SNMPv2-MIB::sysDescr.0 = STRING: EPSON"*)
    type=epson
    ofs=1
;;
*)
    echo "! unknown printer type" 1>&2
    exit 1
;;
esac
echo "# $host $type $name"

# get current ink levels
eval $(snmpwalk -v1 -Ov -OQ -c public ${host} ${base}.6.${ofs} |
perl -ne 'print "c[",++$c,"]=$1\n" if(m!"(\w+) ink!i);')

# get max ink level per cartridge
eval $(snmpwalk -v1 -Ov -OQ -c public ${host} ${base}.8.${ofs} |
perl -ne 'print "max[",++$c,"]=$1\n" if(m!(\d+)!i);')

snmpwalk -v1 -Ov -OQ -c public ${host} ${base}.9.${ofs} |
perl -ne '
    my @c=("","'${c[1]}'","'${c[2]}'","'${c[3]}'","'${c[4]}'");
    my @max=("","'${max[1]}'","'${max[2]}'","'${max[3]}'","'${max[4]}'");
    my $v=$c[++$c];
    printf"# $v=$1 (%.0f)\n",$1/$max[$c]*100 if(m!(\d+)!i);'
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top