2019年7月15日月曜日

テスト用DBを一発で初期化するbash

自分の忘備録

開発しているときは、テスト用DBを繰返し初期化する。
そのシェル。でも、僕以外にはほとんど利用価値はないかも、、、
ポイントは、DBにインポートするデータを集めたdirectoryを指定し
その中から、ファイル名だけを抽出してDB登録するシェルに渡す処理かも

自分用だから、説明はなし。

Peace!!

#!/bin/bash

# テスト用データのディレクトリー
files="../../data/*"
fileary=()
dirary=()

DB=DB名称
USER=ユーザ名
PW=パスワード

# DBのデータを削除して初期化する
mysql -u$USER $DB -p$PW << EOS
truncate hd;
truncate seibans;
update counters set value=0 where name='seibans';
EOS


for filepath in $files; do
    if [ -f $filepath ] ; then
        fileary+=("$filepath")
    elif [ -d $filepath ] ; then
        dirary+=("$filepath")
    fi
done

#echo "ファイル一覧"
for i in ${fileary[@]}; do
    qq=$i
    # pathを削除
    qqq="${qq##*/}"
    # ファイル名の拡張子を取る
    FILE=${qqq%.*}
    # テストデータDB登録
    ./reg.sh $FILE
done

#echo "ディレクトリ一覧"
#for i in ${dirary[@]}; do
#    echo $i
#done

2019年7月13日土曜日

Android studio 小ネタ

Android studio の備忘録、特に小ネタ
メモ代わりに追加していきます。

(1)既存のProject/Packageを利用して新しいPackageのProjectを作る


(2)既存のProjectを、OneDriveにコピーして利用する

Android Studioで開いて、build > Clean Project
そのまますると、スマフォへのインストール時に、古いWindows Pathを使おうとする。
そのエラーでインストールできなかったけど、このを実行したあとはインストールできた。コンソールに出るメッセージでも変わった事は確認できた。
これで、OneDriveを介して複数のPC間でプロジェクトを共有可能となった。
便利便利 (^^)/

Peace!!


2019年7月12日金曜日

Firebase ML KitのSample Package名を、新たなPackage名に変更する

あくまでも、忘備録

何を言っているかというと、、、まぁ、うまく伝えられないので、、、
簡単にいうと自分のPackage名(com.futureagri. )にしたい。
com.google.firebase.samples.apps.mlkit というながーいPackage名
それに、google さんのsamplesと入るのは、嫌だなぁ

Firebaseのプロジェクトもっており、アプリの登録もできるている事



ベタベタだけど、、、

(1) Package 名を決める
com.futureagri.app.xxx.hd
その名前で、Firebaseにアプリの登録を済ませる。

(2)ソースコードの修正
quickstart-android\mlkit\app\src\main\java\com\google\firebase\samples\apps\mlkit
のmlkitをコピーする。
この中にあるソースコードのPackage名を変更する。

com.google.firebase.samples.apps.mlkit を
com.futureagri.app.xxx.hd  に変更する。

(3) Android Studioで新規プロジェクトを作る
Start a new Android Studio project  を選び
Activityは、Add No Activity
次の画面にPackageの情報を入れれば取り合えず終わり。
Package名で指定したディレクトリーができている。

(4) 編集したソースコードをコピー
上記で出来たディレクトリーに(2)で編集したソースコードを入れる。

(5) いろいろなファイルのコピー
元々のmlkitのモノが使える。package名に対応した変更は必要。
ただし、mlkitのモノをそのまま全部入れない。
AndroidManifest.xml、\res以下のリソースファイルを確認しながら内容や、ファイルをコピーした。

(6) Android Studio立上げ
syncやBuildなどを行う。エラーがでてくるのでよく見ると、
比較的容易に集積できる。
build.gradle は2つあるが、それぞれの確認も必要です。

ここは少し時間がかった。エラー修正を少し繰り返し30分程度試行錯誤。

(7)BuildとInstall
数回繰り返して、Android デバイスにインストール。
File > Invalidate Cashes /Restart.... も行い。
Buildしなおして、OK

obsolete とwarningがでるけど、、、なんでだろう?

packageを変える方法は、他にもWebに載っているので、、、

これで、楽しい事がいろいろできる。(^^)/

Peace!!


2019年7月11日木曜日

MariaDB 思いっきりドーンとtable 作成


#!/bin/bash

DB=DB名
USER=ユーザ名
PW=パスワード

#CLMS1="tana, date, hinc, kata, katad"
#select count(*) from $TBL1 where $1 like "$2";
#select $CLMS1 from $TBL1 where $1 like "$2";
#show columns from zaiko;

mysql -u$USER $DB -p$PW << EOS
create table counters (name char(16), value int);
create table seibans (
seiban_id int,
seiban char(8),
seiban_name varchar(120),
hd_kpn int,
hd_end_id char(5),
hd_end_at char(14),
person_id char(5),
create_at char(14));
create table units (part_number int,rev_cnt int,hinc char(32),hink char(3),updata_header_count int,update_data_count int,drawing_name char(30),parts_numbers int,effect_records int,model_name varchar(120),unit_name varchar(120),model_code char(12),target_roth char(10),drawing_number_old char(30),quantity int,approval_id char(5),approval_at char(14),update_design_id char(5),update_design_at char(14),drawer_id char(5),update_drawing_at char(14),start_at char(14),end_at char(14),disabled_at char(14),regist_id char(5),regist_at char(14),update_id char(5),update_at char(14),delete_id char(5),delete_at char(14));
create table hd (
seiban char(8),
seiban_id int,
pos int,
update_info varchar(120),
code char(10),
layout_no varchar(120),
sharp varchar(6),
name varchar(120),
kata varchar(120),
spec varchar(120),
maker varchar(60),
members int,
total_members int,
payout_flag char(1),
remarks varchar(120),
update_reason varchar(120),
del_flag char(1),
kpn int,
tana char(32),
part_number int,
hinc char(32),
hink char(3),
regist_id char(5),
regist_at char(14));
EOS

