Iwao Dev

気付いたことをメモしています.

この画面は、簡易表示です

Synology

Note Station の設定

Note Station をインストールはしていたが,使用していなかった.
Synology NAS をもっと使えないかと調べていたら,このツールが Evernote と似た用途とあった.
DSM の「メインメニュー」から「Note Station」を選択.
起動直後に表示されるリンク,または「設定」ダイアログ内からデスクトップ版を入手.


デスクトップ版 Note Station は,QuickConnect だと簡単に接続できた.

モバイル版は,Synology サイトのここから入ってインストール.
同様に入ろうとするが,なぜか入れない.

この方法がわかり難かった.
「アプリケーション ポータル」で note を設定.

LAN 内であれば 192.168.x.xxx/note と指定することで開ける様になった.


2018/05/13
「File Station」のスマートフォン版「DS File」.
PC からのアクセス(ブラウザで ds116/file)はうまく動作するのに,DS file ではログインできないでいた.
が,今日操作すると入れるようになっている.
その間に弄ったところで思いつくのは,AC86U の「ポートフォワーディング」の設定.
WebDAV http 5005 192.168.1.216 TCP
WebDAV https 5006 192.168.1.216 TCP
設定を外しても動作しているので詳細は不明.



  にほんブログ村 IT技術ブログへ


RT-AC86U 追加 – 2

次に影響が少ない psc 2550 .
固定 IP を DHCP に変更して AC86U に接続したが,DHCP がうまく動作せず後回し.


AP の WN-AC1167R は,単純に繋ぎ変えだけで 192.168.1.xx に.
HDL-AH2W ,HVL-S3 を DHCP に.
DS115j ,DS116 を,DHCP に.
全てを AC86U に接続.BL190HW,AC86U,WR9500N などは何度か再起動.
PC なども ASUS Ruter アプリで確認しながら,必要に応じて再起動.
AP と子機の WR9500N も,繋ぎ変えだけで 192.168.0.2xx から 192.168.1.2xx になった.
何度か再起動が必要なものもあったが,DS11x を除いて移行できた.
psc 2550 も 192.168.1.x になり,固定 IP に設定.


DS115j と DS116 を固定 IP(192.168.1.216)に(以降 4 つ目の値は実際と異なります).
DS115j は公開してないので DHCP で良いが,IP で打つことが多いので固定にしている.
また,AC86U も WAN 側を固定(192.168.0.120)に.
27.92.169.109 — BL190HW — 192.168.0.120 — AC86U — 192.168.1.216
PC から tracert .

 1     1 ms     1 ms     1 ms  router.asus.com [192.168.1.1]
 2     1 ms     1 ms     1 ms  web.setup [192.168.0.1]
 3     *        *        *     要求がタイムアウトしました。
 4     5 ms     6 ms     6 ms  tmfACS001.bb.kddi.ne.jp [27.85.212.25]
 5    11 ms    12 ms    12 ms  27.80.241.61
 6    10 ms    10 ms    10 ms  27.80.241.238
 7    10 ms    10 ms    10 ms  jc-osa301.int-gw.kddi.ne.jp [113.157.227.82]
 8  ....

LAN 内から,エクスプローラなどではアクセスできるが,http でアクセスできない.
DSM コントロールパネルの「セキュリティ」-「ファイアウォール」-「custom」.

他に,Web アクセスの PHP も 192.168.1.x が有効となる様に変更.


この状態では,Web サーバとして外からアクセスできない.
BL190HW のポートマッピングの設定で,次のものを追加.
192.168.0.120 TCP any

また DMZ の設定に 192.168.0.120 を.
AC86U の「ポートフォワーディング」の設定で次を追加.
HTTP DS116 80 192.168.1.216 TCP

これで,外からは mish.myds.me にアクセスできる様になった.
この 5 時間程度,外からのアクセスは停止.


まだ LAN 内からは mish.myds.me でアクセスできない.
暫くわからず AC86U の IPv6 の関係と思い調べたが,あまり有用な情報はわからず.
試しに,「Passthrough」,自動接続を「有効」にすると,意図した動作となった.



  にほんブログ村 IT技術ブログへ


球が作成できない

背景画像のアップロードで,球を生成してそれに貼り付ける.
コード自体はそれほど難しくないので,1 日位でできると思ってた.
Windows のコンソール AP で,次の様なコードを書いてテスト.
MakeBG.cpp


