2011|08|
2013|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|05|06|07|08|09|10|11|12|
2016|01|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|

2019-01-03 N-BOXのタイヤ交換 [長年日記]

■購入したもの

メルテック ローダウンフロアージャッキ(2t) ローダウン対応 油圧式 最高値:330mm/最低値:80mm/ストローク:250mm アタッチメント付・サドル30mm Meltec F-70

メルテック クロスレンチ 薄型ソケット仕様 ソケットサイズ:17/19/21/23mm Meltec F-43

ブリヂストン (タイヤ) ブリザック VRX 155/65R14 2018年製 (ホイール) アリア 14×4.5J PCD100/4H +43 シルバー ■軽自動車用 【スタッドレスタイヤ・ホイール4本セット】


2019-01-07 omsデータのpostgreSQLへのインポート [長年日記]

コマンドプロンプトから、

osm2pgrouting -f "D:\postGIS\kashiwanoha.osm" -c "D:\PostgreSQL\10\bin\mapconfig_for_cars.xml" -W passXXXXword -p 5433 -d kashiwanoha_routing -U postgres -h localhost


2019-01-08 "サインイン情報を削除" [長年日記]

サインインできなくなったら、"サインイン情報を削除"のボタンを押してもよい(エントリは消えないみたい)


2019-01-09 コマンドプロンプトからWindows10の環境変数の設定方法 [長年日記]

Windows10の環境設定画面から、環境変数を設定しても消えてしまう(現時点で理由不明)ので、SETXを使って強制的に設定した。

システム環境変数の設定はできないみたいだら、取り敢えず、環境変数が設定できれば足りるので、これで対応した。

>SETX ISPELL_DICTDIR "C:\win32app\ispell-w32\dic"

PATHの追加の場合は、上書きにしなければならないことに注意。

>SETX PATH "%PATH%;C:\win32app\ispell-w32\bin"

-----

システム環境変数に設定したければ、コマンドプロンプトを管理者権限で立ち上げれば、対応可能(emacsを管理者権限で立ち上げてshellを使ったら成功した)

その場合は、

SETX → SETX /M

とすれば良い。

_


2019-01-19 MSYS2/MinGW-w64 (64bit/32bit) インストール手順 [長年日記]

MSYS2/MinGW-w64 (64bit/32bit) インストール手順