Peace!!


#!/bin/bash

#!/bin/bash

DB=DB名
USER=ユーザ名
PW=パスワード

#CLMS1="tana, date, hinc, kata, katad"
#select count(*) from $TBL1 where $1 like "$2";
#select $CLMS1 from $TBL1 where $1 like "$2";
#show columns from zaiko;

mysql -u$USER $DB -p$PW << EOS
create table counters (name char(16), value int);
create table seibans (
seiban_id int,
seiban char(8),
seiban_name varchar(120),
hd_kpn int,
hd_quantity int,
hd_dest char(64),
hd_fjkn char(4),
hd_end_id char(5),
hd_end_at char(14),
person_id char(5),
create_at char(14));
create table hd (
seiban char(8),
seiban_id int,
pos int,
update_info varchar(120),
code char(10),
layout_no varchar(120),
sharp varchar(6),
name varchar(120),
kata varchar(120),
spec varchar(120),
maker varchar(60),
members int,
total_members int,
payout_flag char(7),
remarks varchar(120),
update_reason varchar(120),
del_flag char(1),
kpn int,
tana char(32),
part_number int,
hinc char(32),
hink char(3),
regist_id char(5),
regist_at char(14));
EOS



Shell scripts for MariaDB


1.mariaDBをログインしないでShell Scriptで使う例


#!/bin/bash

# variable check
if [ $# -ne 2 ]; then
    echo -n "Usage: "
    echo -n `basename $0`
    echo  " target-clolumn target-word"
    exit 1
fi

DB=データベース名
USER=ユーザ
PW=パスワード
TBL1=テーブル名
#CLMS1="tana, date, hinc, kata, katad"
CLMS1="tana, hinc, kata, katad"

mysql -u $USER -p$PW $DB << EOS
#select count(*) from $TBL1 where $1 like "$2";
select $CLMS1 from $TBL1 where $1 like "$2";
#show columns from zaiko;
EOS

上記を呼び出して使うShell Script

#!/bin/bash

DT=`cat ./target1.txt`
while read line
do
    #echo -------------------------------------------------
    tt=$line
    echo ">>> $tt"
    ./slct01.sh kata $tt
    #echo $line
done << FILE
$DT
FILE

2.バックアップ用のShell script

#!/bin/sh
# Set mask for other user cann't read
umask 077

# backup file
# Retention period
period=31

# directory for backup files
dirpath='/home/pi/backup/mysql'

# backup file naming
filename=`date +%y%m%d`

#DB=データベース名
USER=ユーザ
PW=パスワード

# excute
mysqldump --opt --all-databases --events --default-character-set=binary -u$USER --password=$PW | gzip > $dirpath/$filename.sql.gz

# delete old backup files
oldfile=`date --date "$period days ago" +%y%m%d`
rm -f $dirpath/$oldfile.sql.gz

3.テストデータを insert する時の例

例は、2つのテーブルにテスト用の値を設定している。
テーブルのデータを削除するのは、

truncate seibans;
truncate  counters;

#!/bin/bash

DB=データベース名
USER=ユーザ
PW=パスワード
TBL1=seibans
TBL2=counters

# 配列宣言(-a)
declare -a sbn=()
# 初期化
declare -a sbn=("11111-11" "12345-76" "88888-99" "12345-56" "12345-89" "99999-00" "12345-66" "19625-01" "12345-67" "19625-02")

i=0
j=0
for e in ${sbn[@]}; do
    #echo "sbn[$i] = ${e}"
    let i++
    let j++
    aa=`date '+%s' | awk '{print strftime("%Y%m%d%H%M%S", $1)}'`
mysql -u $USER -p$PW $DB << EOS
insert into $TBL1 values ($j, '${e}', '${e}', 0, '11111', '$aa', '11111', '$aa');
EOS
done

mysql -u $USER -p$PW $DB << EOS
insert into $TBL2 values ('payouts', 1);
insert into $TBL2 values ("seibans", 1);
EOS

Peace!!

MyLife

僕の趣味は、こんな感じ、、、
この為に、働いているのだぁ、、、はず (^^)
Kayak, Climbing, Music, Skateboard, Airplane

Kayak

いきててよかった。良い子は真似しないようにね。

ハンドロール

2019年 春遠征

古い写真

Climbing

前穂高岳登頂(徳沢ー奥又白池泊ーA沢ー前穂高岳)

Music

Please wait!!

Skateboard

Please Wait!!

Air Plane

Soon!!

Peace!!

Robotics

僕が開発してるロボットについて、要素技術も含めてまとめ?
いえ、自分の整理用

1.開発ポリシー、概要

自律搬送クローラロボットの開発情報のまとめページ

2013年に最初に書いたロボットの 考え方
基本は変わっていません。

2.RDCS



3.要素技術

3.1 SLAM関係
Raspberry Piで、低コスト Lidar SLAMTEC RPLIDAR A2 を使う

Peace!!