#include "MessBar.hxx"
#include "i_Trace.hxx"
#include "GonsPrm2.hxx"
#include "Htm_thrj.hxx"

//*******************************************************************************
// make bg files imo and html
// Create : 2018/04/19
//*******************************************************************************
inline bool MakeBG (c_tstring& dibPath)
{
    tstring ext = ::Path_GetExtLow(dibPath) ;
    if      (ext == _T("bmp")) { ;              }
    else if (ext == _T("jpg")) { ;              }
    else if (ext == _T("png")) { ;              }
    else                       { return false ; }
    {
        tstring imoPath = ::Path_ChangeExt(dibPath,_T(".imo")) ;
        tstring htmName = ::Path_ChangeExt(dibPath,_T(".html")) ;
        tstring dmpName = ::Path_ChangeExt(dibPath,_T(".ipl")) ;
        {
            long div = 90/5 ;
            v_Vd3A pntsAry = ::BuildSphere(div) ;
            {
                std::tout << pntsAry.size() << std::endl ;
                if (pntsAry.size() > 0) {
                    Vd3A pnts = pntsAry[0] ;
                    std::tout << pnts.size() << std::endl ;
                    }
                tstring str = ::v_V3_To_tstring(pntsAry,_T(",")) ;
                {
                    std::tout << str << std::endl ;
                    }
                ::SaveText(dmpName.c_str(),str) ;
                }
            v_Vd2A  txuvAry = ::SetTextureUV(pntsAry) ;
                    pntsAry = ::V3_Scale (pntsAry,Vd3(20.)) ;
            Gons1   gons1 = ::Gons_BuildFace(pntsAry,txuvAry,dibPath.c_str()) ;
            GonsA   ga ;
                    ga.push_back(gons1) ;
            Ed3     es = ::GonsA_GetExtent(ga) ;
            {
                std::tout << imoPath << _T("\t") ;
                std::tout << ::V3_To_tstring(es.Volume()) << std::endl ;
                }
            if (es.Volume() != Vd3(0)) {
                es = Ed3(es.L*0.01,es.G*0.01) ;
                ::GonsA_ToOBJ(ga,imoPath.c_str()) ;
                ::HT_Make_three_js_html(imoPath.c_str(),es) ;
                }
            }
        }
    return true ;
    }

//*******************************************************************************
// Make BG
// Create : 2018/04/19
//*******************************************************************************
int _tmain (int argc,TCHAR* argv[])
{
    _tsetlocale(LC_ALL,_T("")) ;
    {
        double s = sin(rad(30)) ;
        double c = cos(rad(30)) ;
        std::tout << ::To_tstring(rad(30)) << _T("\t") << ::To_tstring(s) << _T("\t") << ::To_tstring(c) << std::endl ;
        }
    if (argc > 1) {
        v_tstring argAry ;
        for (int index=1 ; index<argc ; index++) {
            tstring av = argv[index] ;
            ::MakeBG(av) ;
            }
        }
    else {
        tstring buf ;
        buf.resize(1000) ;
        {
            while (std::terr << _T("dib ? =") , std::tin.getline(&buf[0],buf.size()))
            {
                tstring str = buf.c_str() ;
                if      (str == _T("q"))   { break ; }
                else if (str == _T("Q"))   { break ; }
                str = ::QuotM_Del_All(str) ;
                if (str.empty())           { continue ; }
                if (::File_IsNothing(str)) { continue ; }
                tstring dib_file = str ;
                ::MakeBG(dib_file) ;
                }
            }
        }
    return 0 ;
    }

#include "MessBar.cxx"

今度は,DS116 でビルドして実行すると,

Iwao@DS116:/var/.../Test/up_bg/data$ ./a.out
0.523599        98314745853377985068733249901357667205561433229409406145971019710277043155206326909160297391588106447153156445277590513896008090831662627743743127151181611161993303763348552511914898438567008016612049817143085994563143448055356356529593034366351316506187159487365573007925410016860727208738652774465536.000000  98321247861193438769252981549279948821735544950351014769381393881588573259178110828643912278175146924986161470094082713103803921735703931192359519739047155548857037547932930737608178537416409042994283830606984599100883034181136178714087912736395732787698542049681305006129736011480288874859116047106048.000000
dib ? =

本当は,

