TOUGHPAD(FZ-N1/FZ-X1)のバーコードリーダを制御する
最近はこの類を"スマートターミナル"と呼ぶのでしょうか?
Panasonic製の頑丈端末TOUGHPAD(FZ-N1/FZ-X1)のバーコードリーダを制御してみた記録を残したいと思います。
TOUGHPAD SDK内にサンプルコードはあるのですが、 Fragment
で書かれているので Activity
に落としてみました。
Qiitaに書こうか迷いましたが、限りなく需要がなさそうなのでここに書くことにしました。
製品レビューっぽいことは行いません。
詳細はPanasonicの公式ページを参照ください。 panasonic.biz panasonic.biz
必要なもの
- PC
- TOUGHPAD本体(FZ-N1/FZ-X1)
実装手順
Android Studioで新規プロジェクトを作成
手順は省略。
TOUGHPADライブラリ読み込み
TOUGHPAD SDKをダウンロードし、 Toughpad.jar
をプロジェクトの libs
(無ければ掘る)にコピー。
.exe
で落ちてくるので、MacやLinuxをお使いの際はなんとかしてWindowsで展開してください…。
app
モジュールの方の build.gradle
に下記記載があることを確認。無ければ追記。
(AndroidStudioのバージョンによっては自動記述されない時期があったため。)
dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) ...
バーコード読み取りClass(Activity)を作成
TOUGHPAD SDK同梱のサンプルコードをそのまま Activity
に落としたものです。
ダラダラと書いてありますが要約すると、
バーコードを読み取りたい画面( Activity
)で BarcodeReadableActivity
を継承すると、
onRead(BarcodeData barcodeData) {...}
コールバックで読み取り値を受け取れるようになります。
ということです。
読み取り結果を受け取ってみる
レイアウト
コード
以上の実装で、簡単に読み取り値を受け取れます。 かなり雑ですが、こんな感じです。
サンプルコードを GitHubにあげています。
以上です。
マイクラマルチサーバーの入退室をSlackに通知する
もっと頑張ればLightweightになる気がしているんですが、妥協で運用しているのでなかなか手間がかかる方法になっています。
本記事の内容は非推奨とします。
新しく書いたこちらの記事をご参照ください。
sashimi4.hatenablog.com
どうも、おさしみです。 今回は、下記記事のおまけで、タイトルの通り、やっていきたいと思います。 sashimi4.hatenablog.com
※ 前回とは違い、もはやエンジニアでないと理解できない内容になっていると思います。 ご参考までに(強め)。
手順(ざっくり)
- Rubyをインストール
2.3を使用します。 私はanyenvからのrbenvでインストールしました。
# ruby -v ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-linux]
- Guard(Ruby gem)をインストール
$ gem install guard-rspec --no-ri --no-doc $ gem install guard-shell --no-ri --no-doc
と言った感じでインストールします。
- Guardfileを設置
マイクラのサーバーのログが溜まる場所と同ディレクトリに設置します。
$ cat Guardfile guard :shell do ll = '' watch(/latest.log/) {|m| # regexp joined|left|drown|slain ll = `tail -n 1 #{m[0]}` if ll.include?('joined') || ll.include?('left') message = ':white_check_mark: ' + ll.gsub(/(\r\n|\r|\n|\f)/,"") if ll.include?('joined') message = ':black_square_for_stop: ' + ll.gsub(/(\r\n|\r|\n|\f)/,"") if ll.include?('left') message = "[マイクラ鯖の通知だよ!] #{message}" channel = '#minecraft' username = 'Minecraft' icon = ':minecraft:' token = 'SLACK_INCOMING_WEBHOOK_TOKEN' cmd = %Q{curl -X POST --data-urlencode 'payload={"channel": \"#{channel}\", "username": \"#{username}\", "text": \"#{message}\", "icon_emoji": \"#{icon}\"}' https://hooks.slack.com/services/#{token}} `#{cmd}` unless message.nil? end } end
こんな感じのファイルを設置します。
SLACK_INCOMING_WEBHOOK_TOKEN
の部分は、ご自分のSlackチームでIncoming-Webhookを追加・設定し、トークンで置き換えてください。
- Guardを実行
$ guard -p -l 5
といった感じで実行します。 screenセッション上などで実行すると良いと思います。
以上で設定が完了するはずです。
結果
マイクラへjoin/leftすると、このように通知がされるはずです!
余談
Guardはファイルを監視し、差分を検知した時に任意のスクリプトを実行できます。 通常は、RSpecなどのテストを駆動するために用いるんですが…こういう使い方もできなくはないです。 まあこのためだけにRubyやらなにやらをセットアップするのは微妙ですね…。 CRONでもwatchでもなんでも良いんですけどね…。
はい、ざっくりですが、以上です。 何かあればコメントで。批判は頂けません><。
コピペ一発で!さくらのVPSでマイクラマルチサーバー
追記 : 公式からJava版 統合版 それぞれスクリプトが公開されました。本記事の内容は非推奨とします。
Java版 vps-news.sakura.ad.jp 統合版 vps-news.sakura.ad.jp
はじめまして、おさしみです。 今回は、 さくらのVPSでマインクラフトのマルチサーバーを簡単に構築する方法を紹介したいと思います。
注意
本ページ内容はMojang社の公式情報ではありません。 本ページ内容の手順を用いたことによって問題や損害が発生しても責任を負いかねます。 予めご了承ください。
今回はver 1.12.1を利用しています。 気が向いたら本ページ内容・スクリプトも更新したいと思います。
関連知識
今回はコスパの面から、さくらのVPSを用います。下記の記事を読んでおくと、より理解が深まるかと思います。 参考までに。
- ネコでもわかる!さくらのVPS講座 〜第一回:VPSてなんだろう?〜
- ネコでもわかる!さくらのVPS講座 ~第二回「サーバーをさわってみよう!」
- マイクラをVPSで!さくらのVPSではじめるマインクラフトマルチサーバー
作業手順
1. さくらのVPSの申込み
まずはじめに、さくらのVPSの申し込みが済んでいることが必要です。 上にも上げた、こちらの記事が参考になるかと思います。
ちなみにさくらのVPSでは、後からスペックをアップすることができるスケールアップ機能が提供されているので、 低価格なプランからのスモールスタートすると良いと思います。(「もたつく。処理落ちする。」等あれば後からスペックアップすれば良い)
2. スタートアップスクリプトの登録
さくらのVPSでは、最近スタートアップスクリプト機能がリリースされました。 今回は、このスタートアップスクリプト機能を利用して "簡単に" マインクラフトサーバーを構築します。
スタートアップスクリプト機能とは、サーバー作成完了後の初回起動時に任意スクリプトを実行し、 パッケージのインストールや各種設定作業の自動化などを簡単に実現できる機能です。
まずはマイクラマルチサーバーを起動するためのカスタムスクリプトを登録します。 3分クッキングですが、以下のスクリプトをキャプチャのようにまるまるコピー&ペーストします。
「なんて書いてあるかわからないけど、とにかくマイクラサーバーが起動すればいいんだ!」という方は、おまじないとでも思ってください…。←
なお、このスクリプトを使用する前に必ず次の許諾に目を通し、同意してください。https://account.mojang.com/documents/minecraft_eula
############################## # It works on Ubuntu 16.04 # Agree to the license before using this script : https://account.mojang.com/documents/minecraft_eula ############################## # Open serving port(25565) with SAKURA VPS Ubuntu16.04 default iptables config cat > "/etc/iptables/iptables.rules" <<EOF *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -p tcp -m tcp --dport 25565 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT EOF iptables-restore < /etc/iptables/iptables.rules apt -y update # Install Java for running Minecraft server apt -y install openjdk-8-jdk # Screen as background task executor apt -y install screen # Make server dir mkdir /home/ubuntu/minecraft/ cd /home/ubuntu/minecraft/ wget -O minecraft_server.jar https://s3.amazonaws.com/Minecraft.Download/versions/1.12.1/minecraft_server.1.12.1.jar # Agree to the license cat <<EOF > eula.txt #By changing the setting below to TRUE you are indicating your agreement to our EULA (https://account.mojang.com/documents/minecraft_eula). #$(date) eula=true EOF # Generate a server start-up script cat <<EOF > start_minecraft_server.sh #!/bin/bash screen -AdmS minecraft-server /bin/bash -lc 'cd /home/ubuntu/minecraft/ && java -Xmx1024M -Xms1024M -jar minecraft_server.jar nogui' EOF chmod +x start_minecraft_server.sh # Set to start automatically at reboot cat <<EOF > /var/spool/cron/crontabs/ubuntu @reboot /bin/bash -lc /home/ubuntu/minecraft/start_minecraft_server.sh 2>&1 >> /home/ubuntu/minecraft/cron.log EOF chown ubuntu /var/spool/cron/crontabs/ubuntu chmod 600 /var/spool/cron/crontabs/ubuntu chown -R ubuntu .** # Reboot to trigger CRON reboot
↓コピー&ペースト↓
コピー&ペーストで入力。 保存を押して完了です。
スクリプト内容について
このスクリプトは、サーバー(OS)が再起動するたびに自動でマイクラサーバーが立ち上がるようになっています。 不調時や、マイクラサーバーが落ちてしまった時は、サーバー(OS)を再起動するだけで自動で立ち上がります。
マイクラサーバーは screen
によってバックグラウンドで動作しています。
マイクラサーバーの設定を行う方法は、後述の マイクラサーバーの設定を変更する方法
を確認してください。
3. OSの再インストール
続いて、先程追加したスクリプトを実行するためにOSを再インストールします。
メニューから"OSインストール"を選んで、
ダイアログで"標準OS"を選択。
各種項目を入力します。
- 名前 : お好みの名前をどうぞ
- パスワード : 簡易なものではなく、推測されにくいものを設定してください。※忘れないように注意してください
入力内容が間違っていないかを確認し、実行ボタンを押します。
インストール完了を待ちます。 コントロールパネルのマークが"起動中"になればインストール完了です。 (停止した状態でインストール実行した場合は、電源をONにしてください。)
動作確認
実際に繋いでみます。 コントロールパネルに表示されているアドレスを接続先として入力します。 ↓入力↓ ↓接続↓ 無事接続されました!
おまけ
ちょうど目の前に村があったので、seed値を公開しておこうと思います。
/seed [00:16:22] [Server thread/INFO]: Seed: 5456644412029101600
マイクラサーバーの設定を変更する方法
設定ファイルを書き換える
まず、シリアルコンソールにログインします。
vi minecraft/server.properties
次に、このコマンドを実行すると、VIというエディタで設定ファイルが開かれます。 VIの操作は特殊なので、こちら等を参考に、任意の項目を書き換えてください。
マイクラのサーバーコマンドから設定を変更する
今回紹介したスクリプトでは、サーバーをバックグラウンドで動かすために screen
というツールを利用しています。
こちらもシリアルコンソールにログインして作業を行います。
サーバーの設定を変更するために下記のコマンドを実行して、既に起動しているscreenのセッションに入り(attachし)ます。
ubuntu@***-***-*****:~$ screen -r minecraft-server
[16:51:40] [Server thread/INFO]: Default game type: SURVIVAL [16:51:40] [Server thread/INFO]: Generating keypair [16:51:40] [Server thread/INFO]: Starting Minecraft server on *:25565 [16:51:40] [Server thread/INFO]: Using epoll channel type [16:51:40] [Server thread/INFO]: Preparing level "world" [16:51:41] [Server thread/INFO]: Loaded 488 advancements [16:51:41] [Server thread/INFO]: Preparing start region for level 0 [16:51:43] [Server thread/INFO]: Preparing spawn area: 0% [16:51:44] [Server thread/INFO]: Preparing spawn area: 42% [16:51:45] [Server thread/INFO]: Done (4.456s)! For help, type "help" or "?"
attachすると、実行中のマイクラサーバーログが表示されます。
あとは通常どおり、 /
でマイクラのコマンドを実行します。
/help [16:54:45] [Server thread/INFO]: --- Showing help page 1 of 10 (/help <page>) --- [16:54:45] [Server thread/INFO]: /advancement <grant|revoke|test> <player> [16:54:45] [Server thread/INFO]: /ban <name> [reason ...] [16:54:45] [Server thread/INFO]: /ban-ip <address|name> [reason ...] [16:54:45] [Server thread/INFO]: /banlist [ips|players] [16:54:45] [Server thread/INFO]: /blockdata <x> <y> <z> <dataTag> [16:54:45] [Server thread/INFO]: /clear [player] [item] [data] [maxCount] [dataTag] [16:54:45] [Server thread/INFO]: /clone <x1> <y1> <z1> <x2> <y2> <z2> <x> <y> <z> [maskMode] [cloneMode] [16:54:45] [Server thread/INFO]: Tip: Use the <tab> key while typing a command to auto-complete the command or its arguments /op sashimi3 [16:55:35] [Server thread/INFO]: Opped sashimi3 /banlist [16:54:45] [Server thread/INFO]: There are 0 total banned players: [16:54:45] [Server thread/INFO]:
設定が済んだら、 Ctrl + A
キーを押した後に一旦離してから、 D
キーを押すと離れることができます。
バージョンアップデート方法
サーバー実行ファイルのダウンロードページにアクセスし、ダウンロードリンクをコピーします。 https://minecraft.net/ja/download/server
次に、シリアルコンソールにログインし、下記のように入力して実行します。
cd /home/ubuntu/minecraft && wget -O minecraft_server.jar [コピーしたダウンロードリンク]
ubuntu@xxx-xxx-xxxxx:~$ cd /home/ubuntu/minecraft && wget -O minecraft_server.jar https://s3.amazonaws.com/Minecraft.Download/versions/1.12/minecraft_server.1.12.jar --20xx-xx-xx xx:xx:xx-- https://s3.amazonaws.com/Minecraft.Download/versions/1.12/minecraft_server.1.12.jar Resolving s3.amazonaws.com (s3.amazonaws.com)... xx.xxx.xx.xx Connecting to s3.amazonaws.com (s3.amazonaws.com)|xx.xxx.xx.xx|:xxx... connected . HTTP request sent, awaiting response... 200 OK Length: xxxxxxxx (xxM) [application/octet-stream] Saving to: ‘minecraft_server.jar’ minecraft_server.ja 100%[===================>] xx.x0M x.xxMB/s in x.xs 20xx-xx-xx xx:xx:xx (x.xx MB/s) - ‘minecraft_server.jar’ saved [xxxxxxxx/xxxxxxxx] ubuntu@xxx-xxx-xxxxx:~/minecraft$
このように表示されたら、アップデートのダウンロードは成功です。 サーバー(OS)を再起動すれば新しいバージョンでマイクラサーバーが起動されます。