LINUX.ORG.RU

Принтер Brother DCP-1512R | brscan-skey фича

 , ,


0

1

В общем, как понятно из названия есть у меня в распоряжении принтер Brother DCP 1512R — многофункциональное устройство совмещающее принтер и сканер. Сразу скажу, что принтером доволен, печатает довольно шустро и качественно. Драйвера для принтера и сканера работают безошибочно на 64 битной версии Fedora 29, так сказать все сканируется и все печатается. Но как вы могли уже догадаться есть небольшое НО, заключающееся в функционале brscan-skey. Эта программа запущенная в фоновом режиме(например, добавленная в автозагрузку или запущенная при старте вручную) позволяет выполнять сканирование непосредственно с устройства на компьютер к которому подключен МФУ. Эта фича также работает, но при попытке сканировать следующую страницу (нажимаем стрелочка вверх(да)→ok) сканер начинает сканирование следующей страницы и где-то на в начале операции прекращает и возвращается. В итоге имеем только одну страницу, для следующего сканирования приходится вновь юзать меню сначала. Вопрос заключается в следующем, встречал ли кто-нибудь еще данное поведение сканера у данного МФУ(или похожего) и куда копать, чтобы понять в чем проблема? Вот скрипт, который предоставляет Brother, и который выполняется во время выполнения операции сканирования с помощью кнопок МФУ.

#! /bin/sh
set +o noclobber
#
#   $1 = scanner device
#   $2 = friendly name
#

#
#       100,200,300,400,600
#
resolution=100
device=$1
mkdir -p ~/brscan
if [ "`which usleep  2>/dev/null `" != '' ];then
    usleep 100000
else
    sleep  0.1
fi
output_file=`mktemp ~/brscan/brscan.XXXXXX`
echo "scan from $2($device) to $output_file"
scanimage --device-name "$device" --resolution $resolution> $output_file 2>/dev/null
if [ ! -s $output_file ];then
  if [ "`which usleep  2>/dev/null `" != '' ];then
    usleep 1000000
  else
    sleep  1
  fi
  scanimage --device-name "$device" --resolution $resolution> $output_file 2>/dev/null
fi

Ответ на: комментарий от bass

Добавил --verbose опцию. Вот это до попытки напечатать вторую страницу

scan from USB(brother4:bus4;dev1) to /home/wrk/brscan/brscan.GHbjfS
scanimage: rounded value of br-x from 215.9 to 215.88
scanimage: rounded value of br-y from 355.6 to 355.567
scanimage: scanning image of size 816x1145 pixels at 24 bits/pixel
scanimage: acquiring RGB frame
Это во время попытки сканировать вторую страницу
scanimage: min/max graylevel value = 0/255
scanimage: read 2802960 bytes in total

Ошибок как таковых не увидел. Но есть еще предупреждения во время работы скрипта

warning: usleep is deprecated, and will be removed in near future!
warning: use "sleep 0.1" instead...

fullauto
() автор топика
Ответ на: комментарий от bass

-vvv добавило в ввывод разве что

Closing device
Calling sane_exit
scanimage: finished

Убрал условия с usleep, оставил sleep и увеличил до 5 секунд. Также убрал

set +o noclobber
Думал оно пытается выводить в уже существующий файл и из-за этого ошибка, но похоже не из-за этого.

fullauto
() автор топика

РЕШЕНИЕ

Гайс, короче со стандартным скриптом не понял в чем проблема, хотя все же подозреваю, что это из-за того, что оно пыталось писать все в один и тот же файл. Возможно были какие-то изменения в sane или в утилите scanimage. Решил переписать скрипт на вот такой,

#! /bin/sh
set +o noclobber
#
#   $1 = scanner device
#   $2 = friendly name
#

#
#       100,200,300,400,600
#
resolution=100
device=$1
mkdir -p ~/brscan
if [ "`which usleep  2>/dev/null `" != '' ];then
    usleep 100000
else
    sleep  0.1
fi
output_file=~/brscan/brscan_"`date +%Y-%m-%d-%H-%M-%S`"
echo "scan from $2($device) to $output_file"
scanimage --device-name "$device" --format tiff --batch=$output_file-%04d.tiff --batch-increment 1 --resolution $resolution
cd ~/brscan/
convert -quality 100 *.tiff $output_file.pdf
echo "Scan complete"
и о чудо все заработало. Остальные скрипты модифицировал по подобию. В общем спасибо бразерс за их очень гибкие в настройке МФУ, да и фильмы у них отличные.

fullauto
() автор топика
Ответ на: РЕШЕНИЕ от fullauto

Один маленький нюанс. Не забудьте добавить в конце

rm -rf *.tiff
Чтобы следующий пдф не содержал все предыдущие отсканированные в tiff страницы.
#! /bin/sh
set +o noclobber
#
#   $1 = scanner device
#   $2 = friendly name
#

#
#       100,200,300,400,600
#
resolution=100
device=$1
mkdir -p ~/brscan
if [ "`which usleep  2>/dev/null `" != '' ];then
    usleep 100000
else
    sleep  0.1
fi
output_file=~/brscan/brscan_"`date +%Y-%m-%d-%H-%M-%S`"
echo "scan from $2($device) to $output_file"
scanimage --device-name "$device" --format tiff --batch=$output_file-%04d.tiff --batch-increment 1 --resolution $resolution
cd ~/brscan/
convert -quality 100 *.tiff $output_file.pdf
echo "Scan complete"
rm -rf *.tiff

fullauto
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.