Monthly Archives: 10月 2012

[PHP]DOMとSimpleXMLの相互変換

2012年10月31日 (カテゴリ: PHP:)

PHPではバージョン5.0以降でSimpleXML拡張モジュールというものが追加されました。 SimpleXMLを使用すると、これまでのDOMオブジェクトに比べてXMLの操作が容易になります。 ですが、古いバージョンを元にしたライブラリではDOMベースのプログラムも少なくありません。 そこで今回はDOMとSimpleXMLの相互変換関数を確認しておきます。 SimpleXML -> DOM SimpleXMLからDOMの変換はdom_import_simplexml関数を使用します。 関数仕様 DOMElement dom_import_simplexml( SimpleXMLElement …


続きを読む

楽天のウィジェットに見たことある商品ばかり表示されるのでhostsを編集して非表示にさせる

2012年10月28日 (カテゴリ: 未分類:)

最近いろんなサイトが楽天のウィジェットを設置しているので、それらのサイトを訪問すると「過去に楽天で購入した商品」や「過去に楽天で閲覧したけど買わなかった商品」などが表示され、あまりいい気持ちはしません。 というわけで、楽天の商品閲覧履歴をこの際オフにしておきます。 楽天のウィジェットに見たことある商品ばかり表示されるので閲覧履歴をオフにするより F.Ko-Jiさんのサイトにて、楽天側で閲覧履歴を取らせないようにすることで、楽天ウィジェットの表示内容を制限する方法を紹介されています。 説明されている手順で、自分の閲覧履歴に関連する商品は表示されなくなりますが、替わりに興味が無い商品が表示されてし…


続きを読む

[PHP]Eclipse PDTで,関数の検索&関数仕様を検索する方法

2012年10月28日 (カテゴリ: PHP:)

PHPのプログラムをEclipse PDT環境で開発している場合に、関数の検索と、関数仕様を調べる方法です。 ウィンドウ->ビューの表示->PHP関数を選択します。 試しにfread()関数を検索してみます。 PHP関数の検索枠が出てくるので、関数名を途中まで入力すると候補が下に表示されます。 選択肢にはmysqli_resultとかも出ていますが、これはクラスのメソッドとして”fre”で始まるものがあるからです。”+”をクリックして展開すると、ヒットしたメソッドが表示されます。 ワイルドカードも使えるので、”f*ad”と…


続きを読む

[C#]lock文で排他をとる仕組みがC#4.0で変更された件

2012年10月27日 (カテゴリ: C#:)

C#では、オブジェクトの排他を取るためにlock文があります。 lock( obj ) { body; } これは、C#4.0の場合は以下のコードと等価です。 bool lockWasTaken = false; var temp = obj; try { Monitor.Enter(temp, ref lockWasTaken); { body; } } finally { if (lockWasTaken) { Monitor.Exit(temp)…


続きを読む

抵抗のカラーコードと、虹色の関係

2012年10月27日 (カテゴリ: 電子回路基礎:)

電子回路で使用される抵抗は、抵抗値を示すためのカラーコードが有ります。 一目で見て分かるように、このカラーコードは虹を元にしています。 ですが虹は7色、カラーコードは10種類。 色と値がどのようにマッピングされているか気になったので、確認してみました。 カラーコードの1から7が基本的に虹の色と対応しているのですが、赤の後に茶が入るのと、藍色が無いのが相違点でした。藍色は、青と近くて紛らわしいから除かれたのでしょうか… また、足りない分の追加として、無彩色の黒、灰、白が加えられています。 覚え方の語呂合わせは、以下のものが有名です。 0 黒: 黒い礼服 1 茶: お茶を一杯、小林一茶…


続きを読む

[PHP]文字列リテラルを、シングルクォートとダブルクォートで括った時の速度差

2012年10月27日 (カテゴリ: PHP:)

PHPでは文字列リテラルを書くとき、文字列をシングルクォート、又は、ダブルクォートで括ることが出来ます。 両者の違いは、”{}”で書いた変数の展開を行うかどうかと、エスケープシーケンスを処理するかです。 <?php $a = 10; echo "hello world:{$a}\n"; echo ‘hello world:{$a}\n’; 実行結果 C:\>php test.php hello world:10 hello world:{$a}\n ここで疑問が1つ出てきます。 上記の様に変数やエスケープシーケンス処理が必要な場合は、ダブ…


続きを読む

“elasped time”と”latency”の違い

2012年10月27日 (カテゴリ: 未分類:)

よくコンピュータのパフォーマンスについて書かれている記事を見ると、”elasped time”(経過時間)や”latency”(遅延)という言葉が出てくる場合があります。 この二つの言葉の違いは何でしょうか? elasped timeは、有る処理を依頼してから、応答が全部返ってくるまでの時間です。 ターンアラウンドタイム(turn around time)とも呼ばれています。 一方、latencyは、有る処理を依頼してから最初の応答が返ってくるまでの時間です。 こちらは、レスポンスタイム(response time)とも呼ばれています。 両者を絵…


続きを読む

[PHP]標準エラー出力、標準出力に文字列を出力する

2012年10月27日 (カテゴリ: PHP:)

PHPで標準エラー出力に文字を出すには、ファイル”php://stdout”をオープンすればOKです。 <?php $stdout= fopen( ‘php://stdout’, ‘w’ ); fwrite( $stdout, "hello world to stdout\n" );   $stderr = fopen( ‘php://stderr’, ‘w’ ); fwrite( $stderr, "hello world to stderr\n" &#41…


続きを読む

キーエンスのPLC(シーケンサ)、KV10~90やKZ-A500で使うPC接続ケーブルの仕様

2012年10月27日 (カテゴリ: 未分類:)

キーエンスが以前出していたシーケンサのKV10~90やKZ-A500についての備忘録メモです。 KZ-A500は、PCとの接続端子がモジュラーコネクタになっています。 純正品を使用する場合は、以下のケーブルを買う必要があります。(接続先PCの構成により異なります) DOS/V OP-26487 モジュラーケーブル OP-26486 モジュラー,RS-232C変換(D-Sub9)   PC9801 OP-26487 モジュラーケーブル OP-26485 モジュラー,RS-232C変換(D-Sub25)   PC9801 OP-26487 モジュラーケーブル OP-26482 …


続きを読む

[C# 5.0]メソッドの呼び元メソッドを調べる方法

2012年10月27日 (カテゴリ: C#:)

C# 5.0では、関数の引数に属性(attribute)を追加する事で、関数の呼び元の情報を取得が可能です。 これはC言語で言う__LINE__,__FILE__マクロ相当のものです。 C#の4.0以前でもリフレクションや、System.Diagnostics.StackTraceを使えば取得は出来たのですが、5.0からは取得が簡単になりました。 ※C#4.0でSystem.Diagnostics.StackTraceを使う場合の例はこちら  → [C#]関数の呼び出し元のメソッド名を知る方法 という訳でサンプルコードです。 class Test { static void Main…


続きを読む

[C#]string,char,byteの相互変換

2012年10月22日 (カテゴリ: C#:)

文字を表現する各種データ型の変換方法です。 Stringから他の型に変換する場合は、文字コードの指定が必要となります。 string -> char string str = "hello world";   //文字列をcharの配列に変換する char[] charArray = str.ToCharArray();   //文字列を、1文字づつcharとして処理する foreach (char c in str) { Console.WriteLine( c ); &#125…


続きを読む

[VisualStudioでμITRON]HelloWorldプログラムを作成する

2012年10月21日 (カテゴリ: C, ITRON:, )

前回はμITRONの実装のひとつであるHOS(Hyper Operating System)をダウンロードし、 カーネルのライブラリを作成しました。 Visual Studioで実行可能なμItronの環境を構築する 今回はこのライブラリを使用して、μITRON環境下でHelloWorldを表示させるプログラムを作成します。 今回作成するプロジェクトのフォルダ構成 作業に入る前に、今回の説明の前提を説明しておきます。 まず、前回書いたカーネルのライブラリは準備が出来ているものとします。 Visual Studioで実行可能なμItronの環境を構築する 今回作成するプロジェクトは、以下のフォル…


続きを読む

radikaで,あまみFMを再生できるようにする方法

2012年10月20日 (カテゴリ: 未分類:)

radikaではサイマル放送の聴取や録音が出来るのですが、あまみFMについては設定が間違っており番組登録しても聴く事が出来ません。 これは、radika.exeと同じフォルダに有るsimulradiostations.xmlをエディタで編集する事で対応できます。 simulradiostations.xmlに有る以下の記述を… <Prefecture name="鹿児島県"> <Station> <Name>あまみFM</Name> <Municipality>奄美市</Municipality&…


続きを読む

「未解決の外部シンボル __imp__timeSetEvent@20 が関数 xxxx で参照されました。」エラーの対処法

2012年10月20日 (カテゴリ: 未分類:)

Win32APIのタイマーを使用したプログラムをコンパイルすると以下のエラーが出る場合があります。 未解決の外部シンボル __imp__timeSetEvent@20 が関数 xxxx で参照されました。 英語環境だと以下のメッセージになります。 error LNK2019: unresolved external symbol __imp__timeSetEvent@20 referenced in function xxxx これは、timeSetEvent()関数がライブラリwinmm.libで定義されているのですが、ライブラリがプロジェクトに登録されていない事が原因です。 対処法は、プ…


続きを読む

Visual Studioで実行可能なμItronの環境を構築する

2012年10月20日 (カテゴリ: ITRON:, )

国内で利用されている組み込み向けのOSとして有名なものに、μItronというものが有ります。 μItronを使用すると、非常に省資源な環境(数kByteのRAM環境など)でも、マルチタスクのプログラミングを行う事ができます。 組み込み向けのプログラムを行う場合、実機でμItronを動作させるとタスク切り替えのタイミング等が実際の動作環境と全く同じとなります。一方で、組み込み向けの開発環境(IDE)はPC向けの環境と比べると見劣りする場合も多くまたprintfデバッグを行うにも制限が多いため開発・デバッグに苦労します。 この為、実際の製品開発では実機の方がよいのですが、初学者の勉強目的にはちょっ…


続きを読む

[C言語]合成抵抗の計算、分圧回路の計算を行うプログラム

2012年10月20日 (カテゴリ: 未分類:)

抵抗を直列、並列につないだ時の抵抗値を計算する #include <stdio.h>   int main() { int r1; int r2;   printf( "抵抗値1を入力してください>" ); scanf( "%d", &r1 );   printf( "抵抗値2を入力してください>" ); scanf( "%d", &r2 );  …


続きを読む

[対処法]D8045 : C ファイル ‘xxx.c’ を /clr オプションと共にコンパイルできません のエラーが出た時にすること

2012年10月19日 (カテゴリ: C:)

Visual Studioで、拡張子が*.cのc++プログラムをコンパイルする時、以下のエラーが出る事があります。 D8045 : C ファイル ‘xxx.c’ を /clr オプションと共にコンパイルできません この場合は、以下の手順でコンパイルオプションを変更するとエラーを回避できる場合があります。 メニューバーの、プロジェクト->xxxのプロパティを選択します。 構成プロパティ->C/C++->詳細設定を選択します。 右側に表示されたコンパイル言語の選択を、「規定」から「C++コードとしてコンパイル」を選択します。 これで、.cファイルを.cppと見なし、C++のコンパイラが走るようにな…


続きを読む

[RPR-220]反射型フォトセンサを使ってみる

2012年10月16日 (カテゴリ: 電子回路基礎:, )

今回は、ローム製のRPR-220という製品を使用して、反射型フォトセンサの動作を確認します。 反射型フォトセンサというのは、LEDで照らした明かりを床などに反射させて、隣にあるセンサー(フォトトランジスタ)で受光することで対象の状態を確認するものです。 反射型フォトセンサは、フォトリフレクタや、フォトインタラプタと呼ばれる場合も有り、フォトセンサの”フォト”は光(photon)が語源です。 反射型フォトセンサの利用場面 反射型フォトセンサは、非接触で物体の有無や位置を検知したり、反射率の違いから色(白/黒)を検知できるという特徴を持っています。 ホビーユースだと、ライン…


続きを読む

[PIC24]UART機能を使用してRS-232C通信を行う

2012年10月14日 (カテゴリ: PIC:, , )

PIC24でUART機能を使用するサンプルです。 とりあえず動いたので、メモ代わりにアップしておきます。 設定は以下の通り。 PIC24FJ32GA002で確認 UART1を使用 送受信処理はポーリングベース(割り込みは使わない)   9600bps 8bit ノンパリティ ストップ 1bit   TxDのピン: RP5 RxDのピン: RP6 PICからの出力はFT2232経由でPCに取り込みます。 #include <p24FJ32GA002.h> #include "uart.h" #include "PPS.h" …


続きを読む

[PIC,C30]#define USE_AND_OR の意味

2012年10月13日 (カテゴリ: PIC:, , )

PICでC30コンパイラを使用したプログラムサンプルを見ると、以下のdefineをしている場合があります。 #define USE_AND_OR このdefineは、ライブラリの下位互換のために使用されています。 PIC24Fのperipheral libraryでI/Oレジスタのフラグ設定方法が、v3.00から変わった事に伴う対応です。 ver3.00までは、複数のフラグを設定する時ORで結合していました。 ConfigIntUART2(UART_RX_INT_EN | UART_RX_INT_PR6 | UART_TX_INT_EN | UART_TX_INT_PR6); …


続きを読む