C:\Users\Iwao\...\i_Tools.tmp>\\DevXP\C_Drive\Temp\DS11x\MakeBG\Release.060\MakeBG.exe
0.523599        0.500000        0.866025
dib ? =

cmath が使えない様で,検索すると「-lm でコンパイルが通る」と言うのは見つかる.
が,コンパイルの問題ではなく,実行でうまくない.


当然ではあるが,DS115j でも同様.
試しに,opkg update と opkg install gcc .
root@DS116:/var/…/Iwao# opkg update
Downloading http://pkg.entware.net/binaries/armv7/Packages.gz
Updated list of available packages in /opt/var/opkg-lists/packages
root@DS116:/var/…/Iwao# opkg install gcc
Upgrading gcc on root from 6.3.0-1 to 6.3.0-1a…
Downloading http://pkg.entware.net/binaries/armv7/gcc_6.3.0-1a_armv7soft.ipk
Configuring gcc.
root@DS116:/var/…/Iwao#
もう一度,ビルドして実行すると,
Iwao@DS116:/var/…/Test/up_bg/data$ g++ MakeBG.cpp
Iwao@DS116:/var/…/Test/up_bg/data$ ./a.out
0.523599 0.500000 0.866025
dib ? =
予想以上に時間がかかってしまったが,何とか…
daikoku_edit.html



  にほんブログ村 IT技術ブログへ


PHP $_FILES

やってないとすぐ忘れてしまうのでメモ.
PHP マニュアル POST メソッドによるアップロード


php 側での次の様な取り出し.
 $tempfile = $_FILES[‘fname‘][‘tmp_name’];
fname‘ にあたる部分は,input タグの name 属性.
 <input type=”file” name =”fname” accept=”.jpg,.png”>


CHttpFile でのアップロード の場合は,汎用的になる様に処理している.

	function  uf_upload_files  ()  {
		$d_dir =  uf_get_upload_folder() ;
	//	echo	$d_dir	.  "<br/>\r\n" ;
		$up_status = false ;
		foreach	($_FILES as  $keys => $values) {
			$file_e	= $values ;
			$tempfile =         	$file_e['tmp_name'] ;
			$filename = $d_dir .	$file_e['name'] ;
			$filename = uf_get_up_file_name($filename) ;
			if (is_uploaded_file($tempfile)) {
				$up_status = move_uploaded_file($tempfile,$filename) ;
				}
			}
		return	$up_status ;
		}


  にほんブログ村 IT技術ブログへ


アップロード先のアクセス権

次の様な htm と php で,画像をアップできる所を用意.


up.htm

<!DOCTYPE html>
<html lang="ja" >
  <head >
    <meta charset="UTF-8" />
    </head>
  <body >
    <form action="http:./up.php" method="post" enctype="multipart/form-data">
      <input type="file" name ="fname" accept=".jpg,.png">
      <input type="submit" value="upload">
      </form>
    </body>
  </html>

up.php

<?php
  $tempfile = $_FILES['fname']['tmp_name'];
  $fileName = './data/' . $_FILES['fname']['name'] ;
  $up_status = false ;
  if (is_uploaded_file($tempfile)) {
    $up_status = move_uploaded_file($tempfile , $fileName ) ;
    }
  $frm_src = './' ;
  if ($up_status) {
    $frm_src = $fileName ;
    }
  header("Location: {$frm_src}") ;
  ?>

これらのファイルとアップ先のフォルダを用意しただけでは,アクセス権がないのでアップロードできない.
以前は,DSM に入り「File Station」で「権限」を設定していた.
今まで面倒と思いつつ,試しに Windows 環境からアクセス権を「読み取り(RX)(RX)」から「変更」に.

File Station で設定したものと少し異なるが,それなりに動作してそう.



  にほんブログ村 IT技術ブログへ


QR コードが表示されない?

いつからなのか不明だが,DS116 上の qr_img.php を使用している所で正しく表示されなくなっていた.
気付いたのは昨日の昼頃.

DS115j 上や,//itools.hp2.jp/Test/qr/ のものはうまく動作している.
//itools.hp2.jp/ は DS116 上のものを利用しているのでうまく表示されない.


「Web Station」-「PHP 設定」で,「PHP エラーメッセージ表示…」にチェック.

すると,次の様なエラー.
 Fatal error: Call to undefined function ImageCreate() in /…/php/qr_img.php on line 609
