wiki:misc/misc/botlog_pas/client_download

クライアント用プログラムのダウンロード機能

PrintAnyServerには、Web画面からの画像登録以外にも、画像登録専用プログラムが用意してある。
Windows用クライアントは、SaveAnyWindow.exeという名前で、/opt/OperationLog/PrintAnyServer/clinet/SaveAnyWindowsに、 Linux用クライアントは、PrintWindowという名前で、/opt/OperationLog/PrintAnyServer/clinet/printWindowにおいてある。

それぞれのプログラムは、現在のPrintAnyServerができる以前からあったプログラムをPrintAnyServerに対応するように修正したもので、操作方法も多少違っている。

各クライアントの設定

クライアントプログラムを使用するには、どのサイトのPrintAnyServerに接続するかを設定する必要がある。

ここで例示するネットワーク設定は、192.168.1.0/24とし、PrintAnyServerが動作しているhttpサーバーは192.168.1.10とする。

SaveAnyWindow

SaveAnyWindowはC#で作成してあり、プログラムの設定をプログラムと同じディレクトリにあるSaveAnyWindow.exe.configを使って行う。
SaveAnyWindow.exe.configは、必ず{{{SaveAnyWindow.exeの実行ディレクトリにあるように設定すること。
設定する箇所は、siteNamesaveURLprintURLの3ヶ所。

     :
  <appSettings>
    <!-- 接続先のエリアス名 -->
    <add key="siteName" value="TEST"/>
       :
    <!-- URLにJSON形式で画像データをBase64変換したものを送信 -->
    <add key="saveURL" value="http://192.168.1.10/pas/api/addImage" />
    <add key="printURL" value="http://192.168.1.10/pas/api/getPrinters" />
       :

siteNameは、SaveAnyWindowを起動した際に、タイトルバーに表示される文字列で、どの画像サーバーに送るかを人間が判別するための設定。
saveURLprintURLは、通信する画像サーバーのWeb APIのURLを設定する。
Web APIのURL設定は、/pas/api/~までは固定文字列として扱い、http://localhostをサイトに合わせて設定する。
通常は、PrintAnyServerの接続URLで使用するホスト名 か ホスト名:ポート番号を設定する。

変更した設定ファイルを使用してSaveAnyServerを起動し、画像が登録できれば設定ファイルの作成は完了。

ダウンロードできるようにするために、SaveAnyWindow.exeと設定ファイルで圧縮ファイルを作成し、webクライアントからダウンロードできるhttpサーバーのディレクトリにコピーする。
例として、ここでは圧縮ファイル名をSaveAnyWindow_TEST_20180822.zipとし、/var/www/html/printView/clients/windowsにコピーするものとする。

PrintWindow

PrintViewは、Linux用のクライアントプログラムとして作成されている。
PrintWindowはpythonで記述してあり、Tkで画面を作成している。
PrintViewを起動するには、クライアント側にpython 2.6以降がインストールされている環境で、以下のpythonパッケージがインストールされている必要がある。

又は、PrintViewが起動できるサーバーを用意し、クライアント側でX-Windows経由で使用する方法もある。

接続先URLはソースコードに直書きされているので、修正したものを使用する。

設定するファイルはprintIcon.pyにあるurlplUrlで、SaveAnyWindowの接続先URLと同じものを設定する。

    :
import traceback
import base64
import json
import urllib2

printIconFile='/pf/epics/app/OP/python/prtIcon.gif'
saveIconFile='/pf/epics/app/OP/python/saveIcon.gif'
printerList=['(file only)']
scaleList=['100%', '75%', '50%', '25%']
gifSaveDir='/pf/epics/log/Print/'

url="http://192.168.1.10/pas/api/addImage"
plUrl="http://192.168.1.10/pas/api/getPrinters"

if not os.path.isdir(gifSaveDir):
    gifSaveDir='/var/tmp/'

    :

設定後は同様に動作チェックを行い、圧縮ファイルPrintWindow_TEST_20180822.tar.gzをとし、/var/www/html/printView/clients/linuxに保存する。

ダウンロード機能の設定

PrintAnyServerからクライアントのOSとネットワークを取得して、ダウンロードボタンを表示するかを判別している。
ダウンロード機能設定は、設定ファイルの[downloads]に設定する。

#####################################################
# ダウンロード可能なクライアントプログラムを定義する
# 定義は最大10
#  format: OStype,netmask,ClientProgram
#        OStype:        windows or linux
#        netmask:       ダウンロード可能ネットワーク
#        ClientProgram: クライアントプログラムファイル
#####################################################
[downloads]
client0=windows,192.168.1.0/24,clients/windows/SaveAnyWindow_TEST_20180822.zip
client1=linux,192.168.1.0/24,clients/linux/PrintWindow_TEST_20180822.tar.gz

上記の設定を保存し、PrintAnyServerを再起動する。
192.168.1.0/24ネットワーク上のWindowsとlinuxクライアントのWebブラウザをリロードすると、ダウンロードボタンが表示されるようになる。

Last modified 6 years ago Last modified on 08/27/18 09:34:02