山口屋~活動日誌~

私生活で主な出来事をピックアップ

Wake On LAN (WOL) と Intel PROSet

2014-01-18 22:02:35 | パソコン
遠隔操作でパソコンの電源を入れる、Wake On LAN (WOL)。

利用するには、BIOSとNICデバイスの両方が対応していることが必要で、設定はBIOSとデバイスマネージャの両方で行う(ことが多い)。デバイスマネージャで設定項目が見つかっても、BIOSで設定項目が見当たらない場合は、あきらめる場合が多かった。

ところが、BIOSには一切設定項目がないのに、デバイスマネージャの方をIntel PROSet というユーティリティに更新すると動作する場合があることを発見。大学の研究室のパソコンはそれで Wake On LAN ができたが、自宅のパソコンはそれでも Wake On LAN ができなかった。実際に試してみないとわからないらしい。

XTAP (eXpandable Transient Analysis Program)

2014-01-04 12:38:02 | 工学
XTAP(eXpandable Transient Analysis Program)は電力中央研究所で開発された回路解析プログラムで、クラス定義や入力ファイルは一部の報告書で垣間見ることができる。

<入力ファイル>

●Optionsセクション
○記述形式
・「name=value」

●Circuitセクション
※詳細は別途
○コメント
・係数A,B,Sの入力

●Initializationセクション
○記述形式
・「InitialValue,ブランチPath」
・「Current,設定値」
○コメント
・必須ではない。
・未知数u,i,vの初期化 = 未知数u,i,vの入力
・係数B,Sの初期化(BranchクラスのInitializeメソッド)とは独立。

●Outputsセクション
○記述形式
・「NodeVoltage,ノードPath」
・「BranchCurrent,ブランチPath」
・「VoltageDifference,ノードPath,ノードPath」
○コメント
・未知数u,i,vの出力

●Endセクション
○コメント
・終了フラグ
・外部ソルバと連携するには,係数A,B,Sの出力,未知数u,i,vの入力が実装できていればよい。

<circuitセクション>

●ブランチ定義
「ブランチ種類,ブランチPath,オプション」
「入力値」
「ノードPath,ノードPath」
・他のブランチから影響を受ける場合は、オプションでブランチPathを指定している。
・入力値がある場合は、オプションで指定し、次の行から入力値を記述する。
・ノード名で""なしは変数宣言

・「R,ブランチPath,抵抗」
・「L,ブランチPath,インダクタンス」
・「C,ブランチPath,静電容量」
・「R_NL,ブランチPath,データ数」「データX,データY」
・「L_NL,ブランチPath,データ数」「データX,データY」
・「C_NL,ブランチPath,データ数」「データX,データY」

●モデル定義
「use,モデル種類,モデルPath」
「name=value」
「enduse」
・name:ノード変数、value:ノード名指定。
・ブランチのPathは"モデル名/ブランチ名"となる。

●モデル宣言
「sub,モデル種類」
「(定義)」
「endsub」
・ファイル分割する場合のファイル名はモデル名.xmf

●ファイル読込
・「include,ファイルパス」

<参考文献>

野田 琢,三木 貫,宜保 直樹,竹中 清,高崎 昌洋,岡田 有功 : “電力系統瞬時値解析プログラムの開発(その1)― 基本設計 ―”, 電力中央研究所研究報告H06002, 2007年03月

岡田 有功,高崎 昌洋,竹中 清,野田 琢,小谷 和也,松本 寿彰 : “インバータシミュレーションプログラムの開発(その1) -MOSFETとダイオードのモデリング-”, 電力中央研究所研究報告R06017, 2007年07月

岡田 有功,菊間 俊明,高崎 昌洋,竹中 清,小谷 和也,葛巻 淳彦,松本 寿彰,野田 琢 : “インバータシミュレーションプログラムの開発(その2)-実測比較による解析精度の検証-”, 電力中央研究所研究報告R07016, 2008年06月

C言語 動的メモリ確保 関数

2014-01-03 14:01:39 | ソフトウェア開発
呼び出し関数側でメモリ確保をしたいときは、ポインタへのポインタを用いるとよい。

<サンプル>

#include <stdio.h>
#include <stdlib.h>

//呼び出し関数側でメモリ確保
//引数はポインタへのポインタ
void allocate(char* *buffer)
{
*buffer = malloc(100);
}

int main(void)
{
char *buffer;
allocate(&buffer);//引数はポインタへのポインタ
free(buffer);
return 0;
}

INIファイル 解析 C言語 GetPrivateProfileString

2014-01-02 12:29:36 | ソフトウェア開発
Win32APIのGetPrivateProfileStringをC言語から呼び出すために。

(1)DLLを参照させる
#if defined _WIN32
#include <windows.h>
#pragma comment(lib,"kernel32.lib")
#elif defined _WIN64
#include <windows.h>
#pragma comment(lib,"kernel32.lib")
#endif

(2)C言語のデータ型に対応させる。
size_t GetPrivateProfileString(
const TCHAR *lpAppName, // セクション名
const TCHAR *lpKeyName, // キー名
const TCHAR *lpDefault, // 既定の文字列
TCHAR *lpReturnedString, // 情報が格納されるバッファ
size_t nSize, // 情報バッファのサイズ
const TCHAR *lpFileName // .ini ファイルの名前
);

<参考URL>
MSDN GetPrivateProfileString関数
MSDN プラットフォーム呼び出しのデータ型

<INIファイルのフォーマット>

[section]
name=value
; comment text

# もコメントの指示に使えるものがある。
\ を行末に置いた場合に改行を無視して次の行までを1つの論理行として扱うことがある。