MSYS2/MinGW-w64 (64bit/32bit) インストール手順

  • この内容の出所
  • 1. MSYS2 のページ
  • 2.プログラムメニューから MSYS2 の MSYS Shell を選択して、以下のコマンドを実行します。
    • pacman -Syuu

      以下のメッセージが表示された場合には、Shell の画面を 右上の×ボタンで閉じ、再度 MSYS2 の MSYS Shell (スタートボタンにメニューが出てきます:多分)を開いて、上記コマンドをもう1度実行します。

      • 警告: terminate MSYS2 without returning to shell and check for updates again
      • 警告: for example close your terminal window instead of calling exit
  • 3.MinGW-w64 (64bit) の開発環境をインストールします。
    • pacman -S base-devel
    • pacman -S mingw-w64-x86_64-toolchain
  • 4.MinGW-w64 (32bit) の開発環境をインストールします。
    • pacman -S mingw-w64-i686-toolchain
  • 5.環境変数のセット
    • set PATH=C:\msys64\mingw64\bin;C:\msys64\usr\local\bin;C:\msys64\usr\bin;C:\msys64\bin;%PATH%
    • set MSYSTEM=MINGW64
    • Windowsの環境変数を引き継ぐのであれば、"msys2_shell.cmd"の中にある、"rem set MSYS2_PATH_TYPE=inherit"のremを外す
  • 6.未着手だけど、今後必要になりそうな情報

  • 2019-01-20 C言語のtime_tではなく、std::chrono::system_clock::time_point を使わなければならなくなった [長年日記]

    /*
      g++ -g time_point2.cpp -o time_point2
     
      g++ -g time_point2.cpp -o time_point2 -I"D:\PostgreSQL\10\include" -L"D:\PostgreSQL\10\lib" -llibpq -lwsock32 -lws2_32
     
    */
     
    /*
      C言語のtime_tではなく、std::chrono::system_clock::time_point を使わなければならなくなり、
      色々調べて、(エライ時間がかかったが)ようやくここに辿りついた
     
      ・・・そんなに便利かなあ? このライブラリ?
      (いや、勿論、時間計算が便利なのは分かっているんだけどね)
    */
     
    #include <iostream>
    #include <chrono>
    #include <ctime>
    #include <time.h>
     
    int sub_time_point(std::chrono::system_clock::time_point tp)
    {
     // Add 0.123456 seconds
      // This will not compile if std::chrono::system_clock::time_point has
      //   courser resolution than microseconds
     
      //tp += std::chrono::microseconds(123456);
      
      // Now output tp
      
      // Convert std::chrono::system_clock::time_point to std::time_t
      std::time_t tt = std::chrono::system_clock::to_time_t(tp);
     
      // Convert std::time_t to std::tm (popular extension)
      std::tm tm = std::tm{0};
      //gmtime_r(&tt, &tm);  // Error
      //gmtime_s(&tt, &tm);  // Error
     
      // tm = *(gtime(&tt)); // グリニッジ時間
      tm = *(localtime(&tt)); // ローカル時間
     
      // Output year
      std::cout << tm.tm_year + 1900 << '-';
     
      // Output month
      std::cout << tm.tm_mon  << '-';
     
      // Output day
      std::cout << tm.tm_mday << ' ';
     
      // Output hour
      if (tm.tm_hour <= 9)
    	std::cout << '0';
      std::cout << tm.tm_hour << ':';
     
      // Output minute
      if (tm.tm_min <= 9)
    	std::cout << '0';
      std::cout << tm.tm_min << ':';
     
      // Output second
      if (tm.tm_sec <= 9)
    	std::cout << '0';
      std::cout << tm.tm_sec << '\n';
     
      return 0;
    }  
     
     
    int main()
    {
      // Create 10-10-2012 12:38:40 UTC as a std::tm
      std::tm tm = {0};
     
      tm.tm_sec = 14;
      tm.tm_min = 38;
      tm.tm_hour = 12;
      tm.tm_mday = 10;
      tm.tm_mon = 10;
      tm.tm_year = 112; // + 1900
      tm.tm_isdst = -1;
      
      // Convert std::tm to std::time_t (popular extension)
      //std::time_t tt = timegm(&tm);
      std::time_t tt = mktime(&tm);
     
      // Convert std::time_t to std::chrono::system_clock::time_point
      std::chrono::system_clock::time_point tp = 
    	std::chrono::system_clock::from_time_t(tt);
     
      sub_time_point(tp);
     
      return 0;
     
    }
    
    syntax2html

    2019-01-21 クラスの配列を引数とする関数 [長年日記]

    /*
      g++ -g test.cpp -o test
    */
     
    #include <iostream>
    #include <string>
    #include <chrono>
    #include <time.h>
     
    class A
    {
    public:
      int a1; 
    };
     
    int func(int count, class A *a)
    {
     
      for ( int i = 0; i < count; i++){
    	a->a1 = i;
    	a++;
      }
      
      return 0;
     
    };
     
    int main()
    {
      class A aa[4];
     
      func(4, (class A*)&aa);
     
      printf("%d %d %d %d\n", aa[0].a1,aa[1].a1,aa[2].a1,aa[3].a1);
     
      return 0;
    }
    
    syntax2html

    2019-01-22 Windowsコマンドプロンプトで漢字が化ける時の対応の一例 [長年日記]

    ■Windowsコマンドプロンプトの文字コード確認方法
    コマンドプロンプトで、
    chcp
    と入力して[Enter]キーを押す

    932と表示されたら、文字コードは、Shift-JISに設定されている
    → が、私の環境ではやっぱり932を設定しなおさないと、化ける

    ■Windowsコマンドプロンプトの文字コード変更方法

    文字コードをSJISに設定する場合 → chcp 932
    文字コードをUTF8に設定する場合 → chcp 65001
    と入力して[Enter]キーを押す

    コマンドプロンプトを終了して、再度起動すると、文字コードは、Shift-JISに戻る(こともあるんだろうか?)


    2019-01-23 タスクリストMSYS2/MinGW-w64 (64bit)をインストールしたら、Windows10の環境で開発できなくなった件 [長年日記]

    タスクリストMSYS2/MinGW-w64 (64bit)をインストールしたら、Windows10の環境で開発できなくなった件

    タスクリストMSYS2/MinGW-w64 (64bit)をインストールしたら、Windows10の環境で開発できなくなった件

    • 1.背景
      • これまで、Windows10でMeadow3 + gdb環境で開発をしてきた
        • 快適かどうかは分からんが、同じ環境は助かる
      • ところが、mingw64の環境をWindows10の方で引き継げないらしい
      • もちろん、このshellの中では問題なくコンパイルできる
    • 2. 課題
      • Windows10上で、Meadow3が開発環境をひっぱってくれれば、なんだっていい
    • 3. 課題を解決する手段
      • MSYS2 MinGW 64bitの中から、Meadow3を力づくで叩く
        • 一応立ち上がり、環境も引きつがれる
    • 4. 発生した問題
      • Mx-shellを実行すると、訳が分からない表示が出る
    • 5. 解決する手段
      • Mx-eshell(×shell)を実行すると、使える画面として表示される
      • MSYS2 MinGW 64bitの環境と同様に使える
    • 6. 考察
      • ここまでせんでも、MSYS2 MinGW 64bitの中にemacsを作ればいいのだが、どういう訳かgdbが暴走してしまうので、当面この方法で対応することとする。

    2019-01-24 C/C++実行時にライブラリのリンクエラーがでたら、コンパイルに片っ端から付けて試してみるもの [長年日記]

    d:\home\c-anemone2019\make_tables_20190110\make_tables> g++ -g Clock.cpp -o Clock.exe -std=c++0x -static-libstdc++ -static-libgcc -lodbc32 -lwsock32 -lwinspool -lwinmm -lshell32 -lcomctl32  -lodbc32 -ladvapi32 -lodbc32 -lwsock32 -lopengl32 -lglu32 -lole32 -loleaut32 -luuid
     g++ -g Clock.cpp -o Clock.exe -std=c++0x -static-libstdc++ -static-libgcc -lodbc32 -lwsock32 -lwinspool -lwinmm -lshell32 -lcomctl32  -lodbc32 -ladvapi32 -lodbc32 -lwsock32 -lopengl32 -lglu32 -lole32 -loleaut32 -luuid

    d:\home\c-anemone2019\make_tables_20190110\make_tables>Clock
    Clock
    date1, Tue Jan 01 00:00:36 2019
    date1, Tue Jan 01 00:01:12 2019
    date1, Tue Jan 01 00:01:48 2019
    date1, Tue Jan 01 00:02:24 2019
    1日目、現在日時はTue Jan 01 00:02:24 2019


    稼動を確認したら、どんどん消していく。
    今回の正解は、これ↓だった。

    d:\home\c-anemone2019\make_tables_20190110\make_tables>g++ -g Clock.cpp -o Clock.exe  -static-libstdc++ 

    d:\home\c-anemone2019\make_tables_20190110\make_tables>Clock
    Clock
    date1, Tue Jan 01 00:00:36 2019
    date1, Tue Jan 01 00:01:12 2019
    date1, Tue Jan 01 00:01:48 2019
    date1, Tue Jan 01 00:02:24 2019
    1日目、現在日時はTue Jan 01 00:02:24 2019


    2019-01-27 QGISで動画表示する [長年日記]


    2019-01-28 PosiView multi vehicle/object tracking tool [長年日記]

    PosiView

    PosiView

    • PosiViewマルチ車両/物体追跡ツール
      • 1.コンセプト
        • (A)PosiViewは複数の車や物を追跡することを可能にするプラグインです。 それはGPS、USBLシステムまたは他のシステムのような装置から通常NMEA-0183フォーマットで提供される位置と他のデータを受け入れます。

          (B)これらのデバイスへの接続は、ネットワークソケットに接続しているデータプロバイダ(UDP / TCP)によって確立されます。 ファイルベースの入力のような将来の代替案が計画されています。

      • 2.コンフィギュレーション
        • (A)PosiViewを有効にして設定ダイアログを開く
        • (B)プロバイダページで、必要に応じてプロバイダを作成および設定します。
          • ・最初に新しいプロバイダを追加し、それに一意の名前を付けてプロパティを選択します。
          • ・変更を適用することを忘れないでください。
        • (C)Vehicle / Objectページで、必要に応じて車両を作成および設定します。
          • ・最初に新しい車両を追加し、それにユニークな名前を付けてそして特性を選択してください。

            ・タイプを選択してください。 シェイプタイプの場合は、シェイプlineeditを右クリックしてテンプレートシェイプを選択できます。 必要ならば手で形を変えなさい。

            ・形状タイプの場合は、実際のサイズを設定します。

            ・アウトライン、塗りつぶし、トラックの色の色を選択します。

            ・Z値は垂直方向の描画順序を定義します。

            ・タイムアウトを選択してください。 その時間内に修正が受信されないと、トラッキングウィンドウの表示は赤に変わります。 タイムアウトのn倍以内に修正が受信されないと、追加の通知がメッセージバーに表示されます。

            ・1つ以上のデータプロバイダを割り当てます。 プロバイダが複数のポジションを提供する場合は、フィルタが必要です。 これはビーコンIDまたは文字列です。 AISプロバイダの場合、フィルタはMMSIにする必要があります。

            ・変更を適用することを忘れないでください。

        • (D)変更を適用してください。 プロバイダと車両は追跡ウィンドウに表示されます。
      • 3.トラッキング
        • (A)オンライン追跡を開始します。
        • (B)ガイダンスウィンドウを開き、2つの車両/オブジェクトを選択して距離と方位を確認します。 窓の下端を引き下げると、コンパスが見えます。
      • 4.レコーディング
        • (A)車両と物体の位置と方位はテキストファイルに記録できます。 すべてのオブジェクトは1つのファイルにマージされます。 10000行後に新しいファイルが作成されます。
        • (B)プロパティダイアログで、ファイルを保存する場所のパスを選択します。
        • (C)記録はトラッキング開始時に自動的に、または手動で開始することができます。
    • PosiViewプラグイン
      • PosiViewは、USBL、GPS、その他のナビゲーションデバイスを介して、複数の車両や移動体を追跡してその位置を報告します。
      • 特徴
        • ・プラグインは通常、USBLまたは他のナビゲーションデバイスからNMEA形式のデータを読み取り、そのオブジェクトを拡大縮小された記号としてキャンバスに表示します。
        • ・さらに、位置は複数のドッキングウィンドウに表示されます。
        • ・このプラグインの主な目的は、QGISを水中機器用のナビゲーションソフトウェアに変えることです。
      • インストール
        • ・git経由
          • リポジトリを複製する
          • make deployを実行してください。
        • ・リポジトリサーバー経由
          • プラグインマネージャに行き、PosiViewをインストールしてください。
      • クイックスタート
        • ・プラグインを有効にする
        • ・設定ダイアログを開く
        • ・1つ以上のデータプロバイダを作成し、適切なパーサを選択してください
        • ・1つ以上の携帯電話/車両を作成し、対応するデータプロバイダを割り当てます。
        • ・追跡を開始
        • ・ガイダンスドックで車を選択して距離と進行方向を確認します

    2019-01-29 MinGWでのDLLの作り方と提供の仕方 [長年日記]

    MinGWでのDLLの作り方と提供の仕方

    (Step 1)

    main.cpp
    //-------------------------------
    #include <stdio.h>
    #include "dlltest.h"
    int main(void)
    {
      printf("Add:%d\n", add(1, 2));
      printf("Sub:%d\n", sub(1, 2));
      return 0;
    }
    //-------------------------------


    dlltest.h
    //-------------------------------
    int add(int x, int y);
    int sub(int x, int y);
    //-------------------------------

    dlltest.cpp
    //-------------------------------
    int add(int x, int y)
    {
      return x + y;
    }
     
    int sub(int x, int y)
    {
      return x - y;
    }
    //-------------------------------

    (Step 2)
    >gcc -c dlltest.cpp
    (gdbで調べたい時は">gcc -c -g dlltest.cpp")

    (Step 3)
    >gcc dlltest.o -o dlltest.dll -shared
    (これで、dllファイルの完成)

    (Step 4)
    >gcc -c  main.cpp
    >gcc main.o dlltest.dll -o ebata.exe
    ("gcc -g main.cpp dlltest.dll -o ebata.exe" とすれば, main.oを生成することなく、かつ、gdbが使える)

    ==============================

    MinGW以外のコンパイラ(Visual Studioとか)で作成したexeで、MinGW作成のDLLを使用する場合は、(Step 3)を以下のようにする
    >gcc dlltest.o -o dlltest.dll -shared -Wl,--out-implib,dlltest.lib
    すると"dlltest.lib"ができる。
    dllの提供先には、"dlltest.h" ("dlltest.cpp"も付けた方が親切). "dlltest.dll", "dlltest.lib" の3つを全部送付する。


    2019-01-30 Today's trial for PosiView plugin [長年日記]