検索すると GD が動作していないとのこと.
gd にチェックを付けてうまく動作する様になった.
OFF にした覚えはないので,DS116 上の何かの更新で無効になってしまったのか?



  にほんブログ村 IT技術ブログへ


QR コード生成 – 2

以前設定した「QR コード生成」を,もう少し汎用的に.
先ず,PHP が利用できるフリーのサーバを用意.
  SiteMix を利用.
  //itools.hp2.jp として登録.
QRcode Perl CGI & PHP scripts ver. 0.50」をサーバーに転送.
  
c_qr_img.js を転送.
  
これを利用したページ.
  //itools.hp2.jp/Test/qr/index.html


次の様なスクリプトを HTML の表示したいところに挿入する.
  <script src =”/Test/qr/c_qr_img.js” > </script>
  <script> call_qr_img_href() ; </script>
  <script> call_qr_img_free(“http://itl.mydns.jp”) ; </script>


src=”/Test/qr/c_qr_img.js” の部分は,”//itools.hp2.jp/Test/qr/c_qr_img.js” でテスト可能.
最終的には c_qr_img.js の次の所を,利用環境に合わせて編集してください.
   var domain = “//itools.hp2.jp” ;
   var qr_php = domain + “/Test/qr/qr_img/php/qr_img.php” ;




うまく動作しない時のチェック方法
QR コードが表示されない場合

JavaScript 内の qr_img.php の呼び出しが間違っている可能性があります.
ブラウザによっては「要素を調査」などで php を呼び出している部分を確認できます.


何も表示されない場合
JavaScript 自体をうまく呼び出せてない可能性があります.
html 内の呼び出し部分を確認してください.


c_qr_img.js

function	call_qr_img_php  (data,is_draw_data)
{
	var	domain	= 	"//itools.hp2.jp" ;
	var	qr_php	=	domain	+  "/Test/qr/qr_img/php/qr_img.php" ;
	{
		var	qr_img	=  "<img  src='"  +  qr_php  +  "?d="  +  data  +  "'>" ;
		document.write	(qr_img) ;
		}
	if (is_draw_data) {
		document.write	("<br/>") ;
		document.write	(data) ;
		}
	}

function	call_qr_img_href ()
{
	var	href	=	location.href ;
	call_qr_img_php	(href,true) ;
	}

function	call_qr_img_free (freeText)
{
	call_qr_img_php	(freeText,true) ;
	}


  にほんブログ村 IT技術ブログへ


opkg install tree

以前 DS115j には tree コマンドを入れていたが,DS116 はまだだったので…

Iwao@DS116:/tmp/http$ sudo -i
Password:

root@DS116:~# opkg install tree
-ash: opkg: command not found

root@DS116:~# cd /var/services/homes/Iwao/
root@DS116:/var/services/homes/Iwao# source ./set_ds_inc.sh
root@DS116:/var/services/homes/Iwao# opkg -v
opkg version 0.1.8
root@DS116:/var/services/homes/Iwao# opkg install tree
Installing tree (1.7.0-1) to root...
Downloading http://pkg.entware.net/binaries/armv7/tree_1.7.0-1_armv7soft.ipk
Collected errors:
 * opkg_install_pkg: Package tree md5sum mismatch. Either the opkg or the package index are corrupt. Try 'opkg update'.
 * opkg_install_cmd: Cannot install package tree.
root@DS116:/var/services/homes/Iwao# opkg update
Downloading http://pkg.entware.net/binaries/armv7/Packages.gz
Updated list of available packages in /opt/var/opkg-lists/packages
root@DS116:/var/services/homes/Iwao# opkg install tree
Installing tree (1.7.0-1) to root...
Downloading http://pkg.entware.net/binaries/armv7/tree_1.7.0-1_armv7soft.ipk
Configuring tree.
root@DS116:/var/services/homes/Iwao# tree
.
├── gcc_test
│   ├── 20170922.out
│   ├── a.out
│   ├── editad
│   ├── EditAd.cpp
│   ├── edit_ad.php
│   └── T_P_ini.cpp
├── set_ds_inc.sh
├── Temp
│   └── rc.local
└── www
    └── dmp_   .php

3 directories, 9 files


  にほんブログ村 IT技術ブログへ



    top

    %d人のブロガーが「いいね」をつけました。