2015年5月4日月曜日

Raspberry Pi 2 sdrサーバとしても利用

 rtl_tcpを利用して、Sdrサーバ(FMラジオ等)としても、利用しようとしていたのですが、以前のraspberry Piのようにはうまくいきませんでした。いったん接続をやめると、2回目は接続できないという不具合は解消しませんでした。
 いろいろ調べたものの解決方法はけっこう難しそうです。そこで、応急処置的ですが、PHPを利用して、rtl_tcpをシェルスクリプトでリスタートさせる方法をとってみたところ、何とか実用になりました。
 PHPは、sdr#をロードしたときに、以下のように、呼び出すようにしてみました。

 private void MainForm_Load(object sender, EventArgs e)
        {
            Encoding enc = Encoding.GetEncoding("Shift_JIS");
            HttpWebRequest req    =HttpWebRequest)WebRequest.Create("http://hostname/sdron.php");
            WebResponse res = req.GetResponse();
            Stream st = res.GetResponseStream();
            StreamReader sr = new StreamReader(st, enc);
            string html = sr.ReadToEnd();
            sr.Close();
            st.Close();
       
        }


==sdr.sh== chmod +xで実行権限もたせる必要あり
#!/bin/sh
service rtl_tcp restart


==sdr.php==
<?php
exec("/home/pi/sdr.sh");
?>
==sdron.php==
<?php
exec("sudo php -f /var/www/sdr.php");
print_r("sdr recovery" );
?>

2015年5月2日土曜日

RasPi2 クアッド コアの威力

 SoftetherをRasPi2に入れてみた。Ipv6でつないだところ、トンネルの中のIPv4は、これまでの数倍速度アップしたようだ。
 ただ、以前行ったクロスコンパイルの方法やaufsの入れ方は、だいぶ忘れていて、けっこう時間がかかってしまった。それに加えて、rasPi2のsdカードの接触が悪いせいか、ときどき起動しなくなることがあった。カードを差し込み直すと解消するという状態なので、いまひとつ安定性が心配だ。

Java ダウンロード測度アップ

 自作のグループウエアこれまで、ファイルのダウンロードは特に、Servletを使わず、<a href=のリンクからそのままダウンロードするようにしていたが、どうも遅いときがあるので、気になっていた。
 試しに、Servletを使ってみたら、だいぶ早くなったような気がする。bufferの大きさもある程度大きくとってみた。以下を参考にさせていただいた。
  http://www.syboos.jp/java/doc/file-download-by-servlet.html
 ただ、問題は、全角のファイル名だと、ダウンロードがうまくいかない。いろいろ調べたら、けっこう面倒な対処が必要だと判明。以下のリンクで助けられました。
 http://eiryu.hatenablog.com/entry/20120708/1341735000

2015年4月27日月曜日

raspberry pi 2 クロスコンパイルで一苦労

aufsを適用したカーネルにするために、クロスコンパイルをやってみるが、うまくいかない。
いろいろ原因を探ったところ、raspberry piの/bootディレクトリにあるカーネルは
kernel7.img
というファイルを使っていることが判明。
ネットでは、これがわからず、試行錯誤で分かった。
ちょっとしたことで、時間がかかってしまった。

raspberry pi 2でWOL

okiro.phpというWOLのWebソフトを便利に使わせてもらっている。
今回、新versionのraspberry Pi2にも入れてみた。
久々と言うことで、細かい設定を忘れている。
PEARを使っていることを忘れている。
 pear install Net_Ping
というコマンドで、インストールできて、無事動作するようになった。


2015年4月26日日曜日

HTML5 リッチテキストは便利だが

contentEditableの属性設定により、リッチテキストを扱えて便利だが、ひとつ問題が発生した。ワードの貼り付けがうまくいかないのである。通常のテキストボックスなら、単純なテキストが貼り付けられるから問題は起こらないが、ワードの場合、様々な書式も貼り付けされるため、データベースにうまく保存できず、エラーを起こしてしまう。
 なんとか、タグを消して、テキストとして保存するようにしてみた。ただし、改行だけは、消さないようにした。
 ただ、どうも統一性がとれておらず、応急処置的である。ここは、やはり、HTML5とワード文書等との連携も考慮に入れた仕様にしてほしいところである。

2015年4月4日土曜日

jqgridのeditoptionsでは、勝手にソートされてしまう

Jqgridを使って、各種データの設定がやりやすくはなっているが、ひとつ問題が出てきた。
ResultSet rs2= stmt2.executeQuery("SELECT * FROM shokuin"); 
....
 jQuery("#list").jqGrid({
        data: mydata,
        datatype: "local",
        colNames:['ID', 'グループ名', 'メンバー'],
        // 編集可能にするセルを editable:true にします。
        colModel:[
            {index:'num', name:'num', width:50 },
            {index:'name', name:'name', width:200, editable:true },
            {index:'member', name:'member', width:250,  editable:true ,edittype:'select' ,
            editoptions:{multiple:true,value:{
            <% int cou2=0;
            while(rs2.next()){ if(cou2==0) { %>
              <%=rs2.getString("id")%>:'<%=rs2.getString("name")%>'
<% } else { %>
,<%=rs2.getString("id")%>:'<%=rs2.getString("name")%>'
<% }
cou2=cou2+1; }
stmt2.close();
            %>
            }}},
        ],
.....
といった、具合に、グループのメンバーの登録に使ってきたが、rs2は、id順に勝手にソートされてしまうことに気づいた。ソートはidではなく、別に用意したsidという表示順を指定するための番号でソートしたいのだが、それができない。
 毎年、人の入れ替えで転入者にidが振られるが、そのidの順番で並べて表示するのでなく
sidで並べて表示したいと思い、SQL文にorder by sidを追加してが、だめなのである。
http://www.trirand.com/blog/?page_id=393/discussion/edittype-select-and-editoptions-value-default-sorting
ネットでは唯一上記のリンクに少しヒントらしきものはあったが、どうやら、dataUrlというものを指定して、別のサーブレットから指定した順序にソートしたものを読み出すとよいようだ。
そこで、editoptions以下の部分をこんなふうに書き換えたらなんとか、動作させることができた。
            editoptions:{value:"",multiple:true,dataUrl:'editoption'}
サーブレットのeditoptionは、<select>の要素を返すようにするとよいようだ。ただ、注意しなければならないのは、LFが入ってしまうので、これをreplaceAll("\\n","")などを使って、データベースに保存する前に削除する必要がある。なかなか、細かいところで、調整が必要である。もう少しスマートな方法がありそうだが。