目次

第一章 はじめに1‑1. はじめに

1頁

1‑2. 梱包内容の確認
1‑3. 制約・注意事項

3頁
3頁

第二章 CCD SDK ｲﾝｽﾄﾚｰｼｮﾝ
2‑1. CCD SDK コンポーネントセットアップ
2‑2. CCD SDK コンポーネントセットアップの内容

4頁
6頁

第三章 Visual C/C++によるﾌﾟﾛｸﾞﾗﾑ開発
3‑1. COM インターフェイス仕様
3‑2. 構造体・フラグ仕様
3‑3. Win32 コンソールサンプルプログラム
3‑4. MFC サンプルプログラム
3‑5. VC サンプルプログラム

7頁
42 頁
48 頁
51 頁
69 頁

第四章 Visual Basic によるﾌﾟﾛｸﾞﾗﾑ開発
4‑1. ActiveX インターフェイス仕様
4‑2. 構造体・Flag 定義仕様
4‑3. Visual Basic プログラム作成方法

70 頁
110 頁
115 頁

第五章 サポート情報
5‑1. FAQ
5‑2. ユーザサポートについて

125 頁
127 頁

Page.1

第一章 はじめに1-1. はじめに
この度は RS1394CCD SDK(Software Development Kits)をお買い求め頂き誠にありがとうございました。本製品をご使用になる前に必ず別紙の RS1394CCD SDK 使用許諾書をお読み頂き、ユーザ登録申込書に必要事項をご記入頂き、捺印の上、弊社宛にご返送下さるようお願い申し上げます。
本 SDK は Microsoft DirectX 等に関する高度な知識を必要とすることなく、Visual C/C++,Visual
Basic に関するプログラミング知識さえあれば、1394 CCD カメラからの非圧縮ストリームのキャプチ
ャおよび再生を行うアプリケーションの開発を可能とするソフトウェア開発ライブラリキットです。
CCD カメラドライバに関する情報は、本製品添付の RS 1394CCD カメラドライバユーザーズマニュ
アルを参照願います。
製品特徴
RS1394CCD SDK は、
Microsoft Visual C/C++ 6.0 対応 COM ライブラリ（インプロセスサーバー形式 DLL で提供）
Microsoft Visual BASIC 6.0 対応 ActiveX ライブラリ
Visual C/C++・Visual BASIC の各種サンプルプログラム
により構成され、Visual C/C++・Visual BASIC から下記のアプリケーションの作成を可能とします。
1394 CCD カメラからの非圧縮ストリームの静止画スナップショット
24 ビットビットマップ形式静止画保存。
1394 CCD カメラからの非圧縮ストリームの動画再生およびキャプチャ
非圧縮および各種圧縮形式の動画保存。
アプリケーションからの CCD カメラフルコントロール
IIDC 1394‑based Digital Camera Specification Version 1.30 準拠
外部トリガーによる静止画スナップショット
CCD カメラへの外部トリガー信号入力により 1 フレーム画像を取得。外部トリガーの発生イベ
ントをアプリケーションで検出し画像データをビットマップファイルに保存するためには、
CCD カメラへのトリガー信号をデジタル入出力ユニットに入力し、デジタル入出力ユニットからアプリケーションが外部トリガーイベントを受け取る必要があります。

Page.2

推奨動作環境CPU PentiumII 500MHz 以上
1394 ホストアダプタ（REX‑PFW3W もしくは REX‑CFW3H）
メインメモリ 128M 以上搭載
HDD 回転数 7200rpm / 空き容量 1G 以上
ビデオメモリ 8MB 以上
グラフィック表示モード 1280×1024・True Color(32 ビット)・オーバーレイ表示サポート
OS Win98SE,Win2K(SP2 以上),WinMe,WinXP
Microsoft Vusual C/C++ 6.0 もしくは Visual BASIC 6.0 SP5 以上
DirectX 8.0 以上（DirectX SDK 不要）

Page.3

1-2. 梱包内容の確認
REX‑PFW3W 1394 Host PCI Board と Low Profile 取り付け金具
REX‑CFW3H 1394 Host CardBus Card と AC 電源
RS1394CCD カメラドライバ CD‑ROM
RS1394CCD カメラドライバ USB キー
RS1394CCD カメラドライバユーザーズマニュアル
REX‑PFW3W もしくは REX‑CFW3H 製品保証書
RS1394CCD SDK CD‑ROM
SDK ユーザーズマニュアル
SDK 使用許諾書
SDK ユーザ登録申込書
REX‑PFW3W・REX‑CFW3H は製品購入時いずれか選択になります。

1-3. 制約・注意事項
サポート条件サポート期間は製品をご購入された後、1 年間とさせていただきます。1 年経過後のサポートは別途契約が必要になります。また、本製品ご購入後 1 週間以内にユーザ登録申し込みを行われていない場合、ユーザ登録書をお持ちでない場合、サポートは受け付けられませんのでご了承願います。
また、サポート内容によってはお客様の作成されたアプリケーションソースコードのご提供が必須となる場合があります。
尚、ユーザサポートは E‑mail もしくは FAX でお願い致します。
アプリケーション運用上の制約
本 RS1394CCD SDK を使用して作成されたアプリケーション（弊社より提供している各種ドライバ、
ライブラリ等のオブジェクトを含む）の動作保証はお客様サイドで責任を持って頂くことを前提としています。本製品の運用を理由とする損失、免失利益などの請求につきましては、いかなる責任も負いかねますので予めご了承願います。

Page.4

第二章 CCD SDK ｲﾝｽﾄﾚｰｼｮﾝ

Visual C/C++, Visual Basic でのアプリケーション作成を行う前に、CCD SDK の COM コンポーネントと ActiveX コンポーネントのセットアップを行って下さい。CCD SDK の COM コンポーネントと ActiveX
コンポーネントの配布はライセンスフリーとなっています。

2-1.CCD SDK コンポーネントセットアップ
CCD SDK コンポーネントセットアップを行う前に、別冊の 1394 CCD カメラドライバユーザーズマニュ
アルを参照し 1394 ホストカードと CCD カメラドライバのセットアップを完了して下さい。

RS1394CCD SDK CD‑ROM の「Setup」ﾌｫﾙﾀﾞにある「Setup.exe」を実行します。日本語を選択し、「OK」ﾎﾞﾀﾝをｸﾘｯｸします。

後は指示に従って内容を確認しまがら、順次「次へ」のﾎﾞﾀﾝをｸﾘｯｸします。

使用許諾内容を確認し問題なければ、「はい」のﾎﾞﾀﾝをｸﾘｯｸします。
（注意）
右使用許諾内容の内容は、本製品添付のソフトウェア使用許諾書の内容と同じです。

Page.5

ｲﾝｽﾄｰﾙ先ﾌｫﾙﾀﾞを確認し、特に問題なければ「次へ」のﾎﾞﾀﾝをｸﾘｯｸします。

以上で、CCD SDK の COM ｺﾝﾎﾟｰﾈﾝﾄと ActiveX ｺﾝ
ﾎﾟｰﾈﾝﾄのｾｯﾄｱｯﾌﾟは完了です。

Page.6

2-2. CCD SDK コンポーネントセットアップの内容「2‑1.CCD SDK コンポーネントセットアップ」で実行した「Setup.exe」は InstallShield Professional
Standard

EditionVersion6.30

で 作 成 し て い ま す 。「 SETUP.RUL 」 フ ァ イ ル がCD‑ROM¥Setup¥InstallShield フォルダに格納されていますので、これを参考にご自身で作成されたアプ
リケーションのインストーラに CCD SDK コンポーネントのセットアップも組み込むことができます。
「SETUP.RUL」で CCD SDK コンポーネントの組み込みを行っている部分は下記の通りです。%Windows ディレクトリ%の System32 フォルダに COM ライブラリ「RSCCD.COM」と ActiveX ライブラリ「VBCCDSDK.DLL」
をコピーし、「Regsvr32.exe」ユーティリティでこれらのコンポーネントのレジストリ登録を行えばセットアップ完了です。
System32 フォルダに「RSCCD.COM」と「VBCCDSDK.DLL」をコピーした後、コマンドプロンプトもしくは Windows のスタートメニューの「ファイル名を指定して実行」から登録を行う場合は下記のようになります。
> regsvr32 /s c:winnt¥system32¥rsccd.dll> regsvr32 /s c:winnt¥system32¥vbccdsdl.dll////////////////////////////////////////////////////////// OnMoved...ファイルのコピー、削除が終了したときに// 呼ばれる。
function OnMoved()
string szProgram, szCmdLine;
begin
if !MAINTENANCE then//ﾒﾝﾃﾅﾝｽﾓｰﾄﾞでないときﾚｼﾞｽﾄﾘ登録
szProgram = "regsvr32.exe /s";
szCmdLine = WINDIR ^ "System32¥¥RsCcd.dll";
LaunchAppAndWait(szProgram,szCmdLine,WAIT);szCmdLine = WINDIR ^ "System32¥¥VBCCDSDK.DLL";
LaunchAppAndWait(szProgram,szCmdLine,WAIT);
endif;
end;"RsCcd.dll"及び" VBCCDSDK.DLL"がｺ ﾋ ﾟ ｰ さ れ た Windows ﾃ ﾞ ｨ ﾚ ｸ ﾄ ﾘ のSystem32 ﾌ ｫ ﾙ ﾀ ﾞ を 指 定 し 、"regsvr32.exe /s"を実行する。

Page.7

第三章 Visual C/C++によるﾌﾟﾛｸﾞﾗﾑ開発

Visual C/C++でアプリケーションを作成する場合は、本製品付属の CCD SDK COM ライブラリを使用します。CCD SDK のインストレーションを行えば CCD SDK COM ライブラリが使用可能な状態となります。
以下の CCD SDK COM ライブラリインターフェイスとサンプルプログラムを参考にして、アプリケーショ
ンの作成を行います。

3-1. COM インターフェイス仕様
ｲﾝﾀｰﾌｪｲｽ名説明頁

ccd̲About

SDK ﾗｲﾌﾞﾗﾘのﾊﾞｰｼﾞｮﾝ情報を取得。

9

ccd̲Initialize

SDK ﾗｲﾌﾞﾗﾘの初期化処理を行う。

21

ccd̲Uninitialize

SDK ﾗｲﾌﾞﾗﾘの終了処理を行う。

43

ccd̲EnumCamera

現在接続されている CCD ｶﾒﾗを列挙し SDK̲CAM̲INFO 構造体にｶﾒﾗ情報をｾｯﾄ。

10

ccd̲FreeCamera

ccd̲EnumCamera 呼び出しにより COM で確保されているﾘｿｰｽを解放。

11

ccd̲RegCameraEvent

ｶﾒﾗの取り外しｲﾍﾞﾝﾄ、接続ｲﾍﾞﾝﾄをｱﾌﾟﾘｹｰｼｮﾝに通知されるよう設定。

26

ccd̲GetCurrentFormat

指定されたｶﾒﾗの現在設定されているｽﾄﾘｰﾑﾌｫｰﾏｯﾄおよびﾌﾚｰﾑﾚｰﾄを取得。

15

ccd̲SetStream

指定されたｶﾒﾗから出力されるｽﾄﾘｰﾑﾌｫｰﾏｯﾄを設定。

36

ccd̲SetFrameRate

指定されたｶﾒﾗから出力されるﾌﾚｰﾑﾚｰﾄを設定。

31

ccd̲PreviewStart

指定されたｶﾒﾗのﾌﾟﾚﾋﾞｭｰを開始。

23

ccd̲PreviewPause指定されたｶﾒﾗのﾌﾟﾚﾋﾞｭｰをﾎﾟｰｽﾞ。

22

ccd̲PreviewStop

指定されたｶﾒﾗのﾌﾟﾚﾋﾞｭｰを終了。

24

ccd̲Snapshot

現在表示されているﾌﾚｰﾑを静止画ﾋﾞｯﾄﾏｯﾌﾟﾌｧｲﾙに保存。

40

ccd̲SetTrigger

CCD ｶﾒﾗの外部ﾄﾘｶﾞｰﾓｰﾄﾞを設定。

38

ccd̲SetAudio

動画のﾌﾟﾚﾋﾞｭｰおよび保存時にｵｰﾃﾞｨｵを有効設定。

27

ccd̲SetCaptureFile

動画保存するﾌﾙﾊﾟｽﾌｧｲﾙ名とｷｬﾌﾟﾁｬﾌｧｲﾙ保存にﾃﾝﾎﾟﾗﾘﾌｧｲﾙを使用するか指定。

28

ccd̲SetCaptureTempFile

ｷｬﾌﾟﾁｬ用のﾃﾝﾎﾟﾗﾘﾌｧｲﾙに関する設定。

29

ccd̲GetCopyFileProgress

ｷｬﾌﾟﾁｬ停止後のﾃﾝﾎﾟﾗﾘﾌｧｲﾙのｺﾋﾟｰｽﾃｰﾀｽを取得。

14

ccd̲CaptureStart

指定されたｶﾒﾗより現在設定されたｽﾄﾘｰﾑ・ﾌﾚｰﾑﾚｰﾄで動画保存を開始。

41

ccd̲CaptureStop

動画保存を終了。

42

ccd̲SetMovieCompressor

ｷｬﾌﾟﾁｬ保存するﾌｧｲﾙの圧縮形式を設定。

33

ccd̲GetPropertyRange

Zoom/Focus 等ﾍﾞｰｽﾌﾟﾛﾊﾟﾃｨに関し、調整ﾚﾝｼﾞ情報を取得。

20

ccd̲GetProperty

Zoom/Focus 等ﾍﾞｰｽﾌﾟﾛﾊﾟﾃｨに関し、ｶﾒﾗより現在値を取得。

19

ccd̲SetProperty

Zoom/Focus 等に関するﾍﾞｰｽﾌﾟﾛﾊﾟﾃｨについて、ｶﾒﾗの設定値を変更。

35

ccd̲GetColorRange

UB/VR/Hue/Saturation に関するｶﾗｰﾌﾟﾛﾊﾟﾃｨについて調整ﾚﾝｼﾞ情報を取得。

13

ccd̲GetColorUB/VR/Hue/Saturation に関するｶﾗｰﾌﾟﾛﾊﾟﾃｨについてｶﾒﾗより現在値を取得。

12

ccd̲SetColorUB/VR/Hue/Saturation に関するｶﾗｰﾌﾟﾛﾊﾟﾃｨについて、ｶﾒﾗの設定値を変更。

29

Page.8
ccd̲ShowPropertyPage

ｶﾒﾗﾄﾞﾗｲﾊﾞのﾌﾟﾛﾊﾟﾃｨﾍﾟｰｼﾞを表示。

39

ccd̲GetMemCh

ｶﾒﾗ内部のﾒﾓﾘに記憶されている設定ﾃﾞｰﾀを読み出しｶﾒﾗに再設定。

18

ccd̲SetMemCh

現在ｶﾒﾗに設定されているﾃﾞｰﾀをｶﾒﾗ内部のﾒﾓﾘに記憶。

32

ccd̲SetOverlay

ｵｰﾊﾞｰﾚｲ機能のｲﾈｰﾌﾞﾙ・ﾃﾞｨｾｰﾌﾞﾙを設定。

34

ccd̲ReadRegister

指定のｶﾒﾗのｵﾌｾｯﾄｱﾄﾞﾚｽから 4 ﾊﾞｲﾄﾘｰﾄﾞ。

25

ccd̲WriteRegister

指定のｶﾒﾗのｵﾌｾｯﾄｱﾄﾞﾚｽに 4 ﾊﾞｲﾄﾗｲﾄ。

37

ccd̲GetLastError

最後に起こったｴﾗｰの詳細情報を取得。

16

インターフェイス仕様の書式について
下記の書式にて各インターフェイスの説明を行います。

IRsCcdSdk::ccd̲XXXXX
IRsCcdSdk インターフェイス【インターフェイスの概要動作説明】

構文
HRESULT ccd̲XXXXX( LONG XXXXX);

パラメータ【引数説明】
[in]

【入力】

[out]

【出力】

戻り値
【戻り値説明】

注意【その他参考情報】

関連【関連するｲﾝﾀｰﾌｪｲｽ】【関数仕様説明]Page.9

IRsCcdSdk::ccd̲About
IRsCcdSdk インターフェイス
SDK ﾗｲﾌﾞﾗﾘのﾊﾞｰｼﾞｮﾝ情報を取得。
構文
HRESULT ccd̲About (LPWSTR szVersionInfo
);

パラメータ
szVersionInfo[out] SDK ﾗｲﾌﾞﾗﾘのﾊﾞｰｼﾞｮﾝ情報文字列。

戻り値
HRESULT として常に S̲OK を返す。
S̲OK

成功

Page.10

IRsCcdSdk::ccd̲EnumCamera
IRsCcdSdk インターフェイス
現在接続されている CCD ｶﾒﾗを列挙し、COM の内部情報として列挙したｶﾒﾗのﾘｿｰｽを確保。
同時に、第一引数 SDK̲CCD̲INFO 構造体ｵﾌﾞｼﾞｪｸﾄに列挙したｶﾒﾗの情報を返す。
構文
HRESULT ccd̲EnumCamera(
PSDK̲CCD̲INFO pCameraArray, ULONG *pNumOfCamera
);

パラメータ
pCameraArray[out]

SDK̲CCD̲INFO 構造体ｵﾌﾞｼﾞｪｸﾄﾎﾟｲﾝﾀ。

pNumOfCamera[out]

列挙した CCD ｶﾒﾗの数を格納する変数ﾎﾟｲﾝﾀ。

戻り値
HRESULT を返す。以下のいずれかの値。ｴﾗｰの詳細は ccd̲GetLastError で取得。
S̲OK

成功

S̲FALSE

失敗

注意
ｱﾌﾟﾘｹｰｼｮﾝ側では要素数 MAX̲SUPPORT̲CAMERAS の SDK̲CAM̲INFO 型の配列を確保します。ｶﾒﾗ情報の再構築のために ccd̲EnumCamera()呼び出しを行う際、ｱﾌﾟﾘｹｰｼｮﾝを終了する際には必ずccd̲FreeCamera()により COM で確保されたﾘｿｰｽを一旦解放します。

関連
ccd̲EnumCamera()参照。

Page.11

IRsCcdSdk::ccd̲FreeCamera
IRsCcdSdk インターフェイス
ccd̲EnumCamera() により COM で確保されているﾘｿｰｽを解放。
構文
HRESULT ccd̲FreeCamera();

パラメータ
なし。

戻り値
下記 HRESULT を返す。ｴﾗｰ発生時の詳細は ccd̲GetLastError で取得。
S̲OK

成功

S̲FALSE

失敗

関連
ccd̲EnumCamera()参照。

Page.12

IRsCcdSdk::ccd̲GetColor
IRsCcdSdk インターフェイス
UB/VR/Hue/Saturation に関するｶﾗｰﾌﾟﾛﾊﾟﾃｨについてｶﾒﾗより現在値を取得。
構文
HRESULT ccd̲GetColor(
LONG CameraIndex, LONG Property, LONG *plValue, LONG fMode
);

パラメータ
CameraIndex[in]ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 SDK̲CCD̲INFO 構造体参照。

Property
ColorProperty より現在の値を取得したいﾌﾟﾛﾊﾟﾃｨを指定。

[in]

plValue[out]

指定したﾌﾟﾛﾊﾟﾃｨの値を格納する場所を示すﾎﾟｲﾝﾀ。fMode に fCameraControlAuto もしく
は fCameraControlOnePush が指定されている時は無視されます。

fMode
[in]

指定したﾌﾟﾛﾊﾟﾃｨの現在のﾓｰﾄﾞを指定。

戻り値
HRESULT を返す。以下のいずれかの値。ｴﾗｰの詳細は ccd̲GetLastError で取得。
S̲OK

成功

S̲FALSE

失敗

関連
ccd̲GetPropertyRange,

ccd̲GetProperty,

ccd̲ShowPropertyPage 参照。

ccd̲SetProperty,

ccd̲GetColorRange,

ccd̲SetColor,Page.13

IRsCcdSdk::ccd̲GetColorRange
IRsCcdSdk インターフェイス
UB/VR/Hue/Saturation に関するｶﾗｰﾌﾟﾛﾊﾟﾃｨについて調整ﾚﾝｼﾞ情報を取得。
HRESULT ccd̲GetColorRange (LONG CameraIndex, LONG Property, PROPERTY̲RANGE *pPropValue
);

パラメータ
CameraIndex[in] ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 SDK̲CCD̲INFO 構造体参照。

Property[in] ColorProperty よりﾚﾝｼﾞを取得するﾌﾟﾛﾊﾟﾃｨを指定。

pPropValue[out] ﾚﾝｼﾞ情報格納先の PROPERTY̲RANGE 構造体ｵﾌﾞｼﾞｪｸﾄﾎﾟｲﾝﾀ。PROPERTY̲RANGE 構造体参照。

戻り値
HRESULT を返す。以下のいずれかの値。ｴﾗｰの詳細は ccd̲GetLastError で取得。
S̲OK

成功

S̲FALSE

失敗

関連
ccd̲GetPropertyRange, ccd̲GetProperty, ccd̲SetProperty, ccd̲GetColor, ccd̲SetColor,
ccd̲ShowPropertyPage 参照。

Page.14

IRsCcdSdk::ccd̲GetCopyFileProgress
IRsCcdSdk インターフェイス
ｷｬﾌﾟﾁｬ停止後のﾃﾝﾎﾟﾗﾘﾌｧｲﾙのｺﾋﾟｰｽﾃｰﾀｽを取得。
HRESULT ccd̲GetCopyFileProgress (LONG CameraIndex, LONG *lpProgress
);

パラメータ
CameraIndex[in] ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 SDK̲CCD̲INFO 構造体参照。

lpProgress[out] ｺﾋﾟｰ進捗ｽﾃｰﾀｽが返される変数へのﾎﾟｲﾝﾀ。0‑100[%]の値で 100 が完了。

戻り値
HRESULT を返す。以下のいずれかの値。ｴﾗｰの詳細は ccd̲GetLastError で取得。
S̲OK

成功

S̲FALSE

失敗

関連
ccd̲StartCapture, ccd̲StopCapture, ccd̲SetCaptureFile, ccd̲SetCaptureTempFile 参照。

Page.15

IRsCcdSdk::ccd̲GetCurrentFormat
IRsCcdSdk インターフェイス
指定されたｶﾒﾗの現在設定されているｽﾄﾘｰﾑﾌｫｰﾏｯﾄおよびﾌﾚｰﾑﾚｰﾄを取得。
構文
HRESULT ccd̲GetCurrentFormat (LONG CameraIndex, LONG *pStreamIndex, LONG *pFpsIndex
);

パラメータ
CameraIndex[in]ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 SDK̲CCD̲INFO 構造体参照。

pStreamIndex[out] 現在設定されているﾋﾞﾃﾞｵﾓｰﾄﾞのｲﾝﾃﾞｯｸｽ番号。SDK̲CCD̲INFO 構造体参照。

pFpsIndex[out] 現在設定されているﾌﾚｰﾑﾚｰﾄのｲﾝﾃﾞｯｸｽ番号。SDK̲CCD̲INFO 構造体参照。

戻り値
HRESULT を返す。以下のいずれかの値。ｴﾗｰの詳細は ccd̲GetLastError で取得。
S̲OK

成功

S̲FALSE

失敗

注意
ccd̲EnumCamera()を呼び出しにより取得したｶﾒﾗ情報構造体
SDK̲CCD̲INFO SdkCameraArray[MAX̲SUPPORT̲CAMERAS];と ccd̲GetCurrentFormat()で取得した現在のﾋﾞﾃﾞｵﾓｰﾄﾞ・ﾌﾚｰﾑﾚｰﾄのｲﾝﾃﾞｯｸｽ番号により、現在のﾋﾞﾃﾞｵﾓｰﾄﾞ・ﾌﾚｰﾑﾚｰﾄはそれぞれ下記のように定めることができます。
SdkCameraArray[CameraIndex].SupportedStream[*pStreamIndex].SupportedFormat
SdkCameraArray[CameraIndex].SupportedStream[*pStreamIndex].SupportedFrameRate[*pFpsIndex]

Page.16

IRsCcdSdk::ccd̲GetLastError
IRsCcdSdk インターフェイス
最後に発生したｴﾗｰの詳細情報を取得。
構文
HRESULT ccd̲GetLastError (long *ErrNumber, LPWSTR lpwstrRrr
);

パラメータ
ErrNumber[out] ｴﾗｰｺｰﾄﾞの格納先。

lpwstrRrr[out] ｴﾗｰの内容を記述した文字列の格納先。

戻り値
HRESULT として常に S̲OK を返す。
S̲OK

成功

注意
ｴﾗｰの原因が推定できるものを次ﾍﾟｰｼﾞのｴﾗｰｺｰﾄﾞ一覧表に示します。対処方法に基づいて確認を行って下さい。その他、一覧表にないｴﾗｰｺｰﾄﾞについては、個々の環境における致命的なｴﾗｰと思われます。ﾊﾟｿｺﾝを再起動して下さい。

Page.17

エラーコード一覧表
ｴﾗｰｺｰﾄﾞ
1

対

処

方

法

CCD ｶﾒﾗが接続されていないか、ｶﾒﾗﾄﾞﾗｲﾊﾞが正しくｲﾝｽﾄｰﾙされていません。ﾃﾞﾊﾞｲｽﾏﾈｰｼﾞｬ上にｲﾒｰｼﾞﾝｸﾞﾃﾞ
ﾊﾞｲｽが認識されているか確認して下さい。

2

使用可能なｵｰﾃﾞｨｵﾃﾞﾊﾞｲｽが存在しません。ﾃﾞﾊﾞｲｽﾏﾈｰｼﾞｬ上にｵｰﾃﾞｨｵﾃﾞﾊﾞｲｽが認識されているか確認して下さい。

3

指定したﾄﾞﾗｲﾌﾞに十分な空き容量がありません。

4

動画ﾌｧｲﾙを作成できません。指定したﾌｧｲﾙが他のｱﾌﾟﾘｹｰｼｮﾝによって使用されていないか確認して下さい。

5

指定したﾊﾟｽは存在しません。ccd̲SetCaptureFile で指定したﾊﾟｽ名が正しいか再確認して下さい。

6

指定したﾌｧｲﾙ名の拡張子が AVI ではありません。

7

静止画ﾌｧｲﾙを作成できません。指定したﾌｧｲﾙが他のｱﾌﾟﾘｹｰｼｮﾝよって使用されていないか確認して下さい。

8

指定したﾊﾟｽは存在しません。ccd̲SnapShot で指定したﾊﾟｽ名が正しいか再確認して下さい。

9

指定したﾌｧｲﾙ名の拡張子が BMP ではありません。

10

無効なｶﾒﾗｲﾝﾃﾞｯｸｽが渡されました。ｲﾝﾃﾞｯｸｽ番号が有効か確認して下さい。

Page.18

IRsCcdSdk::ccd̲GetMemCh
IRsCcdSdk インターフェイス
ｶﾒﾗ内部のﾒﾓﾘに記憶されている設定ﾃﾞｰﾀを読み出しｶﾒﾗに再設定。
構文
HRESULT ccd̲GetMemCh (LONG CameraIndex, LONG MemoryChannel
);

パラメータ
CameraIndex[in] ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 SDK̲CCD̲INFO 構造体参照。

MemoryChannel[in] ｶﾒﾗ内部のﾒﾓﾘﾁｬﾝﾈﾙ番号を指定。

戻り値
HRESULT を返す。以下のいずれかの値。ｴﾗｰの詳細は ccd̲GetLastError で取得。
S̲OK

成功

S̲FALSE

失敗

注意
本機能の詳細に関しては CCD ｶﾒﾗのﾕｰｻﾞｰｽﾞｶﾞｲﾄﾞを参照願います。

関連
ccd̲SetMemCh 参照。

Page.19

IRsCcdSdk::ccd̲GetProperty
IRsCcdSdk インターフェイス
Zoom/Focus 等ﾍﾞｰｽﾌﾟﾛﾊﾟﾃｨに関し、ｶﾒﾗより現在値を取得。
構文
HRESULT ccd̲GetProperty (LONG CameraIndex, LONG Property, LONG *plValue, LONG fMode
);

パラメータ
CameraIndex[in]ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 SDK̲CCD̲INFO 構造体参照。

Property[in]

BaseProperty より現在の値を取得したいﾌﾟﾛﾊﾟﾃｨを指定。

plValue[out] 指定したﾌﾟﾛﾊﾟﾃｨの値を格納する場所を示すﾎﾟｲﾝﾀ。

fMode
[in]

指定したﾌﾟﾛﾊﾟﾃｨの現在のﾓｰﾄﾞを指定。Camera Control Flag を使って指定。

戻り値
HRESULT を返す。以下のいずれかの値。ｴﾗｰの詳細は ccd̲GetLastError で取得。
S̲OK

成功

S̲FALSE

失敗

関連
ccd̲GetPropertyRange,

ccd̲SetProperty,

ccd̲ShowPropertyPage 参照。

ccd̲GetColorRange,

ccd̲GetColor,

ccd̲SetColor,Page.20

IRsCcdSdk::ccd̲GetPropertyRange
IRsCcdSdk インターフェイス
Zoom/Focus 等ﾍﾞｰｽﾌﾟﾛﾊﾟﾃｨに関し、調整ﾚﾝｼﾞ情報を取得。
構文
HRESULT ccd̲GetPropertyRange(
LONG CameraIndex, LONG Property, PROPERTY̲RANGE *pPropValue
);

パラメータ
CameraIndex[in] ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 SDK̲CCD̲INFO 構造体参照。

Property[in] BaseProperty よりﾚﾝｼﾞを取得するﾌﾟﾛﾊﾟﾃｨを指定。

pPropValue[out] ﾚﾝｼﾞ情報格納先の PROPERTY̲RANGE 構造体ｵﾌﾞｼﾞｪｸﾄﾎﾟｲﾝﾀ。PROPERTY̲RANGE 構造体参照。

戻り値
HRESULT を返す。以下のいずれかの値。ｴﾗｰの詳細は ccd̲GetLastError で取得。
S̲OK

成功

S̲FALSE

失敗

関連
ccd̲GetProperty, ccd̲SetProperty, ccd̲GetColorRange, ccd̲GetColor, ccd̲SetColor, ccd̲ShowPropertyPage
参照。

Page.21

IRsCcdSdk::ccd̲Initialize
IRsCcdSdk インターフェイス
SDK ﾗｲﾌﾞﾗﾘの初期化処理。他のｲﾝﾀｰﾌｪｲｽﾗｲﾌﾞﾗﾘの呼び出しを行う前に必ず SDK ﾗｲﾌﾞﾗﾘの初期化処理を行います。
構文
HRESULT ccd̲Initialize ( );

パラメータ
なし

戻り値
HRESULT を返す。以下のいずれかの値。ｴﾗｰの詳細は ccd̲GetLastError で取得。
S̲OK

成功

S̲FALSE

失敗

注意
ｱﾌﾟﾘｹｰｼｮﾝ終了時、必ず ccd̲Uninitialize により SDK ﾗｲﾌﾞﾗﾘの終了処理を行います。

Page.22

IRsCcdSdk::ccd̲PreviewPause
IRsCcdSdk インターフェイス
指定されたｶﾒﾗのﾌﾟﾚﾋﾞｭｰをﾎﾟｰｽﾞ。
構文
HRESULT ccd̲PreviewPause( LONG CameraIndex );パラメータ
CameraIndex[in] ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 SDK̲CCD̲INFO 構造体参照。

戻り値
HRESULT を返す。以下のいずれかの値。ｴﾗｰの詳細は ccd̲GetLastError で取得。
S̲OK

成功

S̲FALSE

失敗

関連
ccd̲PreviewStart, ccd̲PreviewStop 参照。

Page.23

IRsCcdSdk::ccd̲PreviewStart
IRsCcdSdk インターフェイス
指定されたｶﾒﾗのﾌﾟﾚﾋﾞｭｰを開始。
構文
HRESULT ccd̲PreviewStart( LONG CameraIndex, HWND hWnd );パラメータ
CameraIndex[in] ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 SDK̲CCD̲INFO 構造体参照。

hWnd[in] ﾌﾟﾚﾋﾞｭｰｳｨﾝﾄﾞｳのﾊﾝﾄﾞﾙ。NULL を渡した場合はﾃﾞﾌｫﾙﾄのﾌﾟﾚﾋﾞｭｰｳｨﾝﾄﾞｳが表示されます。

戻り値
HRESULT を返す。以下のいずれかの値。ｴﾗｰの詳細は ccd̲GetLastError で取得。
S̲OK

成功

S̲FALSE

失敗

関連
ccd̲PreviewPause, ccd̲PreviewStop 参照。

Page.24

IRsCcdSdk::ccd̲PreviewStop
IRsCcdSdk インターフェイス
指定されたｶﾒﾗのﾌﾟﾚﾋﾞｭｰを終了。
構文
HRESULT ccd̲PreviewStop( LONG CameraIndex );パラメータ
CameraIndex[out] ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 SDK̲CCD̲INFO 構造体参照。

戻り値
HRESULT を返す。以下のいずれかの値。ｴﾗｰの詳細は ccd̲GetLastError で取得。
S̲OK

成功

S̲FALSE

失敗

関連
ccd̲PreviewStart, ccd̲PreviewPause 参照。

Page.25

IRsCcdSdk::ccd̲ReadRegister
IRsCcdSdk インターフェイス
指定のｶﾒﾗのｵﾌｾｯﾄｱﾄﾞﾚｽから 4 ﾊﾞｲﾄ（Quadlet）ﾘｰﾄﾞ。
構文
HRESULT ccd̲ReadRegister (LONG CameraIndex, LONG Offset, LONG *plValue);

パラメータ
CameraIndex[in]ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 SDK̲CCD̲INFO 構造体参照。

Offset[in]

ﾘｰﾄﾞするﾚｼﾞｽﾀのﾍﾞｰｽｱﾄﾞﾚｽからのﾊﾞｲﾄｵﾌｾｯﾄ。

plValue[out] ﾘｰﾄﾞした値の格納先ｱﾄﾞﾚｽ。

戻り値
HRESULT を返す。以下のいずれかの値。ｴﾗｰの詳細は ccd̲GetLastError で取得。
S̲OK

成功

S̲FALSE

失敗

注意
ccd̲ReadRegister ﾒｿｯﾄﾞの Offset 引数は、CCD ｶﾒﾗのﾕｰｻﾞｰｽﾞｶﾞｲﾄﾞに示されているCameraControl & Status Register（CSR） のｱﾄﾞﾚｽを指定します。例えば、SONY DFW‑VL500 の場合 CSR
ｱﾄﾞﾚｽは F0F00000h からﾏｯﾋﾟﾝｸﾞされています。
CSR ｱﾄﾞﾚｽは、Configuration ROM の Unit Dependent Directory の command̲regs̲base とその
key̲type と Key̲value により求めることができます。
詳細は、IIDC Specification および IEEE 1212 ｱﾄﾞﾚｯｼﾝｸﾞ規格参照。

関連
ccd̲WriteRegister 参照。

Page.26

IRsCcdSdk::ccd̲RegCameraEvent
IRsCcdSdk インターフェイス
ｶﾒﾗの取り外しｲﾍﾞﾝﾄ、接続ｲﾍﾞﾝﾄをｱﾌﾟﾘｹｰｼｮﾝに通知されるよう設定。
構文
HRESULT ccd̲RegCameraEvent (HWND hWnd);

パラメータ
hWnd
[in]

ｲﾍﾞﾝﾄを受け取るｳｨﾝﾄﾞｳのﾊﾝﾄﾞﾙ。

戻り値
HRESULT を返す。以下のいずれかの値。ｴﾗｰの詳細は ccd̲GetLastError で取得。
S̲OK

成功

S̲FALSE

失敗

注意
ccd̲RegCameraEvent()によるｲﾍﾞﾝﾄ登録完了後、ｱﾌﾟﾘｹｰｼｮﾝは新しくｶﾒﾗﾃﾞﾊﾞｲｽが接続された時、もしくは取り外しが発生する毎に下記 WindowProc を通して WM̲DEVICECHANGE ｲﾍﾞﾝﾄを受け取ります。
wParam には、新しくｶﾒﾗが接続された場合には DBT̲DEVICEARRIVAL、取り外された場合にはDBT̲DEVICEREMOVECOMPLETE がｾｯﾄされます。
LRESULT CALLBACK WindowProc(
HWND hwnd,// handle to window

UINT uMsg,// WM̲DEVICECHANGEWPARAM wParam,// device‑change event

LPARAM lParam// event‑specific data);

関連
ccd̲EnumCamera, ccd̲FreeCamera 参照。

Page.27

IRsCcdSdk::ccd̲SetAudio
IRsCcdSdk インターフェイス
動画のﾌﾟﾚﾋﾞｭｰおよび保存時、同時にｵｰﾃﾞｨｵﾃﾞｰﾀを有効にするか無効にするか設定。
構文
HRESULT ccd̲SetAudio(LONG CameraIndex, LONG bAudioOn);

パラメータ
CameraIndex[in] ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 SDK̲CCD̲INFO 構造体参照。

bAudioOn[in] ｵｰﾃﾞｨｵ入力の ON/OFF 設定。TRUE: ｵｰﾃﾞｨｵｵﾝ FALSE: ｵｰﾃﾞｨｵｵﾌ（ﾃﾞﾌｫﾙﾄ）

戻り値
HRESULT を返す。以下のいずれかの値。ｴﾗｰの詳細は ccd̲GetLastError で取得。
S̲OK

成功

S̲FALSE失敗

Page.28

IRsCcdSdk::ccd̲SetCaptureFile
IRsCcdSdk インターフェイス
動画を保存するﾌﾙﾊﾟｽﾌｧｲﾙ名と、ｷｬﾌﾟﾁｬﾌｧｲﾙ保存にﾃﾝﾎﾟﾗﾘﾌｧｲﾙを使用するか指定。ﾃﾝﾎﾟﾗﾘﾌ
ｧｲﾙを使用しない場合、ccd̲StartCapture によりｷｬﾌﾟﾁｬを開始すると第 2 引数で指定したﾌｧｲﾙに直接動画ﾃﾞｰﾀが保存されます。
構文
HRESULT ccd̲SetCaptureFile (LONG CameraIndex, LPCWSTR lpcwstrCaptureFile, LONG bTempFileOn
);

パラメータ
CameraIndex[in] ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 SDK̲CCD̲INFO 構造体参照。

lpcwstrCaptureFile[in] ｷｬﾌﾟﾁｬ出力名とﾌﾙﾊﾟｽを示すﾜｲﾄﾞ文字列へのﾎﾟｲﾝﾀ（終端 NULL）。

bTempFileOn[in] ﾃﾝﾎﾟﾗﾘﾌｧｲﾙ設定ﾌﾗｸﾞ。TRUE: ﾃﾝﾎﾟﾗﾘﾌｧｲﾙ使用

FALSE: 直接指定ﾌｧｲﾙに保存（ﾃﾞﾌｫﾙﾄ）

戻り値
HRESULT を返す。以下のいずれかの値。ｴﾗｰの詳細は ccd̲GetLastError で取得。
S̲OK

成功

S̲FALSE

失敗

注意
ﾃﾝﾎﾟﾗﾘﾌｧｲﾙを使用する設定を行った場合は、基本的に ccd̲SetCaptureTempFile によりﾃﾝﾎﾟﾗﾘﾌｧ
ｲﾙの設定を行って下さい。ccd̲StopCapture によりｷｬﾌﾟﾁｬを停止すると、ﾃﾝﾎﾟﾗﾘﾌｧｲﾙから第 2 引数で指定したﾌｧｲﾙにｷｬﾌﾟﾁｬﾃﾞｰﾀがｺﾋﾟｰされます。

関連
ccd̲StartCapture, ccd̲StopCapture, ccd̲SetCaptureTempFile, ccd̲GetCopyFileProgress 参照。

Page.29

IRsCcdSdk::ccd̲SetCaptureTempFile
IRsCcdSdk インターフェイス
ｷｬﾌﾟﾁｬ用のﾃﾝﾎﾟﾗﾘﾌｧｲﾙに関する設定。領域確保ｵﾝにすると、ｷｬﾌﾟﾁｬ実行前に予めﾊｰﾄﾞﾃﾞｨｽ
ｸ上に指定ｻｲｽﾞのﾝﾎﾟﾗﾘﾌｧｲﾙ領域が確保されｷｬﾌﾟﾁｬ実行時の負荷が小さくなります。
構文
HRESULT ccd̲SetCaptureTempFile (LONG CameraIndex, LPCWSTR lpcwstrCaptureFile, LONG bPreAllocOn, long lAllocMBytes
);

パラメータ
CameraIndex[in] ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 SDK̲CCD̲INFO 構造体参照。

lpcwstrCaptureFile[in] ｷｬﾌﾟﾁｬﾃﾝﾎﾟﾗﾘﾌｧｲﾙ名とﾌﾙﾊﾟｽを示すﾜｲﾄﾞ文字列へのﾎﾟｲﾝﾀ（終端 NULL）。

bPreAllocOn[in] ﾌｧｲﾙｱﾛｹｰｼｮﾝ設定。TRUE: 領域確保ｵﾝ

FALSE: 領域確保ｵﾌ（ﾃﾞﾌｫﾙﾄ）

lAllocMBytes[in] ﾊｰﾄﾞﾃﾞｨｽｸ上に領域確保するﾌｧｲﾙのｻｲｽﾞ (ﾒｶﾞﾊﾞｲﾄ単位)。

戻り値
HRESULT を返す。以下のいずれかの値。ｴﾗｰの詳細は S̲OK

成功

ccd̲GetLastError で取得。

失敗

S̲FALSE注意
ﾊｰﾄﾞﾃﾞｨｽｸ上に予めｷｬﾌﾟﾁｬ領域を確保することにより、動画ｷｬﾌﾟﾁｬ時のｵｰﾊﾞｰﾍｯﾄﾞを最小にすることができます。第 2 引数のﾌｧｲﾙ名に NULL を指定すると、環境変数 TEMP で定義されたﾌｫﾙﾀﾞにﾃﾞﾌｫﾙﾄのﾌｧｲﾙ名「RSCCDTMP.AVI」でﾃﾝﾎﾟﾗﾘﾌｧｲﾙが作成されます。このﾃﾝﾎﾟﾗﾘﾌｧｲﾙはｺﾋﾟｰ終了時削除
されます。

関連
ccd̲StartCapture, ccd̲StopCapture, ccd̲SetCaptureFile, ccd̲GetCopyFileProgress 参照。

Page.30

IRsCcdSdk::ccd̲SetColor
IRsCcdSdk インターフェイス
UB/VR/Hue/Saturation に関するｶﾗｰﾌﾟﾛﾊﾟﾃｨについて、ｶﾒﾗの設定値を変更する。
構文
HRESULT ccd̲SetColor (LONG CameraIndex, LONG Property, LONG lValue, LONG fMode
);

パラメータ
CameraIndex[in]ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 SDK̲CCD̲INFO 構造体参照。

Property
ColorProperty より現在の値を取得したいﾌﾟﾛﾊﾟﾃｨを指定。

[in]lValue[in] 新たに設定するﾌﾟﾛﾊﾟﾃｨの値。fMode に fCameraControlAuto もしくはfCameraControlOnePush が指定されている時は無視されます。

fMode
[in]

指定したﾌﾟﾛﾊﾟﾃｨの現在のﾓｰﾄﾞを指定。

戻り値
HRESULT を返す。以下のいずれかの値。ｴﾗｰの詳細は ccd̲GetLastError で取得。
S̲OK

成功

S̲FALSE

失敗

関連
ccd̲GetPropertyRange, ccd̲GetProperty, ccd̲SetProperty, ccd̲GetColorRange, ccd̲GetColor,
ccd̲ShowPropertyPage 参照。

Page.31

IRsCcdSdk::ccd̲SetFrameRate
IRsCcdSdk インターフェイス
指定されたｶﾒﾗから出力されるﾌﾚｰﾑﾚｰﾄを設定。
構文
HRESULT ccd̲SetFrameRate ( LONG CameraIndex, LONG NewFrameRate );パラメータ
CameraIndex[in]ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 SDK̲CCD̲INFO 構造体参照。

NewFrameRate[in] 新しく設定するﾌﾚｰﾑﾚｰﾄのｲﾝﾃﾞｯｸｽ番号。SDK̲CCD̲INFO 構造体参照。

戻り値
HRESULT を返す。以下のいずれかの値。ｴﾗｰの詳細は ccd̲GetLastError で取得。
S̲OK

成功

S̲FALSE

失敗

関連
ccd̲EnumCamera, ccd̲GetCurrentFormat, ccd̲SetStream 参照。

Page.32

IRsCcdSdk::ccd̲SetMemCh
IRsCcdSdk インターフェイス
現在ｶﾒﾗに設定されているﾃﾞｰﾀをｶﾒﾗ内部のﾒﾓﾘに記憶。
構文
HRESULT ccd̲SetMemCh ( LONG CameraIndex, LONG MemoryChannel );パラメータ
CameraIndex[in] ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 SDK̲CCD̲INFO 構造体参照。

MemoryChannel[in] ｶﾒﾗ内部のﾒﾓﾘﾁｬﾝﾈﾙ番号を指定。

戻り値
HRESULT を返す。以下のいずれかの値。ｴﾗｰの詳細は ccd̲GetLastError で取得。
S̲OK

成功

S̲FALSE

失敗

注意
本機能の詳細に関しては CCD ｶﾒﾗのﾕｰｻﾞｰｽﾞｶﾞｲﾄﾞを参照願います。

関連
ccd̲GetMemCh 参照。

Page.33

IRsCcdSdk::ccd̲SetMovieCompressor
IRsCcdSdk インターフェイス
ｷｬﾌﾟﾁｬ保存するﾌｧｲﾙの圧縮形式を設定。ﾃﾞﾌｫﾙﾄでは無圧縮形式で保存されます。
構文
HRESULT ccd̲SetMovieCompressor(LONG CameraIndex, LONG CompressorIndex, LPCWSTR lpcwstrCompName)

パラメータ
CameraIndex[in] ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 SDK̲CCD̲INFO 構造体参照。

CompressorIndex[in] 圧縮ﾌｫｰﾏｯﾄを示すｲﾝﾃﾞｯｸｽ番号を CompressorFormat 構造体で指定。

lpcwstrCompName[in] 圧縮ﾌｫｰﾏｯﾄ名が格納されているﾜｲﾄﾞ文字列へのﾎﾟｲﾝﾀ（終端 NULL）。圧縮ﾌｫｰﾏｯﾄｲﾝﾃﾞｯｸｽ
番号 CompressorIndex に SetByName が指定された場合は、この文字列で圧縮ﾌｫｰﾏｯﾄを指定します。圧縮ﾌｫｰﾏｯﾄ名は DirectShow のﾌｨﾙﾀ名と一致する必要があります。SetByName
以外の圧縮ﾌｫｰﾏｯﾄｲﾝﾃﾞｯｸｽ番号 CompressorIndex を指定している場合は、NULL を渡します。

戻り値
HRESULT を返す。以下のいずれかの値。ｴﾗｰの詳細は ccd̲GetLastError で取得。
S̲OK

成功

S̲FALSE

失敗

注意
非圧縮ﾃﾞｰﾀをそのままｷｬﾌﾟﾁｬした場合は、処理が間に合わずこま落ち等の問題が発生します。DVVideo Encoder 等の圧縮を行ってｷｬﾌﾟﾁｬすることによりこま落ち問題を改善することができます。

関連
ccd̲StartCapture, ccd̲StopCapture 参照。

Page.34

IRsCcdSdk::ccd̲SetOverlay
IRsCcdSdk インターフェイス
ｵｰﾊﾞｰﾚｲ機能のｲﾈｰﾌﾞﾙ・ﾃﾞｨｾｰﾌﾞﾙを設定。
構文
HRESULT ccd̲SetOverlay ( LONG CameraIndex, LONG bOverlayOn );パラメータ
CameraIndex[in] ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 SDK̲CCD̲INFO 構造体参照。

bOverlayOn[in] ｵｰﾊﾞｰﾚｲ機能の ON/OFF 設定。TRUE:ｵﾝ FALSE:ｵﾌ

戻り値
HRESULT を返す。以下のいずれかの値。ｴﾗｰの詳細は ccd̲GetLastError で取得。
S̲OK

成功

S̲FALSE失敗

注意
1. ｵｰﾊﾞｰﾚｲ機能のｻﾎﾟｰﾄについてｵｰﾊﾞｰﾚｲ機能を有効にして CCD ｶﾒﾗからの動画ﾌﾟﾚﾋﾞｭｰを行うと、高速な動画表示が可能になります。ｵｰﾊﾞｰﾚｲ機能のｻﾎﾟｰﾄは使用しているｸﾞﾗﾌｨｯｸｱﾀﾞﾌﾟﾀに依存します。ｵｰﾊﾞｰﾚｲ機能がｻﾎﾟｰﾄされたｸﾞﾗﾌｨｯｸｱﾀﾞﾌﾟﾀでも、ｱﾀﾞﾌﾟﾀ側の問題によりﾌﾟﾚﾋﾞｭｰ画面の拡大縮小ができない場合があります。
2. 外部ﾄﾘｶﾞｰﾓｰﾄﾞについてｵｰﾊﾞｰﾚｲﾓｰﾄﾞを有効にした場合は、外部ﾄﾘｶﾞｰﾓｰﾄﾞは使用できません。

関連
ccd̲SetTrigger 参照。

Page.35

IRsCcdSdk::ccd̲SetProperty
IRsCcdSdk インターフェイス
Zoom/Focus 等に関するﾍﾞｰｽﾌﾟﾛﾊﾟﾃｨについて、ｶﾒﾗの設定値を変更。
構文
HRESULT ccd̲SetProperty ( LONG CameraIndex, LONG Property, LONG lValue, LONG fMode );パラメータ
CameraIndex[in]ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 SDK̲CCD̲INFO 構造体参照。

Property
BaseProperty より現在の値を取得したいﾌﾟﾛﾊﾟﾃｨを指定。

[in]lValue[in] 新たに設定するﾌﾟﾛﾊﾟﾃｨの値。fMode に fCameraControlAuto もしくはfCameraControlOnePush が指定されている時は無視されます。

fMode
[in]

指定したﾌﾟﾛﾊﾟﾃｨの現在のﾓｰﾄﾞを指定。Camera Control Flag を使って指定。

戻り値
HRESULT を返す。以下のいずれかの値。ｴﾗｰの詳細は ccd̲GetLastError で取得。
S̲OK

成功

S̲FALSE

失敗

関連
ccd̲GetPropertyRange,

ccd̲GetProperty,

ccd̲ShowPropertyPage 参照。

ccd̲GetColorRange,

ccd̲GetColor,

ccd̲SetColor,Page.36

IRsCcdSdk::ccd̲SetStream
IRsCcdSdk インターフェイス
指定されたｶﾒﾗから出力されるｽﾄﾘｰﾑﾌｫｰﾏｯﾄを設定。
構文
HRESULT ccd̲SetStream ( LONG CameraIndex, LONG StreamIndex );パラメータ
CameraIndex[in] ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 SDK̲CCD̲INFO 構造体参照。

StreamIndex[in] 新しく設定するｽﾄﾘｰﾑのｲﾝﾃﾞｯｸｽ番号。SDK̲CCD̲INFO 構造体参照。

戻り値
HRESULT を返す。以下のいずれかの値。ｴﾗｰの詳細は ccd̲GetLastError で取得。
S̲OK

成功

S̲FALSE

失敗

関連
ccd̲EnumCamera, ccd̲GetCurrentFormat, ccd̲SetFrameRate 参照。

Page.37

IRsCcdSdk::ccd̲WriteRegister
IRsCcdSdk インターフェイス
指定のｶﾒﾗのｵﾌｾｯﾄｱﾄﾞﾚｽに 4 ﾊﾞｲﾄ（Quadlet）ﾗｲﾄ。
構文
HRESULT ccd̲WriteRegister ( LONG CameraIndex, LONG Offset, LONG lValue );パラメータ
CameraIndex[in]ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 SDK̲CCD̲INFO 構造体参照。

Offset[in]

ﾗｲﾄするﾚｼﾞｽﾀのﾍﾞｰｽｱﾄﾞﾚｽからのﾊﾞｲﾄｵﾌｾｯﾄ。

lValue[in]

ﾗｲﾄする値。

戻り値
HRESULT を返す。以下のいずれかの値。ｴﾗｰの詳細は ccd̲GetLastError で取得。
S̲OK

成功

S̲FALSE

失敗

注意
ccd̲ReadRegister ﾒｿｯﾄﾞの Offset 引数は、CCD ｶﾒﾗのﾕｰｻﾞｰｽﾞｶﾞｲﾄﾞに示されているCameraControl & Status Register（CSR） のｱﾄﾞﾚｽを指定します。例えば、SONY DFW‑VL500 の場合 CSR
ｱﾄﾞﾚｽは F0F00000h からﾏｯﾋﾟﾝｸﾞされています。
CSR ｱﾄﾞﾚｽは、Configuration ROM の Unit Dependent Directory の command̲regs̲base とその
key̲type と Key̲value により求めることができます。
詳細は、IIDC Specification および IEEE 1212 ｱﾄﾞﾚｯｼﾝｸﾞ規格参照。

関連
ccd̲ReadRegister 参照。

Page.38

IRsCcdSdk:: ccd̲SetTrigger
IRsCcdSdk インターフェイス
CCD ｶﾒﾗの外部ﾄﾘｶﾞｰﾓｰﾄﾞの ON/OFF を設定。
構文
HRESULT ccd̲SetTrigger( LONG CameraIndex, LONG bTriggerOn );パラメータ
CameraIndex[in] ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 SDK̲CCD̲INFO 構造体参照。

bTriggerOn[in] 外部ﾄﾘｶﾞｰﾓｰﾄﾞの ON/OFF 設定。TRUE:ｵﾝ FALSE:ｵﾌ

戻り値
HRESULT を返す。以下のいずれかの値。ｴﾗｰの詳細は ccd̲GetLastError で取得。
S̲OK

成功

S̲FALSE失敗

注意
1. ﾄﾘｶﾞｰ画像ﾃﾞｰﾀの遅れについて
外部ﾄﾘｶﾞｰ信号が CCD ｶﾒﾗに入力されると、CCD ｶﾒﾗより 1 ﾌﾚｰﾑの画像が送られます。この時、実際に外部信号が入力された時点の画像ﾃﾞｰﾀと、CCD ｶﾒﾗより送られた画像ﾃﾞｰﾀには 100 ﾐﾘ秒前後の遅れがあります。
2.ﾄﾘｶﾞｰｲﾍﾞﾝﾄの取得について
ｱﾌﾟﾘｹｰｼｮﾝがﾄﾘｶﾞｰの発生を検出するためには、外部ﾄﾘｶﾞｰ発生装置からのﾄﾘｶﾞｰ信号は CCD ｶﾒﾗに入力すると同時に、ﾃﾞｼﾞﾀﾙ I/O 入出力ﾕﾆｯﾄを介してﾊﾟｿｺﾝにも入力する必要があります。
例えば、外部ﾄﾘｶﾞｰﾓｰﾄﾞでﾌﾟﾚﾋﾞｭｰを実行した場合、外部ﾄﾘｶﾞｰの入力があると CCD ｶﾒﾗより 1 ﾌﾚｰ
ﾑの画像ﾃﾞｰﾀ送られ、ﾌﾟﾚﾋﾞｭｰ画面に 1 ﾌﾚｰﾑの静止画が表示されます。人がその画像を見てｽﾅｯﾌﾟ
ｼｮｯﾄを実行することはできますが、ｱﾌﾟﾘｹｰｼｮﾝが自動で外部ﾄﾘｶﾞｰを検出してｽﾅｯﾌﾟｼｮｯﾄを実行する場合は、ﾃﾞｼﾞﾀﾙ I/O 入出力ﾕﾆｯﾄが必要になります。
3.ｵｰﾊﾞｰﾚｲﾓｰﾄﾞについて
外部ﾄﾘｶﾞｰﾓｰﾄﾞを有効にした場合は、ｵｰﾊﾞｰﾚｲ描画はできません。ccd̲SetOverlay 参照。

Page.39

IRsCcdSdk::ccd̲ShowPropertyPage
IRsCcdSdk インターフェイス
ｶﾒﾗﾄﾞﾗｲﾊﾞのﾌﾟﾛﾊﾟﾃｨﾍﾟｰｼﾞを表示。
構文
HRESULT ccd̲ShowPropertyPage ( LONG CameraIndex );パラメータ
CameraIndex[in] ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 SDK̲CCD̲INFO 構造体参照。

戻り値
HRESULT を返す。以下のいずれかの値。ｴﾗｰの詳細は ccd̲GetLastError で取得。
S̲OK

成功

S̲FALSE

失敗

注意
ｶﾒﾗﾄﾞﾗｲﾊﾞのﾌﾟﾛﾊﾟﾃｨﾍﾟｰｼﾞを右に示します。

関連
ccd̲GetPropertyRange, ccd̲GetProperty, ccd̲SetProperty, ccd̲GetColorRange, ccd̲GetColor, ccd̲SetColor 参照。

Page.40

IRsCcdSdk::ccd̲Snapshot
IRsCcdSdk インターフェイス
現在表示されているﾌﾚｰﾑを静止画ﾋﾞｯﾄﾏｯﾌﾟﾌｧｲﾙに保存。
構文
HRESULT ccd̲Snapshot ( LONG CameraIndex, LPCWSTR lpcwstrSnapFile

);

パラメータ
CameraIndex[in] ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 SDK̲CCD̲INFO 構造体参照。

lpcwstrSnapFile[in] 出力ﾌｧｲﾙ名が格納されているﾜｲﾄﾞ文字列へのﾎﾟｲﾝﾀ（終端 NULL）。

戻り値
HRESULT を返す。以下のいずれかの値。ｴﾗｰの詳細は ccd̲GetLastError で取得。
S̲OK

成功

S̲FALSE

失敗

注意
ｽﾅｯﾌﾟｼｮｯﾄしたﾌﾚｰﾑはｶﾗｰ CCD の場合は RGB24、ﾓﾉｸﾛ CCD の場合は RGB8 ﾌｫｰﾏｯﾄで保存されます。

Page.41

IRsCcdSdk::ccd̲CaptureStart
IRsCcdSdk インターフェイス
指定されたｶﾒﾗより現在設定されたｽﾄﾘｰﾑ・ﾌﾚｰﾑﾚｰﾄで動画保存を開始。
構文
HRESULT ccd̲CaptureStart( LONG CameraIndex, LONG bPreviewOn , HWND hWnd );パラメータ
CameraIndex[in] ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 SDK̲CCD̲INFO 構造体参照

bPreviewOn[in] ｷｬﾌﾟﾁｬ動作中のﾌﾟﾚﾋﾞｭｰﾓｰﾄﾞの ON/OFF 設定。TRUE:ﾌﾟﾚﾋﾞｭｰする FALSE:ﾌﾟﾚﾋﾞｭｰしない

hWnd[in] ﾌﾟﾚﾋﾞｭｰｳｨﾝﾄﾞｳのﾊﾝﾄﾞﾙ。

戻り値
HRESULT を返す。以下のいずれかの値。ｴﾗｰの詳細は ccd̲GetLastError で取得。
S̲OK

成功

S̲FALSE

失敗

注意
ccd̲SetCaptureFilename のﾃﾝﾎﾟﾗﾘﾌｧｲﾙ設定ﾌﾗｸﾞが True の場合は、一旦ﾃﾝﾎﾟﾗﾘﾌｧｲﾙに動画が保存
されます。

関連
ccd̲CaptureStop, ccd̲SetCaptureFilename, ccd̲SetCaptureTempFile, ccd̲GetCopyFileProgress 参照。

Page.42

IRsCcdSdk::ccd̲CaptureStop
IRsCcdSdk インターフェイス
動画保存を終了。
構文
HRESULT ccd̲CaptureStop ( LONG CameraIndex );パラメータ
CameraIndex[in] ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 SDK̲CCD̲INFO 構造体参照。

戻り値
HRESULT を返す。以下のいずれかの値。ｴﾗｰの詳細は ccd̲GetLastError で取得。
S̲OK

成功

S̲FALSE

失敗

注意
ccd̲SetCaptureFilename のﾃﾝﾎﾟﾗﾘﾌｧｲﾙ設定ﾌﾗｸﾞが True の場合は、ﾃﾝﾎﾟﾗﾘﾌｧｲﾙに保存された動画が ccd̲SetCaptureFilename で指定したﾌｧｲﾙにｺﾋﾟｰします。ccd̲GetCopyFileProgress を呼び出し、何%ｺﾋﾟｰが終了したが進捗情報を取得することができます。

関連
ccd̲CaptureStart, ccd̲SetCaptureFilename, ccd̲SetCaptureTempFile, ccd̲GetCopyFileProgress 参照。

Page.43

IRsCcdSdk::

ccd̲Uninitialize

IRsCcdSdk インターフェイス
SDK ﾗｲﾌﾞﾗﾘの終了処理を行う。
構文
HRESULT ccd̲Uninitialize();

パラメータ
なし

戻り値
HRESULT を返す。以下のいずれかの値。ｴﾗｰの詳細は ccd̲GetLastError で取得。
S̲OK

成功

S̲FALSE

失敗

関連
ccd̲Initialize()参照。

Page.44

3-2. 構造体・フラグ仕様

SDK̲CCD̲INFO
typedef struct ̲sdk̲cam̲info{
LONG
WCHAR
ULONG
SDK̲SUPPORTED̲STREAM
char

CameraIndex;
wCameraName[128];
SupportedBitmapFormat;
SupportedStream[10];Reserved[6];} SDK̲CCD̲INFO, *PSDK̲CCD̲INFO;
CameraIndex

列挙した CCD ｶﾒﾗの 0 から始まるｲﾝﾃﾞｯｸｽ番号。

wCameraName[128]

CCD ｶﾒﾗ名が格納されるﾜｲﾄﾞ文字列ﾊﾞｯﾌｧ。

SupportedBitmapFormat

CCD ｶﾒﾗがｻﾎﾟｰﾄするﾋﾟｸｾﾙﾌｫｰﾏｯﾄのﾋﾞｯﾄﾌﾗｸﾞ。

SupportedStream[10]CCD ｶ ﾒ ﾗ が ｻ ﾎ ﾟ ｰ ﾄ す る ﾋ ﾞ ﾃ ﾞ ｵ ﾓ ｰ ﾄ ﾞ 。 各 ﾋ ﾞ ﾃ ﾞ ｵ ﾓ ｰ ﾄ ﾞ の 詳 細 に つ い て は
SDK̲SUPPORTED̲STREAM 構造体参照。配列の要素番号がｽﾄﾘｰﾑのｲﾝﾃﾞｯｸｽ番号に相当。

Reserved[6]予約。

typedef struct ̲sdk̲supported̲stream{
LONG
SupportedFormat;
SIZE
SupportedPixSize;
LONG
SupportedFrameRate[8];LONG
Reserved;} SDK̲SUPPORTED̲STREAM, *PSDK̲SUPPORTED̲STREAM;
SupportedFormat

CCD ｶﾒﾗがｻﾎﾟｰﾄしているﾌｫｰﾏｯﾄを示すｲﾝﾃﾞｯｸｽ番号。PixelFormat Enum 構
造体の番号と 1 対 1 の対応になります。
番号
ﾌｫｰﾏｯﾄ4

3

2

YUV(4:1:1) YUV(4:2:2) YUV(4:4:4)

1

0

Y(MONO)

RGB32

SupportedPixSize

CCD ｶﾒﾗがｻﾎﾟｰﾄしている上記ﾌｫｰﾏｯﾄ時のﾋﾟｸｾﾙｻｲｽﾞ。

SupportedFrameRate[8]CCD ｶﾒﾗがｻﾎﾟｰﾄしている上記ﾌｫｰﾏｯﾄ時の 100 ﾅﾉ秒単位のﾌﾚｰﾑﾚｰﾄ。配列の要素番号がﾌﾚｰﾑﾚｰﾄのｲﾝﾃﾞｯｸｽ番号に相当。

Reserved

予約。

Page.45

PROPERTY̲RANGE
typedef struct ̲ccd̲propertyvalue
{
long
Min;
long
Max;
long
SteppingDelta;
longDefault;
long
CapsFlags;} PROPERTY̲RANGE, *PPROPERTY̲RANGE;
Min

設定可能な最小値。

Max

設定可能な最大値。

SteppingDelta

1 ｽﾃｯﾌﾟ増分値。

Default

ﾃﾞﾌｫﾙﾄ値。

CapsFlags

ﾋﾞｯﾄﾏｯﾌﾟで定義されたｻﾎﾟｰﾄﾓｰﾄﾞ。

関連
ccd̲GetPropertyRange, ccd̲GetColorRange

BaseProperty
typedef enum
{ Focus=0, Zoom, Brightness, Sharpness, Gamma, Autoexp, Shutter, Gain, Iris } BaseProperty;

関連
ccd̲GetPropertyRange, ccd̲GetProperty, ccd̲SetProperty

Page.46

ColorProperty
typedef enum{ UB = 0, VR, Hue, Saturation, } ColorProperty;

関連
ccd̲GetColorRange, ccd̲GetColor, ccd̲SetColor

PixelFormat
typedef enum{ FormatRGB32 = 0, FormatY800, FormatY444, FormatY422, FormatY411,} PixelFormat;

関連
SDK̲CCD̲INFO 構 造 体 の SDK̲SUPPORTED̲STREAM 型 構 造 体 ﾒ ﾝ ﾊ ﾞ ｰ SupportedStream の ﾒ ﾝ ﾊ ﾞ ｰSupportedFormat は、上記の enum 構造体の番号でｱｻｲﾝすることができます。

CompressorFormat
typedef enum
{ SetByName = 0, NoCompressor, MSVideo, Indeo, Cinepak, DVVideoEncode,} CompressorFormat;

関連
ccd̲SetMovieCompressor

Page.47

Camera Control Flag#define fCameraControlAuto

0X0001L#define fCameraControlManual

0X0002L#define fCameraControlOnePush

0X0004L#define fCameraControlOn

0X0008L#define fCameraControlOff

0X0010L#define fFeatureControlAbsolute

0X0000L#define fFeatureControlRelative

0X0010L#define MAX̲NUMBER̲OF̲CAMERAS

20

注意
ccd̲GetPropertyRange, ccd̲GetProperty, ccd̲SetProperty, ccd̲ShowPropertyPage

Page.48

3-3. Win32 コンソールサンプルプログラム（3-3-1）プログラム作成の準備
Microsoft Visual C++ 6.0 を起動します。
「ﾌｧｲﾙ」ﾒﾆｭｰの新規作成を選択し、新規作成ﾀﾞｲｱﾛｸﾞの「ﾌﾟﾛｼﾞｪｸﾄ」ﾀｸﾞを開きます。
「Win32 Console Application」を選択し、ﾌﾟﾛｼﾞｪｸﾄ名を入力後、「OK」ﾎﾞﾀﾝ
をｸﾘｯｸします。「空のﾌﾟﾛｼﾞｪｸﾄ」を選択し、「終了」をｸﾘｯｸします。
再度、「ﾌｧｲﾙ」ﾒﾆｭｰの新規作成を選択し、新規作成ﾀﾞｲｱﾛｸﾞの「ﾌｧｲﾙ」ﾀｸﾞを開きます。「C++ ｿｰｽﾌｧｲﾙ」
を選択し、ﾌｧｲﾙ名入力後「OK」をｸﾘｯｸします。
製品添付の「RS1394CCD SDK CD‑ROM」の「ForVC¥Include」ﾌｫﾙﾀﾞにある RsCCD.hと RsCCD̲i.cをﾌﾟﾛｼﾞｪｸﾄのﾌｫﾙﾀﾞにｺﾋﾟｰし、ｱﾌﾟﾘｹｰｼｮﾝﾌﾟﾛｸﾞﾗﾑの先頭でｲﾝｸﾙｰﾄﾞします。

（3-3-2）サンプルプログラム
Preview ｻﾝﾌﾟﾙ：CD‑ROM¥ForVc¥ConApp¥Preview¥Preview.cpp
CCD ｶﾒﾗのﾌﾟﾚﾋﾞｭｰを行うｻﾝﾌﾟﾙﾌﾟﾛｸﾞﾗﾑです。接続されている CCD ｶﾒﾗをﾌﾟﾚﾋﾞｭｰ状態にし、何かｷｰ入力があるとﾌﾟﾚﾋﾞｭｰを停止しﾌﾟﾛｸﾞﾗﾑを終了します。
#include <windows.h>#include <stdio.h>#include "RsCCD̲i.c"#include "RsCCD.h"#define SAFE̲RELEASE(pUnk) if (pUnk)¥{¥
pUnk‑>Release();¥pUnk = NULL;¥}
IRsCcdSdk *rsk = 0;
SDK̲CAM̲INFO StreamInfo[MAX̲NUMBER̲OF̲CAMERAS];

ｲﾝﾀｰﾌｪｲｽﾎﾟｲﾝﾀ宣言
ｶﾒﾗ情報が格納される構造体

void main(void){
HRESULT hr;
ULONG NumOfCamera = 0;
int iCam;

ｶﾒﾗの台数
ｶﾒﾗ番号

CoInitialize( NULL );hr = CoCreateInstance( CLSID̲RsCcdSdk, NULL,
CLSCTX̲INPROC,
IID̲IRsCcdSdk, (void**) &rsk );rsk‑>ccd̲Initialize();hr = rsk‑>ccd̲EnumCamera(StreamInfo, &NumOfCamera);
iCam = NumOfCamera ‑1;
hr = rsk‑>ccd̲PreviewStart( iCam, NULL );printf("Press Enter key to quit.");getchar();rsk‑>ccd̲PreviewStop( iCam );rsk‑>ccd̲FreeCamera();rsk‑>ccd̲Uninitialize();
SAFE̲RELEASE(rsk)
CoUninitialize();}

COM ﾗｲﾌﾞﾗﾘを初期化
CCDSdk COM ｵﾌﾞｼﾞｪｸﾄを作成しｲﾝﾀｰﾌｪｰｽ取得

CCDSdk COM の初期化
CCD ｶﾒﾗを列挙しｶﾒﾗ情報を取得
最後に見つけたｶﾒﾗ番号をｾｯﾄ
ﾌﾟﾚﾋﾞｭｰ開始
ﾌﾟﾚﾋﾞｭｰ停止
ccd̲EnumCamera で確保したｶﾒﾗﾘｿｰｽを解放
CCDSdk COM の終了処理
CCDSdk COM ｵﾌﾞｼﾞｪｸﾄの解放

Page.49

Control ｻﾝﾌﾟﾙ：CD‑ROM¥ForVc¥ConApp¥Preview¥Control.cpp
CCD ｶﾒﾗのﾌﾟﾚﾋﾞｭｰを行い、ZOOM/FOCUS のｶﾒﾗｺﾝﾄﾛｰﾙと WhiteBalance の OnePush 自動調整を行うｻﾝﾌﾟﾙﾌﾟ
ﾛｸﾞﾗﾑです。 T

or

行います。

ｷｰ入力により WhiteBalance の OnePush 自動調整を行います。

OW

ｷｰ入力により Zoom ｺﾝﾄﾛｰﾙ、 F

orN

ｷｰ入力により Focus ｺﾝﾄﾛｰﾙを#include <windows.h>#include <stdio.h>#include <conio.h>#include "RsCCD̲i.c"#include "RsCCD.h"
IRsCcdSdk *rsk = 0;
SDK̲CAM̲INFO StreamInfo[MAX̲NUMBER̲OF̲CAMERAS];

CCDSdk COM ｲﾝﾀｰﾌｪｲｽﾎﾟｲﾝﾀ
ｶﾒﾗ情報が格納される構造体#define SAFE̲RELEASE(pUnk) if (pUnk)¥{¥
pUnk‑>Release();¥pUnk = NULL;¥}
void main(void){
HRESULT hr;
ULONG
NumOfCamera = 0;
int
iCam;
LONG
uiPos;CCD̲PROPERTYVALUE CcdProp;
int
ch;
char
szDisp[256] ;int
fMode = 0;

関数戻り値
ｶﾒﾗ台数
ｶﾒﾗ番号
ﾌﾟﾛﾊﾟﾃｨの値
ﾌﾟﾛﾊﾟﾃｨﾚﾝｼﾞ構造体ｵﾌﾞｼﾞｪｸﾄ
ﾒｯｾｰｼﾞ表示用

CoInitialize( NULL );hr = CoCreateInstance( CLSID̲RsCcdSdk, NULL,
CLSCTX̲INPROC, IID̲IRsCcdSdk, (void**) &rsk );rsk‑>ccd̲Initialize();hr = rsk‑>ccd̲EnumCamera(StreamInfo, &NumOfCamera);if( NOERROR != hr ￨￨ NumOfCamera == 0 ){rsk‑>ccd̲Uninitialize();
SAFE̲RELEASE(rsk)return;}COM ﾗｲﾌﾞﾗﾘを初期化
CCDSdk COM ｵﾌﾞｼﾞｪｸﾄを作成しｲﾝﾀｰ
ﾌｪｰｽﾎﾟｲﾝﾀ取得
CCDSdk COM の初期化
CCD ｶﾒﾗを列挙しｶﾒﾗ情報を取得

iCam = NumOfCamera ‑1;
rsk‑>ccd̲PreviewStart( iCam, NULL );do{printf( "¥nT or W : Zoom ｺﾝﾄﾛｰﾙ。F or N : Focus ｺﾝﾄﾛｰﾙ。
O : UB OnePush。'Y'で終了:¥n" );ch = ̲getch(); ch = toupper( ch );switch(ch){case 'T':
rsk‑>ccd̲GetPropertyRange( iCam, Zoom, &CcdProp );rsk‑>ccd̲GetProperty( iCam, Zoom, &uiPos, fMode );uiPos = uiPos ‑ (CcdProp.Max‑CcdProp.Min) / 20;
if(uiPos <= CcdProp.Min)
uiPos = CcdProp.Min;
rsk‑>ccd̲SetProperty( iCam, Zoom, uiPos, fMode );最後に見つけたｶﾒﾗ番号をｾｯﾄ
ﾌﾟﾚﾋﾞｭｰ開始

CCDSdk COM の終了処理
CCDSdk COM ｵﾌﾞｼﾞｪｸﾄの解放

Zoom‑
最小、最大値など取得
現在の値を取得
1/20 ﾚﾝｼﾞで調整

新しい値をｾｯﾄ

Page.50
sprintf(szDisp,"Zoom ‑ %d (Min%d ‑ Max%d)¥n", uiPos,
CcdProp.Min, CcdProp.Max);
printf(szDisp);
break;‑‑‑‑‑ 途中省略 ‑‑‑‑‑
case 'O':
fMode = fCameraControlOnePush;rsk‑>ccd̲GetColor( iCam, UB, &uiPos, fMode );rsk‑>ccd̲SetColor( iCam, UB, uiPos, fMode );rsk‑>ccd̲GetColor( iCam, VR, &uiPos, fMode );rsk‑>ccd̲SetColor( iCam, UB, uiPos, fMode );break;}} while( ch != 'Y' );rsk‑>ccd̲PreviewStop( iCam );rsk‑>ccd̲FreeCamera();rsk‑>ccd̲Uninitialize();
SAFE̲RELEASE(rsk)return;}One push for UB
OnePush ﾓｰﾄﾞｾｯﾄ
WhiteBalance OnePush 自動調整
WhiteBalance OnePush 自動調整

ﾌﾟﾚﾋﾞｭｰ停止
ｶﾒﾗﾘｿｰｽを解放
CCDSdk COM の終了処理
CCDSdk COM ｵﾌﾞｼﾞｪｸﾄの解放

Page.51

3-4. MFC サンプルプログラム（3‑4‑1）プログラム作成の準備
STEP.1
Microsoft Visual C++ 6.0 を起動します。新
しいﾌﾟﾛｼﾞｪｸﾄを作成します。「ﾌｧｲﾙ」ﾒﾆｭｰの「新規作成」を選択し、「ﾌﾟﾛｼﾞｪｸﾄ」ﾀｸﾞを開き「MFC AppWizard(exe)」を指定しﾌﾟﾛｼﾞｪｸﾄ
名を入力します。「OK」ﾎﾞﾀﾝをｸﾘｯｸして、次に進みます。

作成するｱﾌﾟﾘｹｰｼｮﾝの種類に「ﾀﾞｲｱﾛｸﾞﾍﾞｰｽ」
を選択し、後はﾃﾞﾌｫﾙﾄ設定のままで次に進みます。最後右のｳｨｻﾞｰﾄﾞ画面で「終了」をｸﾘｯ
ｸします。
（注記）
上記は EnumCamera ｻﾝﾌﾟﾙﾌﾟﾛｸﾞﾗﾑの場合を例に取って説明しています。ｱﾌﾟﾘｹｰｼｮﾝの種類
等は特に規定しません。

ｱﾌﾟﾘｹｰｼｮﾝから CCD SDK COM のｲﾝﾀｰﾌｪｲｽを使用できるようにするためには、CCD SDK COM の初期化処理が必要です。このﾌﾟﾛｸﾞﾗﾑ例では CEnumCameraApp ｸﾗｽ、もしくは CEnumCameraDlg ｸﾗｽに記述できます。
ｱﾌﾟﾘｹｰｼｮﾝの終了時には、CCD SDK COM の終了処理が必要です。
以下は、CEnumCameraApp ｸﾗｽに記述した時の例になります。
EnumCamera ｻﾝﾌﾟﾙﾌﾟﾛｸﾞﾗﾑの詳細については、CD‑ROM¥ForVC¥MfcApp¥EnumCamera を参照して下さい。
STEP.2CCD SDK CD‑ROM の「ForVC¥Include」ﾌｫﾙﾀﾞにある「RSCCD̲i.c」と「RSCCD.h」をﾌﾟﾛｼﾞ#include "resource.h"#include "RsCCD̲i.c"#include "RsCCD.h"ｪｸﾄﾌｫﾙﾀﾞに手動でｺﾋﾟｰします。
EnumCamera.h を開き、「RSCCD̲i.c」と「RSCCD.h」をｲﾝｸﾙｰﾄﾞします。

// CEnumCameraApp:
class CEnumCameraApp : public CWinApp// メイン シンボル

Page.52

STEP.3
ClassView の CEnumCameraApp を右ｸﾘｯｸ
し、CCD SDK COM へのｲﾝﾀｰﾌｪｲｽﾎﾟｲﾝﾀを定義します。

STEP.4// CEnumCameraApp クラスの構築

EnumCamera.cpp を開き、右のように CCD SDK CEnumCameraApp::CEnumCameraApp()COM のﾛｰﾄﾞ処理を記述します。

{// ここに InitInstance 中の重要な初期化処理を記述。
// COM ﾗｲﾌﾞﾗﾘの初期化
CoInitialize( NULL );// CCD Sdk COM ｵﾌﾞｼﾞｪｸﾄを作成しｲﾝﾀｰﾌｪｰｽﾎﾟｲﾝﾀ取得
HRESULT hr = CoCreateInstance(
CLSID̲RsCcdSdk,
NULL,
CLSCTX̲INPROC,
IID̲IRsCcdSdk,
reinterpret̲cast<PVOID *>(&m̲pIsdk) );if( NOERROR != hr ){AfxMessageBox("CoCreateInstance Error");}}

STEP.5
同じ EnumCamera.cpp のﾀﾞｲｱﾛｸﾞが終了した
部分に CCD SDK COM のｱﾝﾛｰﾄﾞ処理を記述します。

BOOL CEnumCameraApp::InitInstance(){
・・・・・途中省略・・・・・
CEnumCameraDlg dlg;m̲pMainWnd = &dlg;
int nResponse = dlg.DoModal();if (nResponse == IDOK){// TODO: ダイアログが <OK> で消された時のコード//を記述してください。
}
else if (nResponse == IDCANCEL){// TODO: ダイアログが <ｷｬﾝｾﾙ> で消された時の//コードを記述してください。
}// CCD Sdk COM ｵﾌﾞｼﾞｪｸﾄのﾘﾘｰｽ
if (m̲pIsdk){m̲pIsdk‑>Release();m̲pIsdk = NULL;}// COM ﾗｲﾌﾞﾗﾘの終了処置
CoUninitialize();
return FALSE;}Page.53

次に、ﾀﾞｲｱﾛｸﾞを表示して「OK」ﾎﾞﾀﾝを押したら CCD ｶﾒﾗのﾌﾟﾚﾋﾞｭｰを行い、「ｷｬﾝｾﾙ」ﾎﾞﾀﾝによりﾌﾟﾚﾋﾞｭｰを停止しﾌﾟﾛｸﾞﾗﾑを終了するｱﾌﾟﾘｹｰｼｮﾝの作成手順を説明します。

STEP.6
ｱﾌﾟﾘｹｰｼｮﾝの初期化処理として、
CenumCameraDlg ｸﾗｽの OnInitDialog()に右BOOL CEnumCameraDlg::OnInitDialog(){
最初からここまではそのまま// TODO: 特別な初期化を行う時はこの場所に追加。

のｺｰﾄﾞを追加します。

ｱﾌﾟﾘｹｰｼｮﾝの終了処理として、OnCancel ()に右のｺｰﾄﾞを追加します。

// CCD Sdk COM の初期化処理
m̲pIsdk‑>ccd̲Initialize();
return TRUE;}
void CEnumCameraDlg::OnCancel(){// TODO: この位置に特別な後処理を追加してください。
// CCD Sdk COM の終了処理
m̲pIsdk‑>ccd̲Uninitialize();
CDialog::OnCancel();}

ここまでで、一度ﾋﾞﾙﾄﾞして下さい。次に、「OK」ﾎﾞﾀﾝが押されたらﾌﾟﾚﾋﾞｭｰする処理に取りかかります。
STEP.7
ClassView の CEnumCameraDlg を右ｸﾘｯｸし、
SDK̲CAM̲INFO 型の構造体配列
sdkCamInfo[MAX̲NUMBER̲OF̲CAMERAS]を定義します。
同様に、ULONG m̲NumOfCamera を定義。

STEP.8「OK」ﾎﾞﾀﾝが押されたらﾌﾟﾚﾋﾞｭｰする処理を追加します。
CDialog::OnOK();をｺﾒﾝﾄしないとｱﾌﾟﾘｹｰｼｮﾝが終了
してしまいます。

void CEnumCameraDlg::OnOK(){
HRESULT hr = m̲pIsdk‑>ccd̲EnumCamera(m̲sdkCamInfo, &m̲NumOfCamera);if( NOERROR != hr ￨￨ 0 == m̲NumOfCamera ){AfxMessageBox("Can't find ccd camera.");return;}hr = m̲pIsdk‑>ccd̲PreviewStart(m̲NumOfCamera‑1, NULL);// CDialog::OnOK();}

STEP.9「ｷｬﾝｾﾙ」ﾎﾞﾀﾝが押されたらﾌﾟﾚﾋﾞｭｰを停止する処理を追加します。

void CEnumCameraDlg::OnCancel(){// ﾌﾟﾚﾋﾞｭｰ停止m̲pIsdk‑>ccd̲PreviewStop( m̲NumOfCamera‑1 );// ccd̲EnumCamera で確保したｶﾒﾗﾘｿｰｽを解放m̲pIsdk‑>ccd̲FreeCamera();// CCD Sdk COM の終了処理
m̲pIsdk‑>ccd̲Uninitialize();
CDialog::OnCancel();}Page.54

STEP.10// EnumCameraDlg.h : ヘッダー ファイル//

EnumCameraDlg.h に「RsCCD.h」をｲﾝｸﾙｰﾄﾞします。
#include"RsCCD.h"////////////////////////////////////////////////////////// CEnumCameraDlg ダイアログ
class CEnumCameraDlg : public CDialog{

STEP.11
ﾋﾞﾙﾄﾞして実行すると右のﾀﾞｲｱﾛｸﾞが表示され、「OK」ﾎﾞﾀﾝをｸﾘｯｸすると背後のﾌﾟﾚﾋﾞｭｰ
ｳｨﾝﾄﾞｳが表示されます。

（3‑4‑2）MFC サンプルプログラム解説
EnumCamera2 ｻﾝﾌﾟﾙﾌﾟﾛｸﾞﾗﾑ：CD‑ROM¥ForVC¥MfcApp¥EnumCamera2 を参照して下さい。
EnumCamera2 ｻﾝﾌﾟﾙﾌﾟﾛｸﾞﾗﾑは接続されている CCD ｶﾒﾗをｽｷｬﾝし、
ｶﾒﾗ選択ｺﾝﾎﾞﾎﾞｯｸｽに CCD ｶﾒﾗのﾕﾆｰｸな識別名称を、ﾌｫｰﾏｯﾄ及びﾌﾚｰﾑﾚｰﾄｺﾝﾎﾞﾎﾞｯｸｽに選択されているｶﾒﾗがｻﾎﾟｰﾄしているﾌｫｰﾏｯﾄ・ﾌ
ﾚｰﾑﾚｰﾄをｾｯﾄします。
またｶﾒﾗの取り外しを行ったり、新たに接続した時に送られてくる、WM̲DEVICECHANGE ｶﾒﾗｲﾍﾞﾝﾄに対する応答処理を行います。
ﾌﾟﾚﾋﾞｭｰﾎﾞﾀﾝにより、選択されている CCD ｶﾒﾗのﾌﾟﾚﾋﾞｭｰを行います。
以下に、EnumCamera2 ｻﾝﾌﾟﾙﾌﾟﾛｸﾞﾗﾑの骨格について解説します。
ﾌﾟﾛｸﾞﾗﾑの詳細についてはｿｰｽﾞｺｰﾄﾞを参照して下さい。

ﾀﾞｲｱﾛｸﾞ画面の準備
ﾀﾞｲｱﾛｸﾞに各ｺﾝﾄﾛｰﾙを配置します。この時、ｺﾝﾎﾞﾎﾞｯｸｽのﾌﾟﾛﾊﾟﾃｨの「ｿｰﾄ」を行わないようにすることが重要です。

Page.55

ccd̲EnumCamera により SDK̲CAM̲INFO 型配列の各要素に接続されている全てのｶﾒﾗ情報がｾｯﾄされ、各配列の要素順にｺﾝﾎﾞﾎﾞｯｸｽのﾘｽﾄﾎﾞｯｸｽに AddString()
します。GetCurSel()はｺﾝﾎﾞﾎﾞｯｸｽのﾘｽﾄﾎﾞｯｸｽで現在選択されている項目の 0 から始まるｲﾝﾃﾞｯｸｽ番号を返します。この時返されるｲﾝﾃﾞｯｸｽ番号を、
ccd̲XXX()で指定するｶﾒﾗｲﾝﾃﾞｯｸｽ番号としてそのまま使用できるようにします。その他、
ccd̲SetStream, ccd̲SetFrameRate の引数、ｽﾄﾘｰﾑｲ
ﾝﾃﾞｯｸｽ番号・ﾌﾚｰﾑﾚｰﾄｲﾝﾃﾞｯｸｽ番号についても同様です。

ｱﾌﾟﾘｹｰｼｮﾝの初期化処理
本ｻﾝﾌﾟﾙﾌﾟﾛｸﾞﾗﾑはﾀﾞｲｱﾛｸﾞﾍﾞｰｽですので、OnInitDialog()で必要となるｲﾆｼｬﾗｲｽﾞを行います。
BOOL CEnumCamera2Dlg::OnInitDialog(){
CDialog::OnInitDialog();m̲pApp = (CEnumCamera2App *)AfxGetApp();m̲pApp‑>m̲pIsdk‑>ccd̲Initialize();

CEnumCamera2App *m̲pApp
CCD Sdk COM の初期化処理

hr = m̲pApp‑>m̲pIsdk‑>ccd̲RegCameraEvent( m̲hWnd );if( NOERROR != hr ){AfxMessageBox("ccd̲RegCameraEvent Failed");return TRUE;}

WM̲DEVICECHANGE ｲﾍﾞﾝﾄが通知されるよう
登録

m̲pApp‑>m̲pIsdk‑>ccd̲EnumCamera(m̲sdkCamInfo, &m̲NumOfCamera);if( 0 == m̲NumOfCamera ){AfxMessageBox("Can't find CCD camera.");return TRUE;}

ｱﾌﾟﾘ起動時接続されているｶﾒﾗの情報取得
SDK̲CAM̲INFO
m̲sdkCamInfo[MAX̲NUMBER̲OF̲CAMERAS]
は、class CEnumCamera2Dlg のﾒﾝﾊﾞｰ変数

Refresh̲cboCamera(m̲CurrentCameraId = 0);m̲pApp‑>m̲pIsdk‑>ccd̲GetCurrentFormat(m̲CurrentCameraId,&m̲CurrentStreamId, &m̲CurrentFrameRateId);

最初のｶﾒﾗをｶﾚﾝﾄに設定しｶﾒﾗｺﾝﾎﾞ初期化
選択したｶﾒﾗより現在動作しているｽﾄﾘｰ
ﾑ・ﾌﾚｰﾑﾚｰﾄを取得

Refresh̲cboStream(m̲CurrentCameraId, m̲CurrentStreamId);
Refresh̲cboFrameRate(m̲CurrentCameraId, m̲CurrentStreamId);
return TRUE;

ｽﾄﾘｰﾑｺﾝﾎﾞ初期化
ﾌﾚｰﾑﾚｰﾄｺﾝﾎﾞ初期化}

ｱﾌﾟﾘｹｰｼｮﾝの終了処理「ｷｬﾝｾﾙ」ﾎﾞﾀﾝが押されたらｱﾌﾟﾘｹｰｼｮﾝを終了するようにするため、OnCancel()で必要となる終了処理を行います。
void CEnumCamera2Dlg::OnCancel(){m̲pApp‑>m̲pIsdk‑>ccd̲PreviewStop(m̲CurrentCameraId);m̲pApp‑>m̲pIsdk‑>ccd̲FreeCamera();m̲pApp‑>m̲pIsdk‑>ccd̲Uninitialize();
CDialog::OnCancel();}ﾌﾟﾚﾋﾞｭｰ停止
ccd̲EnumCamera で確保したｶﾒﾗﾘｿｰｽを解放
CCD Sdk COM の終了処理

Page.56

WM̲DEVICECHANGE ｶﾒﾗｲﾍﾞﾝﾄに対する応答処理
WM̲DEVICECHANGE ｶﾒﾗｲﾍﾞﾝﾄをｱﾌﾟﾘｹｰｼｮﾝが受け取ることができるようにするためには、ｳｨﾝﾄﾞｳの登録処
理 ccd̲RegCameraEvent()が必要です。次に、CEnumCamera2Dlg ｸﾗｽに手動で、ﾒｯｾｰｼﾞﾏｯﾌﾟを手動で定義します。定義する位置は、//}}AFX̲MSG と DECLARE̲MESSAGE̲MAP()の間で行います。
class CEnumCamera2Dlg : public Cdialog{// 生成されたメッセージ マップ関数//{{AFX̲MSG(CEnumCamera2Dlg)
virtual BOOL OnInitDialog();
afx̲msg void OnPaint();
afx̲msg HCURSOR OnQueryDragIcon();virtual void OnCancel();//}}AFX̲MSG
afx̲msg BOOL OnDeviceChange( UINT nEventType, DWORD dwData );DECLARE̲MESSAGE̲MAP()← EnumCamera2Dlg.h//}}AFX̲MSG の後に WM̲DEVICECHANGE ｲﾍﾞﾝ
ﾄﾊﾝﾄﾞﾗを手動追加する};
BEGIN̲MESSAGE̲MAP(CEnumCamera2Dlg, CDialog)//{{AFX̲MSG̲MAP(CEnumCamera2Dlg)
ON̲WM̲PAINT()
ON̲WM̲QUERYDRAGICON()//}}AFX̲MSG̲MAP
ON̲WM̲DEVICECHANGE()
END̲MESSAGE̲MAP()← EnumCamera2Dlg.cpp

WM̲DEVICECHANGE ｲﾍﾞﾝﾄﾊﾝﾄﾞﾗを手動追加

最後にﾒｯｾｰｼﾞﾊﾝﾄﾞﾗ OnDeviceChange()を記述します。nEventType には、DBT̲DEVICEREMOVECOMPLETE,
DBT̲DEVICEARRIVAL 等のｲﾍﾞﾝﾄの内容を示すｺｰﾄﾞがｾｯﾄされます。実際の処理の内容はｱﾌﾟﾘｹｰｼｮﾝにより異なりますが、通常は今まで確保されていたｶﾒﾗﾘｿｰｽと情報を ccd̲FreeCamera()で破棄し、新たにccd̲EnumCamera()を呼び出し新たにｶﾒﾗﾘｿｰｽと情報を構築し直します。その情報を元に、各ｺﾝﾎﾞﾎﾞｯｸｽのﾘｽﾄ内容も再構築します。
OOL CEnumCamera2Dlg::OnDeviceChange( UINT nEventType, DWORD dwData ){switch (nEventType){case DBT̲DEVICEREMOVECOMPLETE:
case DBT̲DEVICEARRIVAL:m̲pApp‑>m̲pIsdk‑>ccd̲FreeCamera();m̲pApp‑>m̲pIsdk‑>ccd̲EnumCamera( m̲sdkCamInfo, &m̲NumOfCamera );if( 0 == m̲NumOfCamera ){AfxMessageBox("Can't find CCD camera.");return TRUE;}

ccd̲EnumCamera で確保したｶﾒﾗﾘｿｰｽを解放

Refresh̲cboCamera(m̲CurrentCameraId = 0);m̲pApp‑>m̲pIsdk‑>ccd̲GetCurrentFormat(m̲CurrentCameraId,&m̲CurrentStreamId, &m̲CurrentFrameRateId);
Refresh̲cboStream(m̲CurrentCameraId, m̲CurrentStreamId);
Refresh̲cboFrameRate(m̲CurrentCameraId,m̲CurrentStreamId);
break;

以下、OnInitDialog()と同様の処理
0 番目のｶﾒﾗをｶﾚﾝﾄｾﾚｸﾄに設定しｶﾒﾗｺﾝﾎﾞ初期化
ｽﾄﾘｰﾑｺﾝﾎﾞ初期化
ﾌﾚｰﾑﾚｰﾄｺﾝﾎﾞ初期化}
return TRUE;}

ｶﾒﾗの取り外し
ｶﾒﾗの追加Page.57

ｶﾒﾗﾌﾟﾛﾊﾟﾃｨﾍﾟｰｼﾞを表示「ｶﾒﾗｺﾝﾄﾛｰﾙ」ﾎﾞﾀﾝが押されたらｽﾞｰﾑ・ﾌｫｰｶｽ
等のﾍﾞｰｼｯｸﾌﾟﾛﾊﾟﾃｨ、ﾎﾜｲﾄﾊﾞﾗﾝｽ等のｶﾗｰﾌﾟﾛﾊﾟﾃ
ｨを制御できるｶﾒﾗﾌﾟﾛﾊﾟﾃｨﾍﾟｰｼﾞを表示できる
ようにします。

void CEnumCamera2Dlg::OnBtnCameraCtrl(){
hr = m̲pApp‑>m̲pIsdk‑>ccd̲ShowPropertyPage( m̲CurrentCameraId );if( NOERROR != hr ){AfxMessageBox("ccd̲ShowPropertyPage Failed");}}WhiteBalance OnePush 自動調整機能の作成「OnePush」ﾎﾞﾀﾝが押されたら、UB/VR ﾎﾜｲﾄﾊﾞﾗﾝｽの OnePush 自動調整を行います。
void CEnumCamera2Dlg::OnBtnOnePush(){
LONG ColorValue;
HRESULT hr;}

hr = m̲pApp‑>m̲pIsdk‑>ccd̲GetColo(m̲CurrentCameraId, UB, &ColorValue, 0);

現在の WhiteBalance B‑gain(Blue)を取得

hr = m̲pApp‑>m̲pIsdk‑>ccd̲SetColor(m̲CurrentCameraId, UB, ColorValue, fCameraControlOnePush);

B‑gain の OnePush 自動調整実行

hr = m̲pApp‑>m̲pIsdk‑>ccd̲GetColor(m̲CurrentCameraId, VR, &ColorValue, 0);

現在の WhiteBalance R‑gain(Red)を取得

hr = m̲pApp‑>m̲pIsdk‑>ccd̲SetColor(m̲CurrentCameraId, VR, ColorValue, fCameraControlOnePush);

R‑gain の OnePush 自動調整実行

Page.58

Preview/Pause/Stop 処理の作成「Preview/Pause/Stop」ﾎﾞﾀﾝが時の処理は下記の通りです。
void CEnumCamera2Dlg::OnBtnPreview(){
if( BST̲CHECKED == m̲chkOverlay.GetCheck() ){m̲pApp‑>m̲pIsdk‑>ccd̲SetOverlay( m̲CurrentCameraId, TRUE );}else{m̲pApp‑>m̲pIsdk‑>ccd̲SetOverlay( m̲CurrentCameraId, FALSE );}HRESULT hr = m̲pApp‑>m̲pIsdk‑>ccd̲PreviewStart(m̲CurrentCameraId, NULL);
if( NOERROR != hr ){AfxMessageBox("ccd̲PreviewStart Failed");}}void CEnumCamera2Dlg::OnBtnPause(){
HRESULT hr = m̲pApp‑>m̲pIsdk‑>ccd̲PreviewPause( m̲CurrentCameraId );}void CEnumCamera2Dlg::OnBtnStop(){
HRESULT hr = m̲pApp‑>m̲pIsdk‑>ccd̲PreviewStop( m̲CurrentCameraId );}ｵｰﾊﾞｰﾚｲ設定有効
ｵｰﾊﾞｰﾚｲ設定無効

Page.59

SnapShot ｻﾝﾌﾟﾙﾌﾟﾛｸﾞﾗﾑ：CD‑ROM¥ForVC¥MfcApp¥SnapShot を参照して下さい。
EnumCamera2 ｻﾝﾌﾟﾙﾌﾟﾛｸﾞﾗﾑとの相違点は静止画のｽﾅｯﾌﾟｼｮｯﾄ機能です。
ﾌﾟﾚﾋﾞｭｰした状態で「ｽﾅｯﾌﾟｼｮｯﾄ」
ﾎﾞﾀﾝをｸﾘｯｸすると指定のﾌｧｲﾙ名でﾋﾞｯﾄﾏｯﾌﾟﾌｧｲﾙが保存され、ﾋﾟｸﾁｬｰﾎﾞｯｸ
ｽにﾋﾞｯﾄﾏｯﾌﾟ画像が表示されます。
ｽﾅｯﾌﾟｼｮｯﾄ実行前にﾌｧｲﾙ名を「C:¥SNAP001.BMP」のﾌﾙﾊﾟｽ形式で指定します。

「ﾌﾟﾚﾋﾞｭｰ」ﾎﾞﾀﾝｸﾘｯｸ時の処理
void CSnapShotDlg::OnBtnPreview(){
if( BST̲CHECKED == m̲chkOverlay.GetCheck() ){m̲pApp‑>m̲pIsdk‑>ccd̲SetOverlay( m̲CurrentCameraId, TRUE );}else{m̲pApp‑>m̲pIsdk‑>ccd̲SetOverlay( m̲CurrentCameraId, FALSE );}if (BST̲CHECKED == m̲chkTrigger.GetCheck()){
m̲pApp‑>m̲pIsdk‑>ccd̲SetTrigger( m̲CurrentCameraId, TRUE );}else{m̲pApp‑>m̲pIsdk‑>ccd̲SetTrigger( m̲CurrentCameraId, FALSE );}HRESULT hr = m̲pApp‑>m̲pIsdk‑>ccd̲PreviewStart(m̲CurrentCameraId, NULL);
if( NOERROR != hr ){AfxMessageBox("ccd̲PreviewStart Failed");}}

ﾋﾟｸﾁｬｰﾎﾞｯｸｽへのﾋﾞｯﾄﾏｯﾌﾟﾌｧｲﾙ貼り付け方法（参考例として）ClassWizard を起動し「ｸﾗｽ情報」ﾀｸﾞを開きます。
「ｸﾗｽの追加」より「新規」を選択します。
基本ｸﾗｽに「CStatic」を選択し、ｸﾗｽ名に「CDIBStatic」を入力し、「OK」
ﾎﾞﾀﾝをｸﾘｯｸします。

ｵｰﾊﾞｰﾚｲ設定

外部ﾄﾘｶﾞｰ設定

Page.60

CD‑ROM¥ForVC¥CDIBStatic ﾌｫﾙﾀﾞより、「DIBStatic.cpp/DIBStatic.h」と「DIB.cpp/DIB.h」の 4 つのﾌｧｲﾙ
をﾌﾟﾛｼﾞｪｸﾄにｺﾋﾟｰします。
「ﾌﾟﾛｼﾞｪｸﾄ」ﾒﾆｭｰより、「ﾌﾟﾛｼﾞｪｸﾄ
へ追加」の「ﾌｧｲﾙ」を開きます。右
図のようにｺﾋﾟｰしたﾌｧｲﾙを全て追加します。

ClassView より「CSnapShotDlg」の右ｸﾘｯｸより、ﾒﾝﾊﾞｰ変数の追加を開きます。ｶﾃｺﾞﾘに「ｺﾝﾄﾛｰﾙ」を選択し、変数のﾀｲﾌﾟに前で作成したﾕｰｻﾞ
定義ｸﾗｽ「CDIBStatic」を選択します。ﾒﾝﾊﾞ変数「m̲Bitmap」を入力します。

上記の処理を手動で行う場合は、右 class CSnapShotDlg : public CDialogの「SnapShotDlg.h」のｸﾗｽに
CDIBStaticm̲Bitmap;

を追加し、

{
// 構築
public:// ダイアログ データ//{{AFX̲DATA(CSnapShotDlg)
enum { IDD = IDD̲SNAPSHOT̲DIALOG };CDIBStaticm̲Bitmap;//}}AFX̲DATA};「SnapShotDlg.cpp」のDoDataExchange に、
DDX̲Control(pDX, IDC̲PicSnapShop,m̲Bitmap);を追加します。

void CSnapShotDlg::DoDataExchange(CDataExchange* pDX){
CDialog::DoDataExchange(pDX);//{{AFX̲DATA̲MAP(CSnapShotDlg)
DDX̲Control(pDX, IDC̲PicSnapShop, m̲Bitmap);//}}AFX̲DATA̲MAP}

Page.61「ｽﾅｯﾌﾟｼｮｯﾄ」ﾎﾞﾀﾝｸﾘｯｸ時の処理
SnapShotDlg.h に DIBStatic.h をｲﾝｸﾙｰﾄﾞし、「ｽﾅｯﾌﾟｼｮｯﾄ」ﾎﾞﾀﾝがｸﾘｯｸされた時の処理を作成します。
#include "AFXPRIV.H"
void CSnapShotDlg::OnBtnSanpShot(){
USES̲CONVERSION;
WCHAR wcharFileName[ MAX̲PATH ];ﾜｲﾄﾞ文字変換ﾏｸﾛに必要

ﾜｲﾄﾞ文字変換ﾏｸﾛに必要

UpdateData(true);
LPTSTR lpszFileName = m̲cstrFileName.GetBuffer( MAX̲PATH );wcscpy(wcharFileName, T2W(lpszFileName));

ﾌｧｲﾙ名をﾜｲﾄﾞ文字列に変換。

HRESULT hr = m̲pApp‑>m̲pIsdk‑>ccd̲Snapshot(m̲CurrentCameraId, wcharFileName );if( NOERROR != hr ){AfxMessageBox("ccd̲Snapshot Failed");m̲cstrFileName.ReleaseBuffer();
return;}ｽﾅｯﾌﾟｼｮｯﾄの実行。

m̲Bitmap.LoadDib(lpszFileName);m̲cstrFileName.ReleaseBuffer();

保存したﾋﾞｯﾄﾏｯﾌﾟﾌｧｲﾙをﾋﾟｸﾁｬｰﾎﾞｯｸｽにﾛｰﾄﾞ。

}

外部ﾄﾘｶﾞｰﾓｰﾄﾞ設定処理
void CSnapShotDlg::OnBtnPreview(){}

if( BST̲CHECKED == m̲chkOverlay.GetCheck() ){m̲pApp‑>m̲pIsdk‑>ccd̲SetOverlay( m̲CurrentCameraId, TRUE );}else{m̲pApp‑>m̲pIsdk‑>ccd̲SetOverlay( m̲CurrentCameraId, FALSE );}ｵｰﾊﾞｰﾚｲ設定

if (BST̲CHECKED == m̲chkTrigger.GetCheck()){
m̲pApp‑>m̲pIsdk‑>ccd̲SetTrigger( m̲CurrentCameraId, TRUE );}else{m̲pApp‑>m̲pIsdk‑>ccd̲SetTrigger( m̲CurrentCameraId, FALSE );}外部ﾄﾘｶﾞｰ設定

HRESULT hr = m̲pApp‑>m̲pIsdk‑>ccd̲PreviewStart(m̲CurrentCameraId, NULL);
if( NOERROR != hr ){AfxMessageBox("ccd̲PreviewStart Failed");}ﾌﾟﾚﾋﾞｭｰ開始

Page.62

Capture ｻﾝﾌﾟﾙﾌﾟﾛｸﾞﾗﾑ：CD‑ROM¥ForVC¥MfcApp¥Capture を参照して下さい。
EnumCamera2 ｻﾝﾌﾟﾙﾌﾟﾛｸﾞﾗﾑとの相違点は動画のｷｬﾌﾟﾁｬ機能です。
「ﾌﾟﾚﾋﾞｭｰ」を実行するとﾀﾞｲｱﾛｸﾞ
内のﾋﾟｸﾁｬｰﾎﾞｯｸｽに動画が表示されます。「ｷｬﾌﾟﾁｬ」ﾎﾞﾀﾝをｸﾘｯｸする前に保存する動画ﾌｧｲﾙ名を入力し「前処理」ﾎﾞﾀﾝをｸﾘｯｸします。
前処理を実行すると「ｷｬﾌﾟﾁｬ領域確保」のﾁｪｯｸﾎﾞｯｸｽにﾁｪｯｸを入れている場合は、予めﾊｰﾄﾞﾃﾞｨｽｸに 200M ﾊﾞｲﾄのﾌｧｲﾙ領域が確保されます。ｷｬﾌﾟﾁｬ実行時、ﾃﾝﾎﾟﾗﾘﾌｧｲﾙに一時的に動画が保存されます。ｷｬﾌﾟﾁｬを停止すると、ﾃﾝﾎﾟﾗﾘﾌｧｲﾙからｷｬﾌﾟﾁｬﾌｧｲﾙ名で指定したﾌｧｲﾙに動画ﾃﾞｰﾀがｺﾋﾟｰされます。

ﾋﾟｸﾁｬｰﾎﾞｯｸｽ内にﾌﾟﾚﾋﾞｭｰする
void CCaptureDlg::OnBtnPreview(){
if( BST̲CHECKED == m̲chkOverlay.GetCheck() ){m̲pApp‑>m̲pIsdk‑>ccd̲SetOverlay( m̲CurrentCameraId, TRUE );}else{m̲pApp‑>m̲pIsdk‑>ccd̲SetOverlay( m̲CurrentCameraId, FALSE );}HRESULT hr = m̲pApp‑>m̲pIsdk‑>ccd̲PreviewStart(m̲CurrentCameraId, m̲picPreview.m̲hWnd);if( NOERROR != hr ){AfxMessageBox("ccd̲PreviewStart Failed");}ｵｰﾊﾞｰﾚｲ設定有効
ｵｰﾊﾞｰﾚｲ設定無効

ﾋﾟｸﾁｬｰﾎﾞｯｸｽのｳｨﾝﾄﾞｳﾊﾝﾄﾞﾙを指定

}

前処理実行
#include "AFXPRIV.H"

ﾜｲﾄﾞ文字列ﾏｸﾛのﾍｯﾀﾞｰ

void CCaptureDlg:: OnBtnPreCapture(){
USES̲CONVERSION;

ﾜｲﾄﾞ文字列ﾏｸﾛ定義

WCHAR wcharCaptureFile[ MAX̲PATH ];WCHAR wcharTempFile[ MAX̲PATH ];LONG lMBytes = 200;
HRESULT hr;

仮に 200MBytes の予めｱﾛｹｰﾄ
ｷｬﾌﾟﾁｬｰを実行する前に、HDD 上に
動画保存用ﾌｧｲﾙをｱﾛｹｰｼｮﾝ

UpdateData(true);
LPTSTR lpszFileName = m̲editFileName.GetBuffer( MAX̲PATH );wcscpy(wcharCaptureFile, T2W(lpszFileName));m̲editFileName.ReleaseBuffer();

ｴﾃﾞｨｯﾄﾎﾞｯｸｽ入力ｷｬﾌﾟﾁｬﾌｧｲﾙ名
ﾌｧｲﾙ名をﾜｲﾄﾞ文字列に変換

wcscpy(wcharTempFile, T2W(̲T("c:¥¥temp.avi")));

ﾃﾝﾎﾟﾗﾘｷｬﾌﾟﾁｬﾌｧｲﾙ名設定

Page.63
hr = m̲pApp‑>m̲pIsdk‑>ccd̲SetCaptureFile( m̲CurrentCameraId,
wcharCaptureFile, true );if( BST̲CHECKED == m̲chkAllocate.GetCheck() ){AfxMessageBox("00MB Allocate...Hit any key to capture");hr = m̲pApp‑>m̲pIsdk‑>ccd̲SetCaptureTempFile( m̲CurrentCameraId, wcharTempFile, true, lMBytes );} else {hr = m̲pApp‑>m̲pIsdk‑>ccd̲SetCaptureTempFile( m̲CurrentCameraId, wcharTempFile, false, 0 );}CButton *radNoComp = (CButton *) GetDlgItem(IDC̲RadNoComp);
if (radNoComp‑>GetCheck() == 1)
hr = m̲pApp‑>m̲pIsdk‑>ccd̲SetMovieCompressor(m̲CurrentCameraId, 0, NULL);
else
hr = m̲pApp‑>m̲pIsdk‑>ccd̲SetMovieCompressor(m̲CurrentCameraId, DVVideoEncode, NULL);

ｷｬﾌﾟﾁｬﾃﾝﾎﾟﾗﾘﾌｧｲﾙ設定

圧縮ﾓｰﾄﾞの設定

if( BST̲CHECKED == m̲chkAudio.GetCheck() ){hr = m̲pApp‑>m̲pIsdk‑>ccd̲SetAudio(m̲CurrentCameraId, true);} else {hr = m̲pApp‑>m̲pIsdk‑>ccd̲SetAudio(m̲CurrentCameraId, false);
Audio ｷｬﾌﾟﾁｬの設定}

動画ｷｬﾌﾟﾁｬ開始
void CCaptureDlg::OnBtnCapture(){
HRESULT hr;if( BST̲CHECKED == m̲chkPreview.GetCheck() ){hr = m̲pApp‑>m̲pIsdk‑>ccd̲CaptureStart(m̲CurrentCameraId, TRUE, m̲picPreview.m̲hWnd);}else{
hr = m̲pApp‑>m̲pIsdk‑>ccd̲CaptureStart(m̲CurrentCameraId, FALSE, m̲picPreview.m̲hWnd);}}

ｷｬﾌﾟﾁｬを停止
ｷｬﾌﾟﾁｬを停止するとﾃﾝﾎﾟﾗﾘに保存した動画ﾃﾞｰﾀのｺﾋﾟｰが開始します。
右のｺﾋﾟｰﾌﾟﾛｸﾞﾚｽ表示ﾀﾞｲｱﾛｸﾞを表示します。

void CCaptureDlg::OnBtnCapStop(){m̲pApp‑>m̲pIsdk‑>ccd̲CaptureStart( m̲CurrentCameraId );CCopyDlg dlgCopyProgress;
dlgCopyProgress.DoModal();}

ｷｬﾌﾟﾁｬｰ開始

Page.64

Functions ｻﾝﾌﾟﾙﾌﾟﾛｸﾞﾗﾑ：CD‑ROM¥ForVC¥MfcApp¥Functions を参照して下さい。
Function はその他の CCD SDK COM のｲﾝﾀｰﾌｪｲｽを説明するｻﾝﾌﾟﾙﾌﾟﾛｸﾞﾗﾑになります。ﾒｲﾝﾀﾞｲｱﾛｸﾞは右の画面です。
CCD ｶﾒﾗがﾒﾓﾘ記憶機能を持つ場合は、「CH ｾｰﾌﾞ」
ﾎﾞﾀﾝをｸﾘｯｸすることにより、ｶﾒﾗのMemory̲Channel1に現在値が保存され、「CH ﾛｰﾄﾞ」ﾎﾞﾀﾝをｸﾘｯｸすることにより、Memory̲Channel

1に記憶された値をｶﾒﾗに設定します。
ﾒｲﾝﾀﾞｲｱﾛｸﾞでﾌﾟﾚﾋﾞｭｰした状態で「Zoom」ﾎﾞﾀﾝをｸﾘｯｸします。ﾀﾞｲｱﾛｸﾞの初期化処理で、指定のｶﾒﾗ
よりｽﾞｰﾑとﾌｫｰｶｽのﾌﾟﾛﾊﾟﾃｨを読み出し、各最大・最小調整範囲を表示します。同時に、読み出した値に従ってｽﾗｲﾀﾞｰﾊﾞｰの設定を行います。
ｽﾗｲﾀﾞｰﾊﾞｰをｽﾗｲﾄﾞさせることで、ｽﾞｰﾑとﾌｫｰｶｽの調整を行います。

ﾒｲﾝﾀﾞｲｱﾛｸﾞでﾌﾟﾚﾋﾞｭｰした状態で「CSR」ﾎﾞﾀﾝをｸﾘｯｸします。ｽﾞｰﾑ機能を例にして、CSR ﾚｼﾞｽﾀに直接ﾘｰﾄﾞﾗｲﾄして制御する方法を説明します。

ｽﾞｰﾑﾌﾟﾛﾊﾟﾃｨの取得
BOOL CZoomDlg::OnInitDialog(){
CDialog::OnInitDialog();
HRESULT hr;
PROPERTY̲RANGEPropValue;
LONG ZoomValue,FocusValue;
LONG ScrollRange;m̲theApp = (CFunctionsApp *)AfxGetApp();
CFunctionsDlg *MainDlg = (CFunctionsDlg *)m̲theApp‑>m̲pMainWnd;m̲CameraId = MainDlg‑>m̲CurrentCameraId;

CWinApp ｵﾌﾞｼﾞｪｸﾄへのﾎﾟｲﾝﾀ取得
ﾒｲﾝﾀﾞｲｱﾛｸﾞのｳｨﾝﾄﾞｳﾊﾝﾄﾞﾙ取得
ﾒｲﾝﾀﾞｲｱﾛｸﾞで択されているｶﾒﾗ取得

hr = m̲theApp‑>m̲pIsdk‑>ccd̲GetPropertyRange(m̲CameraId, Zoom, &PropValue);
SetDlgItemInt(IDC̲TxtZoomMaxVal, PropValue.Max, true);
SetDlgItemInt(IDC̲TxtZoomMinVal, PropValue.Min, true);

Zoom ﾌﾟﾛﾊﾟﾃｨの調整ﾚﾝｼﾞ取得

m̲sliderZoom.SetRange(PropValue.Min, PropValue.Max);

Zoom ｽﾗｲﾀﾞｰﾊﾞｰの調整範囲設定

最大・最小値表示

Page.65
ScrollRange = PropValue.Max ‑ PropValue.Min;if( ScrollRange < 20 ){m̲sliderZoom.SetTicFreq( 1 );}else{
m̲sliderZoom.SetTicFreq( ScrollRange / 20 );}hr = m̲theApp‑>m̲pIsdk‑>ccd̲GetProperty(m̲CameraId, Zoom, &ZoomValue, 0);
SetDlgItemInt(IDC̲TxtZoomCurVal, ZoomValue, true);m̲sliderZoom.SetPos(ZoomValue);

目盛は(最大値‑最小値)が 20 以下なら1 刻み

ｶﾒﾗより Zoom の現在値を取得

Zoom ｽﾗｲﾀﾞｰﾊﾞｰの現在値を設定// Focus についても同様｝

CSR ﾚｼﾞｽﾀのﾘｰﾄﾞﾗｲﾄｻﾝﾌﾟﾙ
void CCSRDlg::OnBtnRead(){
HRESULT hr;
LONG csrOffset = 0xF0F00880;

Zoom ｺﾝﾄﾛｰﾙは CSR ｵﾌｾｯﾄ 880h

hr = m̲theApp‑>m̲pIsdk‑>ccd̲ReadRegister(m̲CameraId, csrOffset, &m̲lReadVal);CSR ｵﾌｾｯﾄ 880h にﾏｯﾋﾟﾝｸﾞされている
ZOOM ﾚｼﾞｽﾀを Quadlet ﾘｰﾄﾞm̲lReadVal = m̲lReadVal & 0xFFF;
UpdateData( FALSE );Bit20‑31 の現在値 Value を取得（IIDC Digital Camera Spec 参照）}
void CCSRDlg::OnBtnWrite(){
HRESULT hr;
LONG lReadVal,lWriteVal;
LONG csrOffset = 0xF0F00880;

Zoom ｺﾝﾄﾛｰﾙは CSR ｵﾌｾｯﾄ 880h

UpdateData( TRUE );hr = m̲theApp‑>m̲pIsdk‑>ccd̲ReadRegister(m̲CameraId, csrOffset, &lReadVal);CSR ｵﾌｾｯﾄ 880h にﾏｯﾋﾟﾝｸﾞされている
ZOOM ﾚｼﾞｽﾀを Quadlet ﾘｰﾄﾞ

lWriteVal = (lReadVal & 0xFFFFF000) ￨ (m̲lWriteVal & 0xFFF);

Bit 0‑19 はﾘｰﾄﾞした値を、Bit20‑31 に入力値をｾｯﾄ
CSR ｵﾌｾｯﾄ 880h にﾏｯﾋﾟﾝｸﾞされている
ZOOM ﾚｼﾞｽﾀに Quadlet ﾗｲﾄ

hr = m̲theApp‑>m̲pIsdk‑>ccd̲WriteRegister(m̲CameraId, csrOffset, lWriteVal);}

ﾒﾓﾘﾁｬﾝﾈﾙのｾｰﾌﾞとﾛｰﾄﾞ
void CFunctionsDlg::OnBtnChLoad(){
HRESULT hr = m̲theApp‑>m̲pIsdk‑>ccd̲GetMemCh(m̲CurrentCameraId, 0);}
void CFunctionsDlg::OnBtnChSave(){
HRESULT hr = m̲theApp‑>m̲pIsdk‑>ccd̲SetMemCh(m̲CurrentCameraId, 0);}

ﾒﾓﾘｰﾁｬﾝﾈﾙ 1 に記憶されている設定をﾛｰﾄﾞﾒﾓﾘｰﾁｬﾝﾈﾙ 1 に現在の設定を記録

Page.66

RSiCCD ｻﾝﾌﾟﾙﾌﾟﾛｸﾞﾗﾑ：CD‑ROM¥ForVC¥MfcApp¥RSiCCD を参照して下さい。
本ｻﾝﾌﾟﾙﾌﾟﾛｸﾞﾗﾑはこれまで説明したｻﾝﾌﾟﾙﾌﾟﾛｸﾞﾗﾑの主な機能をまとめたものです。
1

2
3

5

4

6

12

14

7

18

16

8
9
11

13

15

17

19

10

1

プレビュー実行によりこのスクリーン部分に動画が表示されます。

2

カメラリストからターゲットカメラを選択します。

3

選択されたカメラがサポートするフォーマットリストからフォーマットを選択します。

4

選択されたカメラがサポートするフレームレートリストからフレームレートを選択します。

5

スナップショット実行によりこのスクリーンに保存されたビットマップが表示されます。

6

キャプチャもしくはスナップショットするファイル名を入力します。スナップショットを行う
場合のファイル名拡張子は「.BMP」、キャプチャを行う場合のファイル名拡張子は「.AVI」にします。

7

キャプチャもしくはスナップショットのファイル選択ダイアログが表示されます。

8

指定サイズのキャプチャファイルを予めアロケーションし、キャプチャ実行時の負荷を軽減します。キャプチャファイルがアロケーションサイズを越えた場合は、自動的にサイズ拡張されます。

9

CCD カメラが外部トリガーモードをサポートしていれば、トリガーモードで動作。外部トリガーの入力があると、プレビュースクリーンに 1 フレーム表示されます。

10

オーバーレイ表示機能をイネーブル。プレビューが高速になります。

11

キャプチャを行う前に必要となる設定を行います。

12

選択されたカメラからの動画キャプチャを開始します。

13

キャプチャを停止します。

Page.67
14

選択されたカメラからの動画プレビューを開始します。

15

プレビューを一時停止します。

16

プレビューを停止します。

17

プレビューしている動画 1 フレームをビットマップファイルに保存します。保存されたビット
マップファイルは 5 に表示されます。

18

CCD カメラのプロパティ設定ダイアログ表示。

19

選択されたカメラについてホワイトバランスのオンショット自動調整を行います。

前ページ“17”のカメラ調整ボタンにより、右の BasicCCD カメラのプロパティ設定ダイアログが表示されます。Basic タグを開きます。
（注意）
各機能の詳細およびサポート有無は CCD カメラ仕様を参照してください。

Focus

内蔵ズームレンズのピントを設定。

Zoom

内蔵ズームレンズの撮影倍率を調整。

Brightness

画像の黒レベルを調整。

Sharpness

画像の輪郭のシャープさを調整。

Gamma

ガンマ特性を調整。

Color タグを開きます。
（注意）
各機能の詳細およびサポート有無は CCD カメラ仕様を参照してください。

U/B

White Balance の B‑gain 調整。

V/R

White Balance の R‑gain 調整。

Hue

色相を調整。

Sat

Saturation:色の飽和度を調整。

ColorPage.68

Exposure タグを開きます。

Exposure（注意）
各機能の詳細およびサポート有無は CCD カメラ仕様を参照してください。

Expo

Exposure:自動露出（Auto Exposure）の露出補正を調整。

Shutter

電子シャッターの露光時間を調整。

Gain

映像信号アンプのゲインを調整。

Iris

内蔵レンズの絞りを調整。

Camera Info タグを開きます。CCD カメラの Camera Info
Status and Control Register（CSR）レジスタに対し Read/Write を行います。
（注意）
CSR レジスタの詳細については CCD カメラの仕様書および IIDC 1394‑based Digital Camera 仕様書を参照してください。

Page.69

3-5. VC サンプルプログラム
C 言語のｻﾝﾌﾟﾙﾌﾟﾛｸﾞﾗﾑ RSiCCD が CD‑ROM¥ForVC¥W32App¥RSiCCD に格納されています。
本ｻﾝﾌﾟﾙﾌﾟﾛｸﾞﾗﾑは「Win32 Application」のﾌﾟﾛｼﾞｪｸﾄ仕様で作成したものです。C ｿｰｽﾌｧｲﾙのﾌｧｲﾙ拡張子
は「.cpp」で作成して下さい。詳細については、添付のｿｰｽｺｰﾄﾞを参照願います。

RsCCDSDK 追加関数マニュアル

追加された関数は CCD の画像をメモリ上で扱うためのものです。
新しいインターフェースを使用する際には下記のように宣言してインターフェースを作成する必要があります。
// CCD_COM コンポーネントの宣言
IRsCcdSdk_1A *rsk;// Camera ｺﾝﾄﾛｰﾙ COM ｲﾝﾀｰﾌｪｰｽ作成
hr = CoCreateInstance(
CLSID_RsCcdSdk,
NULL,
CLSCTX_INPROC,
IID_IRsCcdSdk_1A,(void**) &rsk );実際の関数の使用方法は CD 内のサンプル
GetBMPData( ¥SDK¥ForVC¥MfcApp¥GetBMPData )をご参照ください。
Ver1.0 で作成したプログラムはそのままご使用になれます。

IRsCcdSdk_1A::
ccd_ReadyFrameData
YUV データをメモリ上で受け取るためにフィルタを接続する。

構文
HRESULT ccd_GetFrameInfo([in]LONG CameraIndex
);

パラメータ
CameraIndex[in] ターゲットのカメラをインデックス番号で指定。 SDK_CCD_INFO 構造体
参照。

戻り値
HRESULT を返す。以下のいずれかの値。エラーの詳細は ccd_GetLastError で取
得。
S_OK

成功

S_FALSE

失敗

注意
受け取り可能なフォーマットは YUV411， YUV422， YUV444。

IRsCcdSdk_1A::
ccd_GetFrameInfo
現在接続されている CCD カメラのストリームデータに関する情報を取得。

構文
HRESULT ccd_GetFrameInfo(
LONG CameraIndex, LONG *pPixelFormat, LONG *pDataWidth,
LONG *pDataHeight
);

パラメータ
CameraIndex[in] ターゲットのカメラをインデックス番号で指定。 SDK_CCD_INFO 構造体
参照。
pPixelFormaｔ[out] データの種類を示す数へのポインタ。
pDataWidth[out] YUV データの横幅へのポインタ。
pDataHeight[out] YUV データの縦幅へのポインタ。

戻り値
HRESULT を返す。以下のいずれかの値。エラーの詳細は ccd_GetLastError で取
得。
S_OK

成功

S_FALSE

失敗

注意
受け取り可能なフォーマットは YUV411， YUV422， YUV444。

IRsCcdSdk_1A::
ccd_GetFrameData
現在接続されている CCD カメラから YUV データを取得する。

構文
HRESULT ccd_GetFrameData(
LONG CameraIndex, LONG* lpData, LONG* lpDataSize
);

パラメータ
CameraIndex[in] ターゲットのカメラをインデックス番号で指定。 SDK_CCD_INFO 構造体参照。
lpData[in, out] 画像データへのポインタ。
lpDataSize[in, out] データサイズへのポインタ。

戻り値
HRESULT を返す。以下のいずれかの値。エラーの詳細は ccd_GetLastError で取
得。
S_OK

成功

S_FALSE

失敗

注意
ｌｐＤａｔａが０のとき、この関数はｌｐＤａｔａＳｉｚｅへ必要なデータサイズを返す。
受け取り可能なフォーマットは YUV411， YUV422， YUV444。

IRsCcdSdk_1A::
ccd_SetFrameDataMsg
CCD カメラからストリームへフレームが送られた時に送られるメッセージを指定

構文
HRESULT ccd_GetFrameInfo([in]LONG CameraIndex, [in]HWND hWnd, [in]LONG UserMsg
);

パラメータ
CameraIndex[in] ターゲットのカメラをインデックス番号で指定。 SDK_CCD_INFO 構造体参照。
hWnd[in] メッセージを受け取るウィンドウのハンドル
UserMsg[in] 送信するメッセージ

戻り値
HRESULT を返す。以下のいずれかの値。エラーの詳細は ccd_GetLastError で取
得。
S_OK

成功

S_FALSE

失敗

IRsCcdSdk_1A::
ccd_ReleaseFrameData
YUV 受け取り用のフィルタを切り離す。

構文
HRESULT ccd_ReleaseFrameData(
LONG CameraIndex
);

パラメータ
CameraIndex[in] ターゲットのカメラをインデックス番号で指定。 SDK_CCD_INFO 構造体
参照。

戻り値
HRESULT を返す。以下のいずれかの値。エラーの詳細は ccd_GetLastError で取
得。
S_OK

成功

S_FALSE

失敗

IRsCcdSdk_1A::
ccd_ReadyBmpData
ＲＧＢデータをメモリ上で受け取るためにフィルタを接続する。

構文
HRESULT ccd_GetFrameInfo([in]LONG CameraIndex
);

パラメータ
CameraIndex[in] ターゲットのカメラをインデックス番号で指定。 SDK_CCD_INFO 構造体
参照。

戻り値
HRESULT を返す。以下のいずれかの値。エラーの詳細は ccd_GetLastError で取
得。
S_OK

成功

S_FALSE

失敗

注意
受け取り可能なフォーマットはＲＧＢ２４ｂｉｔ。

IRsCcdSdk_1A::
ccd_GetBmpInfo
ストリームの BMP に関する情報を取得。

構文
HRESULT ccd_GetFrameInfo(
LONG CameraIndex, LONG *pDataWidth, LONG *pDataHeight
);

パラメータ
CameraIndex[in] ターゲットのカメラをインデックス番号で指定。 SDK_CCD_INFO 構造体参照。
pDataWidth[out] YUV データの横幅へのポインタ。
pDataHeight[out] YUV データの縦幅へのポインタ。

戻り値
HRESULT を返す。以下のいずれかの値。エラーの詳細は ccd_GetLastError で取
得。
S_OK

成功

S_FALSE

失敗

注意
受け取り可能なフォーマットはＲＧＢ２４ｂｉｔ

IRsCcdSdk::
ccd_GetBmpData
現在接続されている CCD カメラから RGB24bit データを取得する。

構文
HRESULT ccd_GetFrameData(
LONG CameraIndex, LONG* lpData, LONG* lpDataSize
);

パラメータ
CameraIndex[in] ターゲットのカメラをインデックス番号で指定。 SDK_CCD_INFO 構造体参照。
lpData[in, out] 画像データへのポインタ。
lpDataSize[in, out] データサイズへのポインタ。

戻り値
HRESULT を返す。以下のいずれかの値。エラーの詳細は ccd_GetLastError で取
得。
S_OK

成功

S_FALSE

失敗

注意
lpData が０のとき、この関数は lpDataSize へデータサイズを返す。
データは RGB24bit。

IRsCcdSdk_1A::
ccd_SetBmpDataMsg
CCD カメラからストリームへフレームが送られた時に送られるＷｉｎｄｏｗｓメッセージを指定

構文
HRESULT ccd_GetFrameInfo([in]LONG CameraIndex, [in]HWND hWnd, [in]LONG UserMsg
);

パラメータ
CameraIndex[in] ターゲットのカメラをインデックス番号で指定。 SDK_CCD_INFO 構造体参照。
ｈＷｎｄ[in] メッセージを受け取るウィンドウのハンドル
ＵｓｅｒＭｓｇ[in] 送信するメッセージ

戻り値
HRESULT を返す。以下のいずれかの値。エラーの詳細は ccd_GetLastError で取
得。
S_OK

成功

S_FALSE

失敗

IRsCcdSdk_1A::
ccd_ReleaseBmpData
BMP 受け取り用のフィルタを切り離す。

構文
HRESULT ccd_ＲｅｌｅａｓｅＦｒａｍｅＤａｔａ（
ＬＯＮＧ CameraIndex
）；

パラメータ
CameraIndex[in] ターゲットのカメラをインデックス番号で指定。 SDK_CCD_INFO 構造体
参照。

戻り値
HRESULT を返す。以下のいずれかの値。エラーの詳細は ccd_GetLastError で取
得。
S_OK

成功

S_FALSE

失敗

IRsCcdSdk::
ccd_ReadyOneShot
ＣＣＤカメラへ Continuous_Shot コマンドを送る。（Video data の停止）

構文
HRESULT ccd_ＧｅｔＦｒａｍｅＤａｔａ（
ＬＯＮＧ CameraIndex
）；

パラメータ
CameraIndex[in] ターゲットのカメラをインデックス番号で指定。 SDK_CCD_INFO 構造体
参照。

戻り値
HRESULT を返す。以下のいずれかの値。エラーの詳細は ccd_GetLastError で取
得。
S_OK

成功

S_FALSE

失敗

IRsCcdSdk_1A::
ccd_OneShot
CCD カメラへ One_Shot コマンドを送る。

構文
HRESULT ccd_ＲｅｌｅａｓｅＦｒａｍｅＤａｔａ（
ＬＯＮＧ CameraIndex
）；

パラメータ
CameraIndex[in] ターゲットのカメラをインデックス番号で指定。 SDK_CCD_INFO 構造体
参照。

戻り値
HRESULT を返す。以下のいずれかの値。エラーの詳細は ccd_GetLastError で取
得。
S_OK

成功

S_FALSE

失敗

IRsCcdSdk::
ccd_ReleaseOneShot
CCD カメラへ Continuous_Shot コマンドを送る。（Video data の開始）

構文
HRESULT ccd_ＧｅｔＦｒａｍｅＤａｔａ（
ＬＯＮＧ CameraIndex
）；

パラメータ
CameraIndex[in] ターゲットのカメラをインデックス番号で指定。 SDK_CCD_INFO 構造体
参照。

戻り値
HRESULT を返す。以下のいずれかの値。エラーの詳細は ccd_GetLastError で取
得。
S_OK

成功

S_FALSE失敗

Page.70

第四章 Visual BASIC によるﾌﾟﾛｸﾞﾗﾑ開発

Visual BASIC でアプリケーションを作成する場合は、本製品付属の CCD SDK ActiveX ライブラリを使用します。CCD SDK のインストレーションを行えば CCD SDK ActiveX ライブラリが使用可能な状態となります。以下の CCD SDK ActiveX ライブラリインターフェイスとサンプルプログラムを参考にして、アプリケーションの作成を行います。

4-1. ActiveX インターフェイス仕様
ｲﾝﾀｰﾌｪｲｽ名説明頁

ccdAbout

CCD SDK ActiveX のﾊﾞｰｼﾞｮﾝ情報を取得。

72

ccdInitialize

CCD SDK ActiveX の初期化処理を行う。

88

ccdUninitialize

CCD SDK ActiveX の終了処理を行う。

109

ccdEnumCamera

ActiveX に対し現在接続されている CCD ｶﾒﾗを列挙するよう指示。

73

ccdFreeCamera

ccdEnumCamera 呼び出しにより CCD SDK ActiveX 内で確保したﾘｿｰｽを解放。

74

ccdGetCameraInfo指定されたｶﾒﾗのﾕﾆｰｸな名前とｻﾎﾟｰﾄするｽﾄﾘｰﾑの個数を取得。

75

ccdGetConnectedCameraInfo

ActiveX から現在接続されている全てのｶﾒﾗ情報を取得。

76

ccdGetCurrentFormat

指定されたｶﾒﾗの現在設定されているｽﾄﾘｰﾑﾌｫｰﾏｯﾄおよびﾌﾚｰﾑﾚｰﾄを取得。

80

ccdGetSupportedFrameRate

指定ｶﾒﾗがｻﾎﾟｰﾄするｽﾄﾘｰﾑ・ﾌﾚｰﾑﾚｰﾄｲﾝﾃﾞｯｸｽ番号のﾌﾚｰﾑﾚｰﾄを取得。

83

ccdGetSupportedStream

指定ｶﾒﾗがｻﾎﾟｰﾄするｽﾄﾘｰﾑｲﾝﾃﾞｯｸｽ番号のﾌｫｰﾏｯﾄとﾋﾟｸｾﾙｻｲｽﾞを取得。

84

ccdSetStream

指定されたｶﾒﾗから出力されるｽﾄﾘｰﾑﾌｫｰﾏｯﾄを設定。

102

ccdSetFrameRate

指定されたｶﾒﾗから出力されるﾌﾚｰﾑﾚｰﾄを設定。

97

ccdPreviewStart

指定されたｶﾒﾗのﾌﾟﾚﾋﾞｭｰを開始。

90

ccdPreviewPause指定されたｶﾒﾗのﾌﾟﾚﾋﾞｭｰをﾎﾟｰｽﾞ。

89

ccdPreviewStop

指定されたｶﾒﾗのﾌﾟﾚﾋﾞｭｰを終了。

91

ccdSnapshot

現在表示されているﾌﾚｰﾑを静止画ﾋﾞｯﾄﾏｯﾌﾟﾌｧｲﾙに保存。

106

ccdSetTrigger

CCD ｶﾒﾗの外部ﾄﾘｶﾞｰﾓｰﾄﾞを設定。

104

ccdSetAudio

動画のﾌﾟﾚﾋﾞｭｰおよび保存時にｵｰﾃﾞｨｵを有効設定。

93

ccdSetCaptureFilename

動画を保存するﾌﾙﾊﾟｽﾌｧｲﾙ名とｷｬﾌﾟﾁｬﾌｧｲﾙ保存にﾃﾝﾎﾟﾗﾘﾌｧｲﾙを使用するか指定。

94

ccdSetCaptureTempFile

ｷｬﾌﾟﾁｬ用のﾃﾝﾎﾟﾗﾘﾌｧｲﾙに関する設定。

95

ccdGetCopyFileProgress

ｷｬﾌﾟﾁｬ停止後のﾃﾝﾎﾟﾗﾘﾌｧｲﾙのｺﾋﾟｰｽﾃｰﾀｽを取得。

79

ccdSetMovieCompressor

ｷｬﾌﾟﾁｬ保存するの圧縮形式を設定。

99

ccdCaptureStart

指定されたｶﾒﾗより現在設定されたｽﾄﾘｰﾑ・ﾌﾚｰﾑﾚｰﾄで動画保存を開始。

107

ccdCaptureStop

動画保存を終了。

108

ccdGetPropertyRange

Zoom/Focus 等ﾍﾞｰｽﾌﾟﾛﾊﾟﾃｨに関し、調整ﾚﾝｼﾞ情報を取得。

87

ccdGetProperty

Zoom/Focus 等ﾍﾞｰｽﾌﾟﾛﾊﾟﾃｨに関し、ｶﾒﾗより現在値を取得。

86

ccdSetProperty

Zoom/Focus 等に関するﾍﾞｰｽﾌﾟﾛﾊﾟﾃｨについて、ｶﾒﾗの設定値を変更。

101

Page.71
ccdGetColorRange

UB/VR/Hue/Saturation に関するｶﾗｰﾌﾟﾛﾊﾟﾃｨについて調整ﾚﾝｼﾞ情報を取得。

78

ccdGetColorUB/VR/Hue/Saturation に関するｶﾗｰﾌﾟﾛﾊﾟﾃｨについてｶﾒﾗより現在値を取得。

77

ccdSetColorUB/VR/Hue/Saturation に関するｶﾗｰﾌﾟﾛﾊﾟﾃｨについて、ｶﾒﾗの設定値を変更する。

96

ccdShowPropertyPage

ｶﾒﾗﾄﾞﾗｲﾊﾞのﾌﾟﾛﾊﾟﾃｨﾍﾟｰｼﾞを表示。

105

ccdGetMemCh

ｶﾒﾗ内部のﾒﾓﾘに記憶されている設定ﾃﾞｰﾀを読み出しｶﾒﾗに再設定。

85

ccdSetMemCh

現在ｶﾒﾗに設定されているﾃﾞｰﾀをｶﾒﾗ内部のﾒﾓﾘに記憶。

98

ccdSetOverlay

ｵｰﾊﾞｰﾚｲ機能のｲﾈｰﾌﾞﾙ・ﾃﾞｨｾｰﾌﾞﾙを設定。

100

ccdReadRegister

指定のｶﾒﾗのｵﾌｾｯﾄｱﾄﾞﾚｽから 4 ﾊﾞｲﾄ（Quadlet）ﾘｰﾄﾞ。

92

ccdWriteRegister

指定のｶﾒﾗのｵﾌｾｯﾄｱﾄﾞﾚｽに 4 ﾊﾞｲﾄ（Quadlet）ﾗｲﾄ。

103

ccdGetLastError

最後に発生したｴﾗｰの詳細内容を取得。

81

ActiveX インターフェイスの書式について

ccdSdk.ccd
ccdSdk.ccdXxxx
ccdXxxx【インターフェイス名】

ActiveX インターフェイス【インターフェイスの概要動作説明】】

構文
ccd̲Xxxxx(Val As XXX) As Long

パラメータ
【引数説明】
】
[in]

入力

[out]

出力

戻り値
【戻り値説明】】

注意【その他参考情報】】

関連【関連するｲﾝﾀｰﾌｧｲｽ】】【関数仕様説明]]Page.72

ccdSdk.ccdA
ccdSdk.ccdAbout
ccdAbout
ActiveX インターフェイス
CCD SDK ActiveX のﾊﾞｰｼﾞｮﾝ情報を取得。
構文
ccdAbout(bstrAbout As String) As Long

パラメータ
bstrAbout[out]

SDK ﾊﾞｰｼﾞｮﾝ情報の格納先。

戻り値
以下のいずれかの値。
True

成功

False

失敗

RS1394 CCD SDK ActiveX Version X.Xが返されます。

Page.73

ccdSdk.ccdEnumCamera
ccdSdk.ccdEnumCamera
ActiveX インターフェイス
CCD SDK ActiveX に対し現在接続されている CCD ｶﾒﾗを列挙するよう指示。ActiveX 内に現在接続されているｶﾒﾗ情報と個々のﾘｿｰｽが確保されます。
構文
ccdEnumCamera(lpNumOfCamera As Long) As Long

パラメータ
pNumOfCamera[out]

現在接続されている CCD ｶﾒﾗ数の格納先変数。

戻り値
以下のいずれかの値。
True

成功

False

失敗

注意
ｱﾌﾟﾘｹｰｼｮﾝ側では要素数 MAX̲SUPPORT̲CAMERAS の tCameraInfo 構造体配列を確保します。ｶﾒﾗ情報の再構築のために、再度 ccdEnumCamera()呼び出しを行う際、ｱﾌﾟﾘｹｰｼｮﾝを終了する際には必ず ccdFreeCamera()により ActiveX 内で確保されたﾘｿｰｽを解放します。

関連
ccdGetCameraInfo, ccdGetConnectedCameraInfo, ccdGetCurrentFormat, ccdGetSupportedFrameRate,
ccdGetSupportedStream, ccdSetStream, ccdSetFrameRate, ccdFreeCamera 参照。

Page.74

ccdSdk.ccdFreeCamera
ccdSdk.ccdFreeCamera
ActiveX インターフェイス
ccdEnumCamera により CCD SDK ActiveX 内で確保している全てのﾘｿｰｽを解放。
構文
ccdFreeCamera

パラメータ
なし。

戻り値
以下のいずれかの値。
True

成功

False

失敗

関連
ccdEnumCamera, ccdGetCameraInfo, ccdGetConnectedCameraInfo, ccdGetCurrentFormat,
ccdGetSupportedFrameRate, ccdGetSupportedStream, ccdSetStream, ccdSetFrameRate 参照。

Page.75

ccdSdk.ccd
ccdSdk.ccdGet
ccdGetCamera
GetCameraInfo
CameraInfo
ActiveX インターフェイス
指定されたｶﾒﾗのﾕﾆｰｸな名前とそのｶﾒﾗがｻﾎﾟｰﾄするｽﾄﾘｰﾑの個数を取得。
構文
ccdGetCameraInfo(lCameraIndex As Long, bstrCameraName As String,

lpNumOfSupportedStream As Long) As Long

パラメータ
lCameraIndex[in]ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。tCameraInfo 構造体参照。

bstrCameraName[out]

ﾕﾆｰｸなｶﾒﾗの名前の格納先。

lpNumOfSupportedStream[out]

ｶﾒﾗがｻﾎﾟｰﾄするｽﾄﾘｰﾑ個数。

戻り値
以下のいずれかの値。
True

成功

False

失敗

関連
ccdEnumCamera,
ccdEnumCamera, ccdGetConnectedCameraInfo,
ccdGetConnectedCameraInfo, ccdGetCurrentFormat,
ccdGetCurrentFormat, ccdGetSupportedFrameRate,
ccdGetSupportedFrameRate,
ccdGetSupportedStream,, ccdSetStream,
ccdSetStream, ccdSetFrameRate,
ccdSetFrameRate, ccdFreeCamera 参照。
ccdGetSupportedStream

Page.76

ccdGetConnected
ccdGetConnectedCamera
GetConnectedCameraInfo
CameraInfo
ActiveX インターフェイス
CCD SDK ActiveX から現在接続されている全てのｶﾒﾗ情報を取得し、RSCCDSDK.BAS でｸﾞﾛｰﾊﾞ
ﾙ定義された tCameraInfo 構造体変数にｾｯﾄ。
構文
Public Function ccdGetConnectedCameraInfo
As Boolean
ccdGetConnectedCameraInfo()
fo

パラメータ
なし

戻り値
以下のいずれかの値。
True

成功

False

失敗

注意
本サブルーチンは

RSCCDSDK.BAS

で定義されています。

関連
ccdEnumCamera, ccdGetCameraInfo, ccdGetCurrentFormat, ccdGetSupportedFrameRate, ccdGetSupportedStream,
ccdSetStream, ccdSetFrameRate, ccdFreeCamera 参照。

Page.77

ccdSdk.ccdGetColor
ccdSdk.ccdGetColor
ActiveX インターフェイス
UB/VR/Hue/Saturation に関するｶﾗｰﾌﾟﾛﾊﾟﾃｨについてｶﾒﾗより現在値を取得。
構文
ccdGetColor(lCameraIndex As Long, lProperty As Long, lpValue As Long,

fMode As Long)As Long

パラメータ
CameraIndex[in]ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 tCameraInfo 構造体参照。

Property[in]

COLOR̲PROPERTY より現在の値を取得したいﾌﾟﾛﾊﾟﾃｨを指定。

lpValue[out] 指定したﾌﾟﾛﾊﾟﾃｨの値を格納する変数。

fMode
[in]

指定したﾌﾟﾛﾊﾟﾃｨの現在のﾓｰﾄﾞを指定。Camera Control Flag を使って指定。

戻り値
以下のいずれかの値。
True

成功

False

失敗

関連
ccdGetPropertyRange, ccdGetProperty, ccdSetProperty, ccdGetColorRange, ccdSetColor 参照。

Page.78

ccdSdk.ccdGetColorRange
ccdSdk.ccdGetColorRange
ActiveX インターフェイス
UB/VR/Hue/Saturation に関するｶﾗｰﾌﾟﾛﾊﾟﾃｨについて調整ﾚﾝｼﾞ情報を取得。
構文
ccdGetColor
ccdGetColorRange
ColorRange (lCameraIndex As Long, lProperty As Long, lpRangeMin As Long,

lpRangeMax As Long, lpRangeSteppingDelta As Long,
lpRangeDefault As Long, lpRangeCapsFlags As Long) As Long

パラメータ
lCameraIndex[in] ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 tCameraInfo 構造体参照。

lProperty[in] COLOR̲PROPERTY よりﾚﾝｼﾞを取得するﾌﾟﾛﾊﾟﾃｨを指定。

lpRangeMin[out] 調整範囲の最小値。tCCDRangeValue 構造体参照。

lpRangeMax[out] 調整範囲の最大値。tCCDRangeValue 構造体参照。

lpRangeSteppingDelta[out] 1 ｽﾃｯﾌﾟ増分値。tCCDRangeValue 構造体参照。

lpRangeDefault[out]ﾃﾞﾌｫﾙﾄ値。tCCDRangeValue 構造体参照。

lpRangeCapsFlags[out] ﾋﾞｯﾄﾏｯﾌﾟで定義されたｻﾎﾟｰﾄﾓｰﾄﾞ。tCCDRangeValue 構造体参照。

戻り値
以下のいずれかの値。
True

成功

False

失敗

関連
ccdGetPropertyRange, ccdGetProperty, ccdSetProperty, ccdGetColor, ccdSetColor 参照。

Page.79

ccdSdk.ccdGet
ccdSdk.ccdGetCopyFileProgress
GetCopyFileProgress
ActiveX インターフェイス
ｷｬﾌﾟﾁｬ停止後のﾃﾝﾎﾟﾗﾘﾌｧｲﾙのｺﾋﾟｰｽﾃｰﾀｽを取得。
構文
ccdGetCopyFileProgress
ccdGetCopyFileProgress(lCameraIndex As Long, lpProgress As Long) As Long

パラメータ
lCameraIndex[in]ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 tCameraInfo 構造体参照。

lpProgress[out] ｺﾋﾟｰ進捗ｽﾃｰﾀｽが返される変数。0‑100[%]の値で 100 が完了。

戻り値
以下のいずれかの値。
True

成功

False

失敗

関連
ccdStartCapture, ccdStopCapture, ccdSetCaptureFile, ccdSetCaptureTempFile 参照。

Page.80

ccdSdk.ccdGetCurrentFormat
ccdSdk.ccdGetCurrentFormat
ActiveX インターフェイス
指定されたｶﾒﾗの現在設定されているｽﾄﾘｰﾑﾌｫｰﾏｯﾄおよびﾌﾚｰﾑﾚｰﾄを取得。
構文
ccdGetCurrentFormat(lCameraIndex As Long, lpCurrentStream As Long, lpFrameRate As Long ) As Long

パラメータ
lCameraIndex[in]ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 tCameraInfo 構造体参照。

lpCurrentStream[out] 現在設定されているﾋﾞﾃﾞｵﾓｰﾄﾞのｲﾝﾃﾞｯｸｽ番号。tCameraInfo 構造体参照。

lpFrameRate[out] 現在設定されているﾌﾚｰﾑﾚｰﾄのｲﾝﾃﾞｯｸｽ番号。tCameraInfo 構造体参照。

戻り値
以下のいずれかの値。
True

成功

False

失敗

注意
ccdEnumCamera を呼び出しにより取得したｶﾒﾗ情報構造体（RSCCDSDK.BAS 参照）
Public gCameraInfo(MAX̲NUMBER̲OF̲CAMERAS) As tCameraInfoと ccdGetCurrentFormat()で取得した現在のﾋﾞﾃﾞｵﾓｰﾄﾞ・ﾌﾚｰﾑﾚｰﾄのｲﾝﾃﾞｯｸｽ番号により、現在のﾋﾞﾃﾞｵﾓｰﾄﾞ・ﾌﾚｰﾑﾚｰﾄはそれぞれ下記のように定めることができます。
gCameraInfo[lCameraIndex].SupportedStream[lpStreamIndex].SupportedFormat
gCameraInfo[lCameraIndex].SupportedStream[lpStreamIndex].SupportedFrameRate[lpFpsIndex]

関連
ccdEnumCamera, ccdGetCameraInfo, ccdGetConnectedCameraInfo, ccdGetSupportedFrameRate,
ccdGetSupportedStream, ccdSetStream, ccdSetFrameRate, ccdFreeCamera 参照。

Page.81

ccdSdk.ccd
ccdSdk.ccdGetLastError
ccdGetLastError
ActiveX インターフェイス
最後に発生したｴﾗｰの詳細内容を取得。
構文
ccdGetLastError (lpErrorCode As Long) As String

パラメータ
lpErrorCode[out] ｴﾗｰｺｰﾄﾞの格納先。

戻り値
String 型のｴﾗｰ情報を返す。
注意
ｴﾗｰの原因が推定できるものを次ﾍﾟｰｼﾞのｴﾗｰｺｰﾄﾞ一覧表に示します。対処方法に基づいて確認を行って下さい。その他、一覧表にないｴﾗｰｺｰﾄﾞについては、個々の環境における致命的なｴﾗｰと思われます。ﾊﾟｿｺﾝを再起動して下さい。

Page.82

エラーコード一覧表
ｴﾗｰｺｰﾄﾞ
1

対

処

方

法

CCD ｶﾒﾗが接続されていないか、ｶﾒﾗﾄﾞﾗｲﾊﾞが正しくｲﾝｽﾄｰﾙされていません。ﾃﾞﾊﾞｲｽﾏﾈｰｼﾞｬ上にｲﾒｰｼﾞﾝｸﾞﾃﾞ
ﾊﾞｲｽが認識されているか確認して下さい。

2

使用可能なｵｰﾃﾞｨｵﾃﾞﾊﾞｲｽが存在しません。ﾃﾞﾊﾞｲｽﾏﾈｰｼﾞｬ上にｵｰﾃﾞｨｵﾃﾞﾊﾞｲｽが認識されているか確認して下さい。

3

指定したﾄﾞﾗｲﾌﾞに十分な空き容量がありません。

4

動画ﾌｧｲﾙを作成できません。指定したﾌｧｲﾙが他のｱﾌﾟﾘｹｰｼｮﾝによって使用されていないか確認して下さい。

5

指定したﾊﾟｽは存在しません。ccdSetCaptureFile で指定したﾊﾟｽ名が正しいか再確認して下さい。

6

指定したﾌｧｲﾙ名の拡張子が AVI ではありません。

7

静止画ﾌｧｲﾙを作成できません。指定したﾌｧｲﾙが他のｱﾌﾟﾘｹｰｼｮﾝよって使用されていないか確認して下さい。

8

指定したﾊﾟｽは存在しません。ccdSnapShot で指定したﾊﾟｽ名が正しいか再確認して下さい。

9

指定したﾌｧｲﾙ名の拡張子が BMP ではありません。

10

無効なｶﾒﾗｲﾝﾃﾞｯｸｽが渡されました。ｲﾝﾃﾞｯｸｽ番号が有効か確認して下さい。

501

CcdEnumCamera の呼び出しが行われていません。

502

指定されたｶﾒﾗｲﾝﾃﾞｯｸｽ、ｽﾄﾘｰﾑｲﾝﾃﾞｯｸｽもしくはﾌﾚｰﾑﾚｰﾄｲﾝﾃﾞｯｸｽは無効です。

503

指定されたｶﾒﾗｲﾝﾃﾞｯｸｽは無効です。もしくはｶﾒﾗが接続されていません。

504

指定されたﾌﾟﾛﾊﾟﾃｨｲﾝﾃﾞｯｸｽが無効です。

Page.83

ccdSdk.ccdGet
ccdSdk.ccdGetSupportedFrameRate
ccdGetSupportedFrameRate
ActiveX インターフェイス
指定されたｶﾒﾗがｻﾎﾟｰﾄしているｽﾄﾘｰﾑｲﾝﾃﾞｯｸｽ番号・ﾌﾚｰﾑﾚｰﾄｲﾝﾃﾞｯｸｽ番号のﾌﾚｰﾑﾚｰﾄを取得。
構文
ccdGetSupportedFrameRate(lCameraIndex As Long, lStreamIndex As Long, lFrameRateIndex As

long,lpFrameRate As Long ) As Long

パラメータ
CameraIndex[in] ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 tCameraInfo 構造体参照。

lStreamIndex[in] ｽﾄﾘｰﾑｲﾝﾃﾞｯｸｽ番号を指定。

lFrameRateIndex[in] ﾌﾚｰﾑﾚｰﾄｲﾝﾃﾞｯｸｽ番号を指定。

lpFrameRate[out] ﾌﾚｰﾑﾚｰﾄの格納先変数。100 ﾅﾉ秒単位のﾌﾚｰﾑﾚｰﾄ。

戻り値以下のいずれかの値。
True

成功

False

失敗

注意
上記で取得した lpFrameRate[単位：100 ﾅﾉ秒/ﾌﾚｰﾑ]を[単位：ﾌﾚｰﾑ/秒]に変換するためには下記のように行います。
Dim lpFrameRate As Long, dFps As Double
dFps = 10000000# / lpFrameRate
cboFrameRate.AddItem Format$(dFps, "#.00")

関連
ccdEnumCamera, ccdGetCameraInfo, ccdGetConnectedCameraInfo, ccdGetCurrentFormat,
ccdGetSupportedStream, ccdSetStream, ccdSetFrameRate, ccdFreeCamera 参照。

Page.84

ccdSdk.cc
ccdSdk.ccdGet
ccdGetSupportedStream
dGetSupportedStream
ActiveX インターフェイス
指定されたｶﾒﾗがｻﾎﾟｰﾄしているｽﾄﾘｰﾑｲﾝﾃﾞｯｸｽ番号のﾌｫｰﾏｯﾄの種類とﾋﾟｸｾﾙｻｲｽﾞを取得。
構文
ccdGetSupportedStream(lCameraIndex As Long, lStreamIndex As Long,

lpFormat As long, lpPicSizeX As Long, lpPicSizeY As Long ) As Long

パラメータ
CameraIndex[in] ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 tCameraInfo 構造体参照。

lStreamIndex[in] ｽﾄﾘｰﾑｲﾝﾃﾞｯｸｽ番号を指定。

lpFormat[out] ﾌﾚｰﾑﾚｰﾄｲﾝﾃﾞｯｸｽ番号を指定。

lpPicSizeX[out] ﾋﾟｸｾﾙｻｲｽﾞ幅の格納先。

lpPicSizeY[out] ﾋﾟｸｾﾙｻｲｽﾞ高さの格納先。

戻り値
以下のいずれかの値。
True

成功

False

失敗

関連
ccdEnumCamera, ccdGetCameraInfo, ccdGetConnectedCameraInfo, ccdGetCurrentFormat,
ccdGetSupportedFrameRate, ccdSetStream, ccdSetFrameRate, ccdFreeCamera 参照。

Page.85

ccdSdk.ccdGetMemCh
ccdSdk.ccdGetMemCh
ActiveX インターフェイス
ｶﾒﾗ内部のﾒﾓﾘに記憶されている設定ﾃﾞｰﾀを読み出しｶﾒﾗに再設定。
構文
ccdGetMemCh(lCameraIndex As Long, lMemoryChannel As Long) As long

パラメータ
CameraIndex[in] ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 tCameraInfo 構造体参照。

lMemoryChannel[in] ｶﾒﾗ内部のﾒﾓﾘﾁｬﾝﾈﾙ番号を指定。

戻り値
以下のいずれかの値。
True

成功

False

失敗

注意
本機能の詳細に関しては CCD ｶﾒﾗのﾕｰｻﾞｰｽﾞｶﾞｲﾄﾞを参照願います。

関連
ccdSetMemChPage.86

ccdSdk.ccdGetProperty
ccdSdk.ccdGetProperty
ActiveX インターフェイス
Zoom/Focus 等ﾍﾞｰｽﾌﾟﾛﾊﾟﾃｨに関し、ｶﾒﾗより現在値を取得。
構文
ccdGetProperty(lCameraIndex As Long, lProperty As Long, lpValue As Long, fMode As Long) As Long

パラメータ
CameraIndex[in]ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 tCameraInfo 構造体参照。

Property[in]

BASE̲PROPERTY より現在の値を取得したいﾌﾟﾛﾊﾟﾃｨを指定。

lpValue[out] 指定したﾌﾟﾛﾊﾟﾃｨの値を格納する変数。

fMode
[in]

指定したﾌﾟﾛﾊﾟﾃｨの現在のﾓｰﾄﾞを指定。Camera Control Flag を使って指定。

戻り値
以下のいずれかの値。
True

成功

False

失敗

関連
ccdGetPropertyRange, ccdSetProperty, ccdGetColorRange, ccdGetColor, ccdSetColor 参照。

Page.87

ccdSdk.ccdGetPropertyRange
ccdSdk.ccdGetPropertyRange
ActiveX インターフェイス
Zoom/Focus 等ﾍﾞｰｽﾌﾟﾛﾊﾟﾃｨに関し、調整ﾚﾝｼﾞ情報を取得。
構文
ccdGetPropertyRange(lCameraIndex As Long, lProperty As Long, lpRangeMin As Long,

lpRangeMax As Long, lpRangeSteppingDelta As Long,
lpRangeDefault As Long, lpRangeCapsFlags As Long) As Long

パラメータ
lCameraIndex[in] ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 tCameraInfo 構造体参照。

lProperty[in] BASE̲PROPERTY よりﾚﾝｼﾞを取得するﾌﾟﾛﾊﾟﾃｨを指定。

lpRangeMin[out] 調整範囲の最小値。tCCDRangeValue 構造体参照。

lpRangeMax[out] 調整範囲の最大値。tCCDRangeValue 構造体参照。

lpRangeSteppingDelta[out] 1 ｽﾃｯﾌﾟ増分値。tCCDRangeValue 構造体参照。

lpRangeDefault[out]ﾃﾞﾌｫﾙﾄ値。tCCDRangeValue 構造体参照。

lpRangeCapsFlags[out] ﾋﾞｯﾄﾏｯﾌﾟで定義されたｻﾎﾟｰﾄﾓｰﾄﾞ。tCCDRangeValue 構造体参照。

戻り値
以下のいずれかの値。
True

成功

False

失敗

関連
ccdGetProperty, ccdSetProperty, ccdGetColorRange, ccdGetColor, ccdSetColor 参照。

Page.88

ccdSdk.ccdInitialize
ccdSdk.ccdInitialize
ActiveX インターフェイス
CCD SDK ActiveX の初期化処理。他のｲﾝﾀｰﾌｪｲｽﾗｲﾌﾞﾗﾘの呼び出しを行う前に必ず SDK ﾗｲﾌﾞ
ﾗﾘの初期化処理を行います。
構文
ccdInitialize

パラメータ
なし

戻り値
以下のいずれかの値。
True

成功

False

失敗

注意
ｱﾌﾟﾘｹｰｼｮﾝ終了時、必ず ccdUninitialize により CCD SDK ActiveX の終了処理を行います。

Page.89

ccdSdk.ccdPreviewPause
ccdSdk.ccdPreviewPause
ActiveX インターフェイス
指定されたｶﾒﾗのﾌﾟﾚﾋﾞｭｰをﾎﾟｰｽﾞ。
構文
ccdPreviewPause(lCameraIndex As Long) As Long

パラメータ
CameraIndex[in] ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 tCameraInfo 構造体参照。

戻り値
以下のいずれかの値。
True

成功

False

失敗

注意
ccdPreviewStart, ccdPreviewStop 参照。

Page.90

ccdSdk.ccdPreviewStart
ccdSdk.ccdPreviewStart
ActiveX インターフェイス
指定されたｶﾒﾗのﾌﾟﾚﾋﾞｭｰを開始。
構文
ccdPreviewStart(lCameraIndex As Long, hWnd As wireHWND) As Long

パラメータ
lCameraIndex[in] ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 tCameraInfo 構造体参照。

hWnd[in] ﾌﾟﾚﾋﾞｭｰｳｨﾝﾄﾞｳのﾊﾝﾄﾞﾙ。0 を渡した場合はﾃﾞﾌｫﾙﾄのﾌﾟﾚﾋﾞｭｰｳｨﾝﾄﾞｳが表示されます。

戻り値
以下のいずれかの値。
True

成功

False

失敗

注意
ccdPreviewStop, ccdPreviewPause 参照。

Page.91

ccdSdk.ccdPreviewStop
ccdSdk.ccdPreviewStop
ActiveX インターフェイス
指定されたｶﾒﾗのﾌﾟﾚﾋﾞｭｰを終了。
構文
ccdPreviewStop(lCameraIndex As Long) As Long

パラメータ
CameraIndex[out] ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 tCameraInfo 構造体参照。

戻り値
以下のいずれかの値。
True

成功

False

失敗

注意
ccdPreviewStart, ccdPreviewPause 参照。

Page.92

ccdSdk.ccd
ccdSdk.ccdReadRegister
ccdReadRegister
ActiveX インターフェイス
指定のｶﾒﾗのｵﾌｾｯﾄｱﾄﾞﾚｽから 4 ﾊﾞｲﾄ（Quadlet）ﾘｰﾄﾞ。
構文
ccdReadRegister
ccdReadRegister(lCameraIndex As long, lOffset As Long, lpValue As Long) As Long

パラメータ
CameraIndex[in]ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 tCameraInfo 構造体参照。

Offset[in]

ﾘｰﾄﾞするﾚｼﾞｽﾀのﾍﾞｰｽｱﾄﾞﾚｽからのﾊﾞｲﾄｵﾌｾｯﾄ。

lValue[out] ﾘｰﾄﾞした値の格納先ｱﾄﾞﾚｽ。

戻り値
以下のいずれかの値。
True

成功

False

失敗

注意
ccdReadRegister ﾒｿｯﾄﾞの Offset 引数は、CCD ｶﾒﾗのﾕｰｻﾞｰｽﾞｶﾞｲﾄﾞに示されているCameraControl & Status Register（CSR） のｱﾄﾞﾚｽを指定します。例えば、SONY DFW‑VL500 の場合 CSR
ｱﾄﾞﾚｽは F0F00000h からﾏｯﾋﾟﾝｸﾞされています。
CSR ｱﾄﾞﾚｽは、Configuration ROM の Unit Dependent Directory の command̲regs̲base とその
key̲type と Key̲value により求めることができます。
詳細は、IIDC Specification および IEEE 1212 ｱﾄﾞﾚｯｼﾝｸﾞ規格参照。

関連
ccdWriteRegister 参照。

Page.93

ccdSdk.ccd
ccdSdk.ccdSet
ccdSetAudio
SetAudio
ActiveX インターフェイス
動画のﾌﾟﾚﾋﾞｭｰおよび保存時、同時にｵｰﾃﾞｨｵﾃﾞｰﾀを有効にするか無効にするか設定。
構文
ccdSetAudio(lCameraIndex As Long, bAudioOn As Boolean) As Long

パラメータ
lCameraIndex[in] ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 tCameraInfo 構造体参照。

bAudioOn[in] ｵｰﾃﾞｨｵ入力の ON/OFF 設定。TRUE: ｵｰﾃﾞｨｵ ｵﾝ FALSE: ｵｰﾃﾞｨｵ ｵﾌ（ﾃﾞﾌｫﾙﾄ）

戻り値
以下のいずれかの値。
True

成功

False

失敗

Page.94

ccdSdk.ccdSet
ccdSdk.ccdSetCapture
ccdSetCaptureFile
CaptureFilename
Filename
ActiveX インターフェイス
動画を保存するﾌﾙﾊﾟｽﾌｧｲﾙ名と、ｷｬﾌﾟﾁｬﾌｧｲﾙ保存にﾃﾝﾎﾟﾗﾘﾌｧｲﾙを使用するか指定。ﾃﾝﾎﾟﾗﾘﾌ
ｧｲﾙを使用しない場合、ccdStartCapture によりｷｬﾌﾟﾁｬを開始すると第 2 引数で指定したﾌｧ
ｲﾙに直接動画ﾃﾞｰﾀが保存されます。
構文
ccdSetCaptureFilename(lCameraIndex As Long, bstrFilename As String,bTempFileOn As Boolean) As Long

パラメータ
lCameraIndex[in] ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 tCameraInfo 構造体参照。

bstrFilename[in] ｷｬﾌﾟﾁｬ出力名とﾌﾙﾊﾟｽを示す文字列。

bTempFileOn[in] ﾃﾝﾎﾟﾗﾘﾌｧｲﾙ設定ﾌﾗｸﾞ。TRUE: ﾃﾝﾎﾟﾗﾘﾌｧｲﾙ使用 FALSE: 直接指定ﾌｧｲﾙに保存（ﾃﾞﾌｫﾙﾄ）

戻り値
以下のいずれかの値。
True

成功

False

失敗

注意
ﾃﾝﾎﾟﾗﾘﾌｧｲﾙを使用する設定を行った場合は、基本的に ccdSetCaptureTempFile によりﾃﾝﾎﾟﾗﾘﾌｧｲ
ﾙの設定を行って下さい。ccdStopCapture によりｷｬﾌﾟﾁｬを停止すると、ﾃﾝﾎﾟﾗﾘﾌｧｲﾙから第 2 引数で指定したﾌｧｲﾙにｷｬﾌﾟﾁｬﾃﾞｰﾀがｺﾋﾟｰされます。

関連
ccdCaptureStart, ccdCaptureStop, ccdSetCaptureTempFile, ccdGetCopyFileProgress 参照。

Page.95

ccdSdk.ccdSet
ccdSdk.ccdSetCaptureTemp
ccdSetCaptureTempF
CaptureTempFile
ActiveX インターフェイス
ｷｬﾌﾟﾁｬ用のﾃﾝﾎﾟﾗﾘﾌｧｲﾙに関する設定。領域確保ｵﾝにすると、ｷｬﾌﾟﾁｬ実行前に予めﾊｰﾄﾞﾃﾞｨｽ
ｸ上に指定ｻｲｽﾞのﾝﾎﾟﾗﾘﾌｧｲﾙ領域が確保されｷｬﾌﾟﾁｬ実行時の負荷が小さくなります。
構文
ccdSetCaptureTemp
ccdSetCaptureTempFile
TempFile(lCameraIndex As Long, bstrFilename As String,bPreAllocOn As Boolean, lAllocMBytes As Long) As Long

パラメータ
lCameraIndex[in] ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 tCameraInfo 構造体参照。

bstrFilename[in] ｷｬﾌﾟﾁｬﾃﾝﾎﾟﾗﾘﾌｧｲﾙ名とﾌﾙﾊﾟｽを示す文字列。

bPreAllocOn[in] ﾌｧｲﾙｱﾛｹｰｼｮﾝ設定。TRUE: 領域確保ｵﾝ FALSE: 領域確保ｵﾌ（ﾃﾞﾌｫﾙﾄ）

lAllocMBytes[in] ﾊｰﾄﾞﾃﾞｨｽｸ上に領域確保するﾌｧｲﾙのｻｲｽﾞ(メガバイト単位)。

戻り値
以下のいずれかの値。
True

成功

False

失敗

注意
ﾊｰﾄﾞﾃﾞｨｽｸ上に予めｷｬﾌﾟﾁｬ領域を確保することにより、動画ｷｬﾌﾟﾁｬ時のｵｰﾊﾞｰﾍｯﾄﾞを最小にすることができます。第 2 引数のﾌｧｲﾙ名にを指定すると、環境変数 TEMP で定義されたﾌｫﾙﾀﾞにﾃﾞﾌ

ｫﾙﾄのﾌｧｲﾙ名「RSCCDTMP.AVI」でﾃﾝﾎﾟﾗﾘﾌｧｲﾙが作成されます。このﾃﾝﾎﾟﾗﾘﾌｧｲﾙはｺﾋﾟｰ終了時削除
されます。

関連
ccdCaptureStart, ccdCaptureStop, ccdSetCaptureFile, ccdGetCopyFileProgress 参照。

Page.96

ccdSdk.ccdSetColor
ccdSdk.ccdSetColor
ActiveX インターフェイス
UB/VR/Hue/Saturation に関するｶﾗｰﾌﾟﾛﾊﾟﾃｨについて、ｶﾒﾗの設定値を変更する。
構文
ccdSetColor (lCameraIndex As Long, lProperty As Long, lValue As Long,

fMode As Long)As Long

パラメータ
lCameraIndex[in]ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 tCameraInfo 構造体参照。

lProperty[in]

COLOR̲PROPERTY より現在の値を取得したいﾌﾟﾛﾊﾟﾃｨを指定。

lValue[in] 新たに設定するﾌﾟﾛﾊﾟﾃｨの値。fMode に fCameraControlAuto もしくはfCameraControlOnePush が指定されている時は無視されます。

fMode
[in]

指定したﾌﾟﾛﾊﾟﾃｨの現在のﾓｰﾄﾞを指定。Camera Control Flag を使って指定。

戻り値
以下のいずれかの値。
True

成功

False

失敗

注意
ccdGetPropertyRange, ccdGetProperty, ccdSetProperty, ccdGetColorRange, ccdGetColor 参照。

Page.97

ccdSdk.ccdSetFrameRate
ccdSdk.ccdSetFrameRate
ActiveX インターフェイス
指定されたｶﾒﾗから出力されるﾌﾚｰﾑﾚｰﾄを設定。
構文
ccdSetFrameRate(lCameraIndex As Long, lFrameRate As Long) As Long

パラメータ
CameraIndex[in]ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 tCameraInfo 構造体参照。

lFrameRate[in] 新しく設定するﾌﾚｰﾑﾚｰﾄのｲﾝﾃﾞｯｸｽ番号。tCameraInfo 構造体参照。

戻り値
以下のいずれかの値。
True

成功

False

失敗

関連
ccdEnumCamera, ccdGetCameraInfo, ccdGetConnectedCameraInfo, ccdGetCurrentFormat,
ccdGetSupportedFrameRate, ccdGetSupportedStream, ccdSetStream, ccdFreeCamera 参照。

Page.98

ccdSdk.ccdSetMemCh
ccdSdk.ccdSetMemCh
ActiveX インターフェイス
現在ｶﾒﾗに設定されているﾃﾞｰﾀをｶﾒﾗ内部のﾒﾓﾘに記憶。
構文
ccdS
ccdSetMemCh(lCameraIndex As Long, lMemoryChannel As Long) As long

パラメータ
CameraIndex[in] ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 tCameraInfo 構造体参照。

lMemoryChannel[in] ｶﾒﾗ内部のﾒﾓﾘﾁｬﾝﾈﾙ番号を指定。

戻り値
以下のいずれかの値。
True

成功

False

失敗

注意
本機能の詳細に関しては CCD ｶﾒﾗのﾕｰｻﾞｰｽﾞｶﾞｲﾄﾞを参照願います。

関連
ccdGetMemCh 参照。

Page.99

ccdSdk.ccd
ccdSdk.ccdMovieCompressor
ccdMovieCompressor
ActiveX インターフェイス
ｷｬﾌﾟﾁｬ保存するﾌｧｲﾙの圧縮形式を設定。ﾃﾞﾌｫﾙﾄでは無圧縮形式で保存されます。
構文
ccdSetMovieCompressor(lCameraIndex As Long, lCompIndex As Long, bstrCompName As String) As Long

パラメータ
lCameraIndex[in] ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 tCameraInfo 構造体参照。

lCompIndex[in] 圧縮ﾌｫｰﾏｯﾄを示すｲﾝﾃﾞｯｸｽ番号を COMPRESSOR̲FORMAT 構造体で指定。

bstrCompName[in] 圧縮ﾌｫｰﾏｯﾄ名が格納されている String 文字列。圧縮ﾌｫｰﾏｯﾄｲﾝﾃﾞｯｸｽ番号 lCompIndex に
SetByName が指定された場合は、この文字列で圧縮ﾌｫｰﾏｯﾄを指定します。圧縮ﾌｫｰﾏｯﾄ名は
DirectShow のﾌｨﾙﾀ名と一致する必要があります。SetByName 以外の圧縮ﾌｫｰﾏｯﾄｲﾝﾃﾞｯｸｽ番
号 lCompIndex を指定している場合は、0 を渡します。

戻り値
以下のいずれかの値。
True

成功

False

失敗

注意
非圧縮ﾃﾞｰﾀをそのままｷｬﾌﾟﾁｬした場合は、処理が間に合わずこま落ち等の問題が発生します。DVVideo Encoder 等の圧縮を行ってｷｬﾌﾟﾁｬすることによりこま落ち問題を改善することができます。

関連
ccdCaptureStart, ccdCaptureStop 参照。

Page.100

ccdSdk.ccdSetOverlay
ccdSdk.ccdSetOverlay
ActiveX インターフェイス
ｵｰﾊﾞｰﾚｲ機能のｲﾈｰﾌﾞﾙ・ﾃﾞｨｾｰﾌﾞﾙを設定。
構文
ccdSetOverlay(lCameraIndex As Long, bOverlayOn As Boolean) As Long

パラメータ
lCameraIndex[in] ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 tCameraInfo 構造体参照。

bOverlayOn[in] ｵｰﾊﾞｰﾚｲ機能の ON/OFF 設定。TRUE:ｵﾝ FALSE:ｵﾌ

戻り値
以下のいずれかの値。
True

成功

False

失敗

注意
1. ｵｰﾊﾞｰﾚｲ機能のｻﾎﾟｰﾄについてｵｰﾊﾞｰﾚｲ機能を有効にして CCD ｶﾒﾗからの動画ﾌﾟﾚﾋﾞｭｰを行うと、高速な動画表示が可能になります。ｵｰﾊﾞｰﾚｲ機能のｻﾎﾟｰﾄは使用しているｸﾞﾗﾌｨｯｸｱﾀﾞﾌﾟﾀに依存します。ｵｰﾊﾞｰﾚｲ機能がｻﾎﾟｰﾄされたｸﾞﾗﾌｨｯｸｱﾀﾞﾌﾟﾀでも、ｱﾀﾞﾌﾟﾀ側の問題によりﾌﾟﾚﾋﾞｭｰ画面の拡大縮小ができない場合があります。
2. 外部ﾄﾘｶﾞｰﾓｰﾄﾞについてｵｰﾊﾞｰﾚｲﾓｰﾄﾞを有効にした場合は、外部ﾄﾘｶﾞｰﾓｰﾄﾞは使用できません。

関連
ccdSetTrigger 参照。

Page.101

ccdSdk.ccdSetProperty
ccdSdk.ccdSetProperty
ActiveX インターフェイス
Zoom/Focus 等に関するﾍﾞｰｽﾌﾟﾛﾊﾟﾃｨについて、ｶﾒﾗの設定値を変更。
構文
ccdSetProperty(lCameraIndex As Long, lProperty As Long, lValue As Long, fMode As Long) As Long

パラメータ
lCameraIndex[in]ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 tCameraInfo 構造体参照。

lProperty[in]BASE̲PROPERTY より現在の値を取得したいﾌﾟﾛﾊﾟﾃｨを指定。

lValue[in] 新たに設定するﾌﾟﾛﾊﾟﾃｨの値。fMode に fCameraControlAuto もしくはfCameraControlOnePush が指定されている時は無視されます。

fMode
[in]

指定したﾌﾟﾛﾊﾟﾃｨの現在のﾓｰﾄﾞを指定。Camera Control Flag を使って指定。

戻り値
以下のいずれかの値。
True

成功

False

失敗

関連
ccdGetPropertyRange, ccdGetProperty, ccdGetColorRange, ccdGetColor, ccdSetColor 参照。

Page.102

ccdSdk.ccdSetStream
ccdSdk.ccdSetStream
ActiveX インターフェイス
指定されたｶﾒﾗから出力されるｽﾄﾘｰﾑﾌｫｰﾏｯﾄを設定。
構文
ccdSetStream(lCameraIndex As Long, lStreamIndex As Long) As Long

パラメータ
CameraIndex[in] ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 tCameraInfo 構造体参照。

StreamIndex[in] 新しく設定するｽﾄﾘｰﾑのｲﾝﾃﾞｯｸｽ番号。tCameraInfo 構造体参照。

戻り値
以下のいずれかの値。
True

成功

False

失敗

関連
ccdEnumCamera, ccdGetCameraInfo, ccdGetConnectedCameraInfo, ccdGetCurrentFormat,
ccdGetSupportedFrameRate, ccdGetSupportedStream, ccdSetFrameRate, ccdFreeCamera 参照。

Page.103

ccdSdk.ccd
ccdSdk.ccdWriteRegister
ccdWriteRegister
ActiveX インターフェイス
指定のｶﾒﾗのｵﾌｾｯﾄｱﾄﾞﾚｽに 4 ﾊﾞｲﾄ（Quadlet）ﾗｲﾄ。
構文
ccdWriteRegister
ccdWriteRegister(lCameraIndex As long, lOffset As Long, lValue As Long) As Long

パラメータ
CameraIndex[in]ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 tCameraInfo 構造体参照。

Offset[in]

ﾗｲﾄするﾚｼﾞｽﾀのﾍﾞｰｽｱﾄﾞﾚｽからのﾊﾞｲﾄｵﾌｾｯﾄ。

lValue[in]

ﾗｲﾄする値。

戻り値
以下のいずれかの値。
True

成功

False

失敗

注意
ccdWriteRegister ﾒｿｯﾄﾞの Offset 引数は、CCD ｶﾒﾗのﾕｰｻﾞｰｽﾞｶﾞｲﾄﾞに示されているCameraControl & Status Register（CSR） のｱﾄﾞﾚｽを指定します。例えば、SONY DFW‑VL500 の場合 CSR
ｱﾄﾞﾚｽは F0F00000h からﾏｯﾋﾟﾝｸﾞされています。
CSR ｱﾄﾞﾚｽは、Configuration ROM の Unit Dependent Directory の command̲regs̲base とその
key̲type と Key̲value により求めることができます。
詳細は、IIDC Specification および IEEE 1212 ｱﾄﾞﾚｯｼﾝｸﾞ規格参照。

関連
ccdReadRegister 参照。

Page.104

ccdSdk.ccdSetTrigger
ccdSdk.ccdSetTrigger
ActiveX インターフェイス
CCD ｶﾒﾗの外部ﾄﾘｶﾞｰﾓｰﾄﾞの ON/OFF を設定。
構文
ccdSetTrigger(lCameraIndex As Long, bTriggerOn As Boolean) As Long

パラメータ
lCameraIndex[in] ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 tCameraInfo 構造体参照。

bTriggerOn[in] 外部ﾄﾘｶﾞｰﾓｰﾄﾞの ON/OFF 設定。TRUE:ｵﾝ FALSE:ｵﾌ

戻り値
以下のいずれかの値。
True

成功

False

失敗

注意
1. ﾄﾘｶﾞｰ画像ﾃﾞｰﾀの遅れについて
外部ﾄﾘｶﾞｰﾓｰﾄﾞのｻﾎﾟｰﾄ有無は CCD ｶﾒﾗに依存します（詳細は CCD ｶﾒﾗのﾏﾆｭｱﾙを参照）。外部ﾄﾘｶﾞｰ
信号が CCD ｶﾒﾗに入力されると、CCD ｶﾒﾗより 1 ﾌﾚｰﾑの画像が送られます。この時、実際に外部信号が入力された時点の画像ﾃﾞｰﾀと、CCD ｶﾒﾗより送られた画像ﾃﾞｰﾀには 100 ﾐﾘ秒前後の遅れがあります。
2.ﾄﾘｶﾞｰｲﾍﾞﾝﾄの取得について
ｱﾌﾟﾘｹｰｼｮﾝがﾄﾘｶﾞｰの発生を検出するためには、外部ﾄﾘｶﾞｰ発生装置からのﾄﾘｶﾞｰ信号は CCD ｶﾒﾗに入力すると同時に、ﾃﾞｼﾞﾀﾙ I/O 入出力ﾕﾆｯﾄを介してﾊﾟｿｺﾝにも入力する必要があります。
例えば、外部ﾄﾘｶﾞｰﾓｰﾄﾞでﾌﾟﾚﾋﾞｭｰを実行した場合、外部ﾄﾘｶﾞｰの入力があると CCD ｶﾒﾗより 1 ﾌﾚｰ
ﾑの画像ﾃﾞｰﾀ送られ、ﾌﾟﾚﾋﾞｭｰ画面に 1 ﾌﾚｰﾑの静止画が表示されます。人がその画像を見てｽﾅｯﾌﾟ
ｼｮｯﾄを実行することはできますが、ｱﾌﾟﾘｹｰｼｮﾝが自動で外部ﾄﾘｶﾞｰを検出してｽﾅｯﾌﾟｼｮｯﾄを実行する場合は、ﾃﾞｼﾞﾀﾙ I/O 入出力ﾕﾆｯﾄが必要になります。
3.ｵｰﾊﾞｰﾚｲﾓｰﾄﾞについて
外部ﾄﾘｶﾞｰﾓｰﾄﾞを有効にした場合は、ｵｰﾊﾞｰﾚｲ描画はできません。ccdSetOverlay 参照。

Page.105

ccdSdk.ccdShowPropertyPage
ccdSdk.ccdShowPropertyPage
ActiveX インターフェイス
ｶﾒﾗﾄﾞﾗｲﾊﾞのﾌﾟﾛﾊﾟﾃｨﾍﾟｰｼﾞを表示。
構文
ccdShowPropertyPage(lCameraIndex As Long)

パラメータ
lCameraIndex[in] ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 tCameraInfo 構造体参照。

戻り値
以下のいずれかの値。
True

成功

False

失敗

注意
ｶﾒﾗﾄﾞﾗｲﾊﾞのﾌﾟﾛﾊﾟﾃｨﾍﾟｰｼﾞを右に示します。

関連
ccdGetPropertyRange, ccdGetProperty, ccdGetColorRange, ccdGetColor, ccdSetColor 参照。

Page.106

ccdSdk.ccdSnapshot
ccdSdk.ccdSnapshot
ActiveX インターフェイス
現在表示されているﾌﾚｰﾑを静止画ﾋﾞｯﾄﾏｯﾌﾟﾌｧｲﾙに保存。
構文
ccdSnapshot(lCameraIndex As Long, bstrFilename As String) As Long

パラメータ
lCameraIndex[in] ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 tCameraInfo 構造体参照。

bstrFilename[in] 出力ﾌｧｲﾙ名が格納されている文字列

戻り値
以下のいずれかの値。
True

成功

False

失敗

注意
ｽﾅｯﾌﾟｼｮｯﾄしたﾌﾚｰﾑはｶﾗｰ CCD の場合は RGB24、ﾓﾉｸﾛ CCD の場合は RGB8 ﾌｫｰﾏｯﾄで保存されます。

Page.107

ccdSdk.ccdCapture
ccdSdk.ccdCaptureStart
ccdCaptureStart
ActiveX インターフェイス
指定されたｶﾒﾗより現在設定されたｽﾄﾘｰﾑ・ﾌﾚｰﾑﾚｰﾄで動画保存を開始。
構文
ccdCaptureStart
ccdCaptureStart(lCameraIndex As Long) As Long

パラメータ
lCameraIndex[in] ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 tCameraInfo 構造体参照。

戻り値
以下のいずれかの値。
True

成功

False

失敗

注意
ccdSetCaptureFilename のﾃﾝﾎﾟﾗﾘﾌｧｲﾙ設定ﾌﾗｸﾞが True の場合は、一旦ﾃﾝﾎﾟﾗﾘﾌｧｲﾙに動画が保存
されます。

関連
ccdSetCaptureFilename, ccdSetCaptureTempFile, ccdCaptureStop 参照。

Page.108

ccdSdk.ccdCapture
ccdSdk.ccdCaptureStop
ccdCaptureStop
ActiveX インターフェイス
動画保存を終了。
構文
ccdCaptureStop
ccdCaptureStop(lCameraIndex As Long) As Long

パラメータ
lCameraIndex[in] ﾀｰｹﾞｯﾄのｶﾒﾗをｲﾝﾃﾞｯｸｽ番号で指定。 tCameraInfo 構造体参照。

戻り値
以下のいずれかの値。
True

成功

False

失敗

注意
ccdSetCaptureFilename のﾃﾝﾎﾟﾗﾘﾌｧｲﾙ設定ﾌﾗｸﾞが True の場合は、ﾃﾝﾎﾟﾗﾘﾌｧｲﾙに保存された動画が ccdSetCaptureFilename で指定したﾌｧｲﾙにｺﾋﾟｰします。ccdGetCopyFileProgress を呼び出し、
何%ｺﾋﾟｰが終了したが進捗情報を取得することができます。

関連
ccdSetCaptureFilename, ccdSetCaptureTempFile,

ccdCaptureStart, ccdGetCopyFileProgress 参照。

Page.109

ccdSdk.ccdUninitialize
ccdSdk.ccdUninitialize
ActiveX インターフェイス
CCD SDK ActiveX の終了処理を行う。
構文
ccdUninitialize

パラメータ
なし

戻り値
以下のいずれかの値。
True

成功

False

失敗

注意
ccdInitialize 参照。

Page.110

4-2. 構造体・Flag 定義仕様

tCameraInfo,tSupportedStream,tPixel
Public Const MAX̲NUMBER̲OF̲CAMERAS = 20
Public Const MAX̲NUMBER̲OF̲STREAM = 10
Public Const MAX̲NUMBER̲OF̲FRAMERATE = 8

Public Type tCameraInfo
CameraIndex As LongszCameraName As String
SupportedStream(MAX̲NUMBER̲OF̲STREAM)
As tSupportedStream
SupportedStream
End Type
CameraIndex

列挙した CCD ｶﾒﾗの 0 から始まるｲﾝﾃﾞｯｸｽ番号。

szCameraName

CCD ｶﾒﾗ名が格納される文字列ﾊﾞｯﾌｧ。

SupportedStream

CCD ｶ ﾒ ﾗ が ｻ ﾎ ﾟ ｰ ﾄ す る ﾋ ﾞﾃ ﾞ ｵ ﾓ ｰ ﾄ ﾞ 。 各 ﾋ ﾞ ﾃ ﾞ ｵ ﾓ ｰ ﾄ ﾞ の 詳 細 に つ いて は
tSupportedStream 構造体参照。配列の要素番号がｽﾄﾘｰﾑのｲﾝﾃﾞｯｸｽ番号に相当。

Public Type tSupportedStream
SupportedFormat As Long
SupportedPixSize As tPixel
SupportedFrameRate(MAX̲NUMBER̲OF̲FRAMERATE)As Long
SupportedFrameRate
End Type
SupportedFormat

CCD ｶﾒﾗがｻﾎﾟｰﾄしているﾌｫｰﾏｯﾄを示すｲﾝﾃﾞｯｸｽ番号。ｲﾝﾃﾞｯｸｽ番号は
PIXELFORMAT Enum 構造体の番号になります。
番号
ﾌｫｰﾏｯﾄ4

3

2

YUV(4:1:1) YUV(4:2:2) YUV(4:4:4)

1

0

Y(MONO)

RGB32

SupportedPixSize

CCD ｶﾒﾗがｻﾎﾟｰﾄしている上記ﾌｫｰﾏｯﾄ時のﾋﾟｸｾﾙｻｲｽﾞ。

SupportedStream

CCD ｶﾒﾗがｻﾎﾟｰﾄしている上記ﾌｫｰﾏｯﾄ時の 100 ﾅﾉ秒単位のﾌﾚｰﾑﾚｰﾄ。配列の要素番号がﾌﾚｰﾑﾚｰﾄのｲﾝﾃﾞｯｸｽ番号に相当。

Public Type tPixel
cx As Longcy As LongEnd Typecx

幅方向のﾋﾟｸｾﾙｻｲｽﾞ

cy

高さ方向のﾋﾟｸｾﾙｻｲｽﾞ

Page.111

tCCDRangeValue
Public Type tCCDRangeValue
Min As Long
Max As Long
SteppingDelta As Long
Default As Long
CapsFlags As LongEnd TypeMin

設定可能な最小値。

Max

設定可能な最大値。

SteppingDelta

1 ｽﾃｯﾌﾟ増分値。

Default

ﾃﾞﾌｫﾙﾄ値。

CapsFlags

ﾋﾞｯﾄﾏｯﾌﾟで定義されたｻﾎﾟｰﾄﾓｰﾄﾞ。

関連
ccdGetPropertyRange, ccdGetProperty, ccdSetProperty, ccdGetColorRange, ccdGetColor, ccdSetColor 参照

Page.112

BASE̲PROPERTY
Public Enum BASE̲PROPERTY
Focus = 0
Zoom
Brightness
Sharpness
Gamma
Autoexp
ShutterGain
Iris
End Enum

関連
ccdGetPropertyRange, ccdGetProperty, ccdSetProperty, ccdGetColorRange, ccdGetColor, ccdSetColor 参照

COLOR̲PROPERTY
Public Enum COLOR̲PROPERTYUB = 0VR
Hue
Saturation
End Enum

関連
ccdGetColorRange, ccdGetColor, ccdSetColor 参照

Page.113

PIXEL̲PIXEL̲FORMAT
Public Enum PIXEL̲FORMAT
FormatRGB24 = 0
FormatY800
FormatY444
FormatY422
FormatY411
End Enum

関連
tCameraInfo 構造体の tSupportedStream 型構造体ﾒﾝﾊﾞｰ SupportedStream のﾒﾝﾊﾞｰ SupportedFormat は、
上記の Enum 構造体の番号でｱｻｲﾝすることができます。

COMPRESSOR̲FORMATCOMPRESSOR̲FORMAT
Public Enum COMPRESSOR̲FORMAT
SetByName = 0
NoCompressor
MSVideo
Indeo
Cinepak
DVVideoEncode
End Enum

関連
ccdSetMovieCompressor 参照

Page.114

Camera Control Flag
Public Const MAX̲NUMBER̲OF̲CAMERAS = 20
Public Const MAX̲NUMBER̲OF̲STREAM = 10
Public Const MAX̲NUMBER̲OF̲FRAMERATE = 8
Public Const fCameraControlAuto = 1
Public Const fCameraControlManual = 2
Public Const fCameraControlOnePush = 4
Public Const fCameraControlOn = 8
Public Const fCameraControlOff = 16
Public Const fFeatureControlAbsolute = 0
Public Const fFeatureControlRelative= 16

Public Const strCcdAttach = "CCD̲ATTACH"
Public Const strCcdRemove = "CCD̲REMOVE"

関連
ccdGetProperty, ccdSetProperty,ccdGetColor, ccdSetColor 参照

Page.115

4-3. Visual Basic プログラム作成方法（4-3-1）プログラム作成の準備
Visual BASIC でﾌﾟﾛｸﾞﾗﾑを作成する場合は最初に下記手順で CCD SDK ActiveX の組み込みを行います。
STEP.1
Microsoft Visual BASIC 6.0 を起動します。
新しいﾌﾟﾛｼﾞｪｸﾄを作成します。
「ﾌﾟﾛｼﾞｪｸﾄ」ﾒ
ﾆｭｰの「ｺﾝﾎﾟｰﾈﾝﾄ」を選択します。右ﾀﾞｲｱﾛｸﾞの「挿入可能なｵﾌﾞｼﾞｪｸﾄ」ﾀｸﾞを開き、「VBCCDSDK 1.0 ﾀｲﾌﾟﾗｲﾌﾞﾗﾘ」をﾁｪｯｸし「OK」ﾎﾞﾀﾝをｸﾘｯｸします。

STEP.2
ｺﾝﾄﾛｰﾙﾊﾞｰに右のように CCD SDK ActiveX が追加されていることを確認します。

STEP.3
通常のﾎﾞﾀﾝｺﾝﾄﾛｰﾙと同じ要領でﾌｫｰﾑに CCD
SDK を貼り付けます。ﾌﾟﾛｸﾞﾗﾑ実行時に CCD
SDK が 表 示 さ れ な い よ う に 、 ﾌ ﾟ ﾛ ﾊ ﾟ ﾃ ｨ の「Visible」を False に変更します。

Page.116

STEP.4
Step.3 のﾌｫｰﾑに貼り付けた「CCDSdk」をﾀﾞﾌﾞﾙｸﾘｯｸすると右のｺｰﾄﾞｳｨﾝﾄﾞｳが表示されます。ここには CCD ｶﾒﾗが取り外されたり、接続されたときのｲﾍﾞﾝﾄ処理を追加します。

STEP.5
CCD SDK CD-ROM の「ForVB¥Module」ﾌｫﾙﾀﾞにある「RSCCDSDK.BAS」をﾌﾟﾛｼﾞｪｸﾄに追加します。
「ﾌﾟﾛｼﾞｪｸﾄ」ﾒﾆｭｰの「標準ﾓｼﾞｭｰﾙの追加」を選択し、「既存のﾌｧｲﾙ」ﾀｸﾞを開きます。ﾌﾟﾛｼﾞ
ｪｸﾄﾌｫﾙﾀﾞに予めｺﾋﾟｰしておいた「RSCCDSDK.BAS」を選択し「開く」ﾎﾞﾀﾝ
をｸﾘｯｸします。

以上で基本的な準備作業は終了です。

Page.117（4‑3‑2）VB サンプルプログラム解説
EnumCamera ｻﾝﾌﾟﾙﾌﾟﾛｸﾞﾗﾑ：CD‑ROM¥ForVB¥Sample¥EnumCamera¥Form1.frm
EnumCamera ｻﾝﾌﾟﾙﾌﾟﾛｸﾞﾗﾑは接続されている CCD ｶﾒﾗをｽｷｬﾝ
し、ｶﾒﾗ選択ｺﾝﾎﾞﾎﾞｯｸｽに CCD ｶﾒﾗのﾕﾆｰｸな識別名称を、ﾌｫｰﾏｯﾄ
及びﾌﾚｰﾑﾚｰﾄｺﾝﾎﾞﾎﾞｯｸｽに選択されているｶﾒﾗがｻﾎﾟｰﾄしている
ﾌｫｰﾏｯﾄ・ﾌﾚｰﾑﾚｰﾄをｾｯﾄします。
また、ｶﾒﾗの取り外しもしくは新たに接続された時に、CCD
SDK ActiveX より送られるｲﾍﾞﾝﾄに対する応答処理を行います。
ﾌﾟﾚﾋﾞｭｰﾎﾞﾀﾝにより、選択されている CCD ｶﾒﾗのﾌﾟﾚﾋﾞｭｰを行います。
以下に、EnumCamera ｻﾝﾌﾟﾙﾌﾟﾛｸﾞﾗﾑの骨格について解説します。ﾌﾟﾛｸﾞﾗﾑの詳細についてはｿｰｽﾞｺｰﾄﾞを参照して下さい。

ﾌｫｰﾑがﾛｰﾄﾞされた時の処理
RSCCDSDK.BAS のﾌｧﾝｸｼｮﾝ ccdGetConnectedCameraInfo
ccdGetConnectedCameraInfo を呼び出すことにより、tCameraInfo 型構造体に配列 gCameraInfo(MAX̲NUMBER̲OF̲CAMERAS)に接続されている全てのｶﾒﾗの情報がｾｯﾄされます。各ｺﾝﾎﾞ
ﾎﾞｯｸｽのｽﾄﾘｰﾑﾌｫｰﾏｯﾄ情報は gCameraInfo にｾｯﾄされた内容を元にして更新表示することになります。
Option Explicit
Option Base 0
Private Sub Form̲Load()Form̲Load
ccdSdk1.ccdInitialize
Call Refresh̲CameraInfo
End Sub
Public Sub Refresh̲CameraInfo()
Refresh̲CameraInfo
Call ccdGetConnectedCameraInfo
Call Refresh̲cboCameraName
CameraIndex = 0
cboCameraName.ListIndex = CameraIndex
Status = ccdSdk1.ccdGetCurrentFormat
ccdSdk1.ccdGetCurrentFormat(CameraIndex,
CurrentStreamIndex, FrameRateIndex)
Call Refresh̲cboFormat(CameraIndex)
Call Refresh̲cboFrameRate(CameraIndex, CurrentStreamIndex)
End Sub

変数未定義ｴﾗｰとする
配列を 0 ｵﾘｼﾞﾝとする
CCD SDK の初期化

RSCCDSDK.BAS のﾌｧﾝｸｼｮﾝｺｰﾙ
ｶﾒﾗ情報を取得し gCameraInfo にｾｰﾌﾞ
ｶﾒﾗ選択ｺﾝﾎﾞの内容作成
1 台目のｶﾒﾗを選択
1 台目のｶﾒﾗから現在設定されているｽﾄﾘｰﾑとﾌﾚｰﾑﾚｰﾄを取得
ﾌｫｰﾏｯﾄｺﾝﾎﾞの内容作成
ﾌﾚｰﾑﾚｰﾄｺﾝﾎﾞﾎﾞｯｸｽの内容作成

ｶﾒﾗｲﾍﾞﾝﾄの処理
新しくｶﾒﾗが接続させると bstr に文字列"CCD̲ATTACH"がｾｯﾄされ ccdSdk1̲OnDevicechange の処理が呼び出されます。ｶﾒﾗが取り外された場合は、bstr
bstr には"CCD̲REMOVE"がｾｯﾄされます。
Private Sub ccdSdk1̲OnDevicechange(ByVal
bstr As String)
ccdSdk1̲OnDevicechange
If StrComp(bstrbstr,
bstr strCcdAttach, vbTextCompare) = 0 Then
ccdSdk1.ccdFreeCamera
Call Refresh̲CameraInfo
Exit Sub
ElseIf StrComp(bstrbstr,
bstr strCcdRemove, vbTextCompare) = 0 Then
ccdSdk1.ccdFreeCamera

RSCCDSDK.BAS で定義された文字列
strCcdAttach と比較し一致すれば接続発生
全てのﾘｿｰｽを解放
ｶﾒﾗの列挙処理
StrCcdRemove と一致すれば取り外し発生
全てのﾘｿｰｽを解放Page.118
Call Refresh̲CameraInfo
Exit SubEnd IfEnd Sub
Public Sub Refresh̲CameraInfo()
On Error GoTo ErrorHandler
Call ccdGetConnectedCameraInfo

Call Refresh̲cboCameraName
CameraIndex = 0
cboCameraName.ListIndex = CameraIndex
Status = ccdSdk1.ccdGetCurrentFormat(CameraIndex,
ccdSdk1.ccdGetCurrentFormat
CurrentStreamIndex, FrameRateIndex)
Call Refresh̲cboFormat(CameraIndex)
cboFormat.ListIndex = CurrentStreamIndex
Call Refresh̲cboFrameRate(CameraIndex, CurrentStreamIndex)
cboFrameRate.ListIndex = FrameRateIndex
Exit Sub
ErrorHandler:
MsgBox "Refresh camera info failed"
End Sub

ｶﾒﾗの列挙処理

現在接続されている全てのｶﾒﾗ情報を取得しgCameraInfo にｾｰﾌﾞ'
RSCCDSDK.BAS で定義されているﾌｧﾝｸｼｮﾝｺｰﾙ
ｶﾒﾗｺﾝﾎﾞﾎﾞｯｸｽのﾘｽﾄ内容作成

一台目のｶﾒﾗについて現在設定されているﾌｫｰ
ﾏｯﾄを取得ﾌｫｰﾏｯﾄｺﾝﾎﾞﾎﾞｯｸｽの内容作成
ﾌﾚｰﾑﾚｰﾄｺﾝﾎﾞﾎﾞｯｸｽの内容作成

ｶﾒﾗﾌﾟﾚﾋﾞｭｰの処理
Private Sub btnPreview̲Click()
btnPreview̲Click
CameraIndex = cboCameraName.ListIndex
If chkOverlay.Value = 1 Then
Status = ccdSdk1.ccdSetOverlay(CameraIndex,
True)
ccdSdk1.ccdSetOverlay
Else
Status = ccdSdk1.ccdSetOverlay(CameraIndex,
False)
ccdSdk1.ccdSetOverlay
End IfStatus = ccdSdk1.ccdPreviewStart(CameraIndex,
0)
ccdSdk1.ccdPreviewStart
End Sub
Private Sub btnStop̲Click()
btnStop̲Click
CameraIndex = cboCameraName.ListIndex
Status = ccdSdk1.ccdPreviewStop(CameraIndex)
ccdSdk1.ccdPreviewStop
End Subｵｰﾊﾞｰﾚｲ描画機能をｲﾈｰﾌﾞﾙ

ﾌﾟﾚﾋﾞｭｰ開始

WhiteBalance の OnePush 自動調整処理
Private Sub btnOnePush̲Click()
CameraIndex = cboCameraName.ListIndex
Status = ccdSdk1.ccdGetColor(CameraIndex,
UB, colVal, 0)
ccdSdk1.ccdGetColor
Status = ccdSdk1.ccdSetColor(CameraIndex,
UB, colVal,
ccdSdk1.ccdSetColor
fCameraControlOnePush)
fCameraControlOnePush
Status = ccdSdk1.ccdGetColor(CameraIndex,
VR, colVal, 0)
ccdSdk1.ccdGetColor
Status = ccdSdk1.ccdSetColor(CameraIndex,
VR, colVal,
ccdSdk1.ccdSetColor
fCameraControlOnePush)
CameraControlOnePush
End Sub

現在の U̲Value/B̲Value 値取得
OnePush 自動調整
現在の V̲Value/R̲Value 値取得
OnePush 自動調整

ﾌﾟﾛｸﾞﾗﾑ終了処理
ﾌﾟﾛｸﾞﾗﾑ終了時にはﾌﾟﾚﾋﾞｭｰ等の動作を停止した後に、ｶﾒﾗﾘｿｰｽの解放、CCD SDK の終了処理が必要です。
Private Sub Form̲Unload(Cancel
As Integer)
Form̲Unload
CameraIndex = cboCameraName.ListIndex
Status = ccdSdk1.ccdPreviewStop
ccdSdk1.ccdPreviewStop(CameraIndex)
PreviewStop
ccdSdk1.ccdFreeCamera
ccdSdk1.ccdUninitialize
Unload Me
End Sub

念の為にﾌﾟﾚﾋﾞｭｰ停止
ｶﾒﾗﾘｿｰｽの解放
CCD SDK の終了処理

Page.119

SnapShot ｻﾝﾌﾟﾙﾌﾟﾛｸﾞﾗﾑ：CD-ROM¥ForVB¥Sample¥Snapshot¥Form1.frm
ﾌﾟﾚﾋﾞｭｰ状態で保存ﾌｧｲﾙ名をを拡張子「.bmp」として入力し、「ｽﾅｯﾌﾟｼｮｯﾄ」ﾎﾞﾀﾝを押すと静止画が保存され、同時にﾋﾟｸﾁｬｰﾎﾞｯ
ｸｽに保存した BMP ﾌｧｲﾙが表示されます。
ｵｰﾊﾞｰﾚｲと外部ﾄﾘｶﾞｰは両方同時にｲﾈｰﾌﾞﾙにすることはできません。
以下、EnumCamera ｻﾝﾌﾟﾙﾌﾟﾛｸﾞ
ﾗﾑと異なる点のみを解説します。

ﾌﾟﾚﾋﾞｭｰ実行時の処理
Private Sub btnPreview̲Click()
btnPreview̲Click
CameraIndex = cboCameraName.ListIndex
If chkOverlay.Value = 1 Then
Status = ccdSdk1.ccdSetOverlay(CameraIndex,
True)
ccdSdk1.ccdSetOverlay
Else
Status = ccdSdk1.ccdSetOverlay(CameraIndex,
False)
ccdSdk1.ccdSetOverlay
End If
If ChkTrigger.Value = 0 Then
Status = ccdSdk1.ccdSetTrigger(CameraIndex,
False)
ccdSdk1.ccdSetTrigger
Else
Status = ccdSdk1.ccdSetTrigger
True)
ccdSdk1.ccdSetTrigger(CameraIndex,
Sdk1.ccdSetTrigger
End IfStatus = ccdSdk1.ccdPreviewStart(CameraIndex,
0)
ccdSdk1.ccdPreviewStart
End Sub

外部ﾄﾘｶﾞｰﾓｰﾄﾞ設定

ｽﾅｯﾌﾟｼｮｯﾄ実行時の処理
Private Sub btnSnapShot̲Click()
btnSnapShot̲Click
CameraIndex = cboCameraName.ListIndex
bmpfile = editFileName.Text
Status = ccdSdk1.ccdSnapshot(CameraIndex,
bmpfile)ccdSdk1.ccdSnapshot
ImagePicture.Picture = LoadPicture()
ImagePicture.Stretch = True
ImagePicture.Picture = LoadPicture(editFileName)
End Sub

1 ﾌﾚｰﾑを BMP ﾌｧｲﾙに保存

BMP ﾌｧｲﾙの表示

Page.120

Capture ｻﾝﾌﾟﾙﾌﾟﾛｸﾞﾗﾑ：CD-ROM¥ForVB¥Sample¥Capture¥Form1.frm「ﾌﾟﾚﾋﾞｭｰ」を実行するとﾀﾞｲｱﾛ
ｸﾞ内のﾋﾟｸﾁｬｰﾎﾞｯｸｽに動画が表示されます。
「ｷｬﾌﾟﾁｬ」ﾎﾞﾀﾝをｸﾘｯｸする前に保存する動画ﾌｧｲﾙ
名を入力し「前処理」ﾎﾞﾀﾝをｸﾘｯｸします。
前処理を実行すると「ｷｬﾌﾟﾁｬ領域確保」のﾁｪｯｸﾎﾞｯｸｽにﾁｪｯｸを入れている場合は、予めﾊｰﾄﾞﾃﾞｨｽ
ｸに 200M ﾊﾞｲﾄのﾌｧｲﾙ領域が確保されます。ｷｬﾌﾟﾁｬ実行時、ﾃﾝ
ﾎﾟﾗﾘﾌｧｲﾙに一時的に動画が保存されます。ｷｬﾌﾟﾁｬを停止すると、
ﾃﾝﾎﾟﾗﾘﾌｧｲﾙからｷｬﾌﾟﾁｬﾌｧｲﾙ名で指定したﾌｧｲﾙに動画ﾃﾞｰﾀがｺﾋﾟｰされます。

EnumCamera ｻﾝﾌﾟﾙﾌﾟﾛｸﾞﾗﾑと異なる点のみを解説します。
前処理ﾎﾞﾀﾝを押した時の処理
Private Sub btnPreCapture̲Click()
btnPreCapture̲Click
CameraIndex = cboCameraName.ListIndex
avifile = editFileName.Text
Status = ccdSdk1.ccdSetCaptureFile(CameraIndex, avifile, True)
If chkAllocate.Value <> 0 Then
AllocMBytes = 200
tempfile = "c:¥temp.avi"
Status = ccdSdk1.ccdSetCaptureTempFile(CameraIndex, tempfile, True, AllocMBytes)
Else
tempfile = ""Status = ccdSdk1.ccdSetCaptureTempFile(CameraIndex, tempfile, False, 0)
End IfIf OptDvEncode.Value = 1 Then
Status = ccdSdk1.ccdSetMovieCompressor(CameraIndex, NoCompressor, 0)
ElseCompressor = "DV Video Encoder"
Status = ccdSdk1.ccdSetMovieCompressor(CameraIndex, SetByName, Compressor)
End If

ｷｬﾌﾟﾁｬﾌｧｲﾙ設定。ｷｬﾌﾟﾁｬ時ﾃﾝﾎﾟﾗﾘﾌｧｲﾙを使用する。
ﾃﾝﾎﾟﾗﾘﾌｧｲﾙの設定
ﾃﾝﾎﾟﾗﾘﾌｧｲﾙ領域は仮に 200M とする

ﾃﾝﾎﾟﾗﾘﾌｧｲﾙは使用するが、領域確保はせず、保存場所は環境変数 TEMP で示された場所

圧縮ﾌｫｰﾏｯﾄ指定

Page.121
If ChkAudio.Value <> 0 Then
Status = ccdSdk1.ccdSetAudio(CameraIndex,
True)
ccdSdk1.ccdSetAudio
Else
Status = ccdSdk1.ccdSetAudio(CameraIndex,
False)
ccdSdk1.ccdSetAudio
End IfEnd Sub

Audio ｷｬﾌﾟﾁｬの設定

ｷｬﾌﾟﾁｬｰ実行時の処理
Private Sub btnCaptureStart̲Click()btnCaptureStart̲Click
CameraIndex = cboCameraName.ListIndex
If ChkPreview.Value <> 0 Then
Status = ccdSdk1.ccdCaptureStart(CameraIndex, True, picVideoWindow.hWnd)
Else
Status = ccdSdk1.ccdCaptureStart(CameraIndex, False, picVideoWindow.hWnd)
End IfEnd Sub

ｷｬﾌﾟﾁｬｰ実行とｷｬﾌﾟﾁｬｰ時のﾌﾟﾚﾋﾞｭｰ設定
ｷｬﾌﾟﾁｬ開始

ｷｬﾌﾟﾁｬｰ停止時の処理
Private Sub btnCaptureStop̲Click()
CameraIndex = cboCameraName.ListIndex
Status = ccdSdk1.ccdCaptureStop(CameraIndex)
ccdSdk1.ccdCaptureStop
Form3.Show
End Sub

ｷｬﾌﾟﾁｬ停止
ｺﾋﾟｰﾌﾟﾛｸﾞﾚｽﾀﾞｲｱﾛｸﾞ表示

ｺﾋﾟｰﾌﾟﾛｸﾞﾚｽﾀｲﾏｰｲﾍﾞﾝﾄ処理
Private Sub CopyTimer̲Timer()
CopyTimer̲Timer
Dim Status As Long
Dim CopyProgress As Long
CameraIndex = Form1.cboCameraName.ListIndex
Status = Form1.ccdSdk1.ccdGetCopyFileProgress
ccdSdk1.ccdGetCopyFileProgress(CameraIndex, CopyProgress)
If CopyProgress >= 100 Then
CopyTimer.Interval = 0
Unload Form3
Else
CopyProgressBar.Value = CopyProgress
End IfEnd Sub

ｺﾋﾟｰ進捗情報取得
完了判定

ｺﾋﾟｰﾌﾟﾛｸﾞﾚｽ表示更新

Page.122

Functions ｻﾝﾌﾟﾙﾌﾟﾛｸﾞﾗﾑ：CD-ROM¥ForVB¥Sample¥Functions¥Form1.frm
その他の CCD SDK ActiveX のｲﾝﾀｰﾌｪｲｽの使い方について解説します。

ｶﾒﾗﾌﾟﾛﾊﾟﾃｨのｺﾝﾄﾛｰﾙ
ZOOM ﾎﾞﾀﾝをｸﾘｯｸすることにより右のﾌｫｰﾑが表示されます。Zoom,Focus のﾌﾟﾛﾊﾟﾃｨ制御方法を例にしたｻﾝﾌﾟﾙです。全てのﾌﾟﾛﾊﾟﾃｨは全く同様の手法でｺﾝﾄﾛｰﾙすることができます。
ccdGetPropertyRange, ccdGetProperty,
ccdSetProperty, ccdGetColorRange
ccdGetColor, ccdSetColor のｲﾝﾀｰﾌｪｲｽに関するｻﾝﾌﾟﾙﾌﾟﾛｸﾞﾗﾑです。

Private Sub Form̲Load()Form̲Load
CameraIndex = Form1.cboCameraName.ListIndex
Status = Form1.ccdSdk1.ccdGetPropertyRange
ccdSdk1.ccdGetPropertyRange(CameraIndex,
Zoom, ̲tZoomRange.Min, ̲tZoomRange.Max, ̲tZoomRange.SteppingDelta, ̲tZoomRange.Default, ̲tZoomRange.Default)
txtZoomMin = tZoomRange.Min
txtZoomMax = tZoomRange.Max
Status = Form1.ccdSdk1.ccdGetProperty
ccdSdk1.ccdGetProperty(CameraIndex, Zoom, CurrentValue, 0)HScrollZoom.Min = tZoomRange.Min
HScrollZoom.Max = tZoomRange.Max
HScrollZoom.Value = CurrentValueEnd Sub

ｽﾞｰﾑのﾚﾝｼﾞ取得

ｽｸﾛｰﾙﾊﾞｰ設定

ｽﾞｰﾑの現在値取得

ｽﾞｰﾑｽｸﾛｰﾙﾊﾞｰ設定

Page.123
Private Sub HScrollZoom̲Change()
HScrollZoom̲Change
CameraIndex = Form1.cboCameraName.ListIndex
sVal = HScrollZoom.Value
Status = Form1.ccdSdk1.ccdSetProperty
ccdSdk1.ccdSetProperty(lCameraIndex, Zoom, sVal, 0)
End Sub
Private Sub btnOnePush̲Click()btnOnePush̲Click
CameraIndex = Form1.cboCameraName.ListIndex
Status = Form1.ccdSdk1.ccdGetColor
ccdSdk1.ccdGetColor(lCameraIndex, UB, colVal, 0)
Status = Form1.ccdSdk1.ccdSetColor
ccdSdk1.ccdSetColor(lCameraIndex, UB, colVal, fCameraControlOnePush)
Status = Form1.ccdSdk1.ccdGetColor
ccdSdk1.ccdGetColor(lCameraIndex, VR, colVal, 0)
Status = Form1.ccdSdk1.cc
ccdSdk1.ccdSetColor
ccdSdk1.ccdSetColor(lCameraIndex, VR, colVal, fCameraControlOnePush)End Sub

ｽｸﾛｰﾙﾊﾞｰの設定値を取得し Zoom を行う

WhiteBalance の OnePush 自動調整を行う
現在の WhiteBalance B‑gain(Blue)を取得
B‑gain の OnePush 自動調整実行

現在の WhiteBalance R‑gain(Red)を取得
R‑gain の OnePush 自動調整実行

Camera Control & Status ﾚｼﾞｽﾀ直接ﾘｰﾄﾞﾗｲﾄによるｶﾒﾗｺﾝﾄﾛｰﾙ
ｽﾞｰﾑ制御には「ﾘﾌﾚｯｼｭ」ﾎﾞﾀﾝ実行によりccdGetPropertyRange,ccdGetProperty
で取得した現在の Zoom 情報が表示されます。
「ﾘｰﾄﾞ」ﾎﾞﾀﾝにより Camera Control& Status ﾚｼﾞｽﾀのｵﾌｾｯﾄ「F0F00880h」にﾏｯﾋﾟﾝｸﾞされている Zoom の Value (Bit20- 31)が表示されます。
「ﾗｲﾄ」ﾎﾞﾀﾝにより「Value Write 値」のｴﾃﾞｨｯﾄﾎﾞｯｸｽに入力した値が書き込まれます。
Private Sub btnRead̲Click()
btnRead̲Click
CameraIndex = Form1.cboCameraName.ListIndex
lOffset = CLng("&H" + txtOffset.Caption)
Status = Form1.ccdSdk1.ccdReadRegister
ccdSdk1.ccdReadRegister(CameraIndex, lOffset,
readVal)CSR ｵﾌｾｯﾄ 880h にﾏｯﾋﾟﾝｸﾞされている ZOOM ﾚｼﾞ
ｽﾀを Quadlet ﾘｰﾄﾞ

Bit20‑31 の現在値 Value を取得
txtReadVal = CLng(readVal And &HFFF)
End Sub
Private Sub btnWrite̲Click()
btnWrite̲Click
CameraIndex = Form1.cboCameraName.ListIndex
lOffset = CLng("&H" + txtOffset.Caption)
Status = Form1.ccdSdk1.ccdReadRegister
ccdSdk1.ccdReadRegister(CameraIndex, lOffset,
readVal)txtReadVal = CLng(readVal And &HFFF)
writeVal = CLng(txtWriteVal.Text)
writeVal = (readVal And &HFFFFF000) Or (writeVal And &HFFF)
Status = Form1.ccdSdk1.ccdWriteRegister
ccdSdk1.ccdWriteRegister(CameraIndex, lOffset,
writeVal)End Sub

CSR ｵﾌｾｯﾄ 880h にﾏｯﾋﾟﾝｸﾞされている ZOOM ﾚｼﾞ
ｽﾀを Quadlet ﾘｰﾄﾞ
Bit20‑31 の現在値 Value を取得
Bit 0‑19 はﾘｰﾄﾞした値を、Bit20‑31 に入力値をｾｯﾄ
CSR ｵﾌｾｯﾄ 880h にﾏｯﾋﾟﾝｸﾞされている ZOOM ﾚｼﾞ
ｽﾀに Quadlet ﾗｲﾄ

Page.124

Rsi‑CCD ｻﾝﾌﾟﾙﾌﾟﾛｸﾞﾗﾑ：CD-ROM¥ForVB¥Sample¥RSi-CCD¥ RSi-CCD.exe
本ｻﾝﾌﾟﾙﾌﾟﾛｸﾞﾗﾑここまで説明した各ｻﾝﾌﾟﾙﾌﾟﾛｸﾞﾗﾑの機能を総合的にまとめたものになります。ここでは、ｿｰｽｺｰﾄﾞ詳細説明は省略します。機能詳細は MFC のページを参照願います。
「ﾌﾟﾚﾋﾞｭｰ」ﾎﾞﾀﾝにより左のﾋﾟｸﾁｬｰﾎﾞｯｸｽに CCD ｶﾒﾗからの動画が表示されます。
ﾌｧｲﾙ名を指定して「ｽﾅｯﾌﾟ」
ﾎﾞﾀﾝをｸﾘｯｸすることにより右下のﾋﾟｸﾁｬｰﾎﾞｯｸｽに保存されたﾋﾞｯﾄﾏｯﾌﾟﾌｧｲﾙがｽﾄﾚｯﾁ表
示されます。
同様に「ｷｬﾌﾟﾁｬｰ」ﾎﾞﾀﾝにより動画が保存されます。

ｶﾒﾗﾌﾟﾛﾊﾟﾃｨのｺﾝﾄﾛｰﾙ
上記ﾒｲﾝｳｨﾝﾄﾞｳの「ｶﾒﾗ調整」ﾎﾞﾀﾝをｸﾘｯｸすると、右のｶﾒﾗﾌﾟﾛﾊﾟﾃｨ調整ﾀﾞｲｱﾛｸﾞが表示されます。

Page.125

第五章 サポート情報

5-1. FAQ
REX-CFW3H パフォーマンスREX-CFW3H CardBus カードの転送速度が著しく遅い。例えば、CCD カメラを接続してプレビューを行うと、プレビュー画像が途切れ途切れになる。

カメラドライバキットユーザーズマニュアルで説明している、CBPRSET 補助ドライバのセットアップを行って下さい。

動画のプレビューができない
CCD カメラが接続されているのにも関わらずプレビューとかカメラコントロールができない。

1. CCD カメラのランプがオレンジのままになっていないか確認して下さい。オレンジの場合は一度
1394 ケーブルの挿抜を行って下さい。
2. パソコンを再起動して下さい。
3. REX-CFW3H をご利用の場合は AC アダプタが接続されているか確認して下さい。

オーバーレイ表示が動作しない
オーバーレイをイネーブルにしてプレビューを行い、手動でプレビュー画面の拡大・縮小を行うとパソコンがフリーズする。また、指定のピクチャーウィンドウ内に表示されなかったり、表示された画像に縦線が入ったりする。

一部のグラフィックカードでオーバーレイ表示が正常に動作しないことを確認しています。その場合はオーバーレイ機能をディセーブルにしてご使用頂く必要があります。これは、本製品の問題ではなくグラフィックカードの問題です。

カメラコントロールを行うとカメラの取り外しが発生
CCD カメラのプロパティページより手動で Zoom/Focus 等のプロパティを変更していると、カメラの取り外しが発生する。

動 画プ レビュ ーを 行った 状態で Zoom/Focus 等の プロ パティ を変 更する と、 1394 の バス上 に
Isocronous データと Asyncronous データが混在して流れます。頻繁に Asyncronous データを混在させると 1394 ドライバに不具合が発生しカメラの取り外しが起こることがあります。高い頻度で、Zoom/Focus 等のプロパティを変更しないように注意して下さい。

Page.126

ハードディスクへの動画および静止画保存
キャプチャした動画を再生するとフレーム落ちが発生している。静止画を指定したインターバルで保存できない。

動画・静止画ファイルを HDD に保存する場合のパフォーマンス可否について以下の点より総合的に判断する必要があります。
(1) CCD カメラからのフレームサイズを調べる
CCD カメラの設定データフォーマットより 1 フレームのデータサイズは下記のようになります。
ﾌｫｰﾏｯﾄ形式
Format0

ﾌﾚｰﾑｻｲｽﾞ

ﾌｫｰﾏｯﾄ

bit/Pixel

ﾌﾚｰﾑｻｲｽﾞ(ﾊﾞｲﾄ)

Mode0

160×120

YUV (4:4:4)

24

57,600Mode1

320×240

YUV (4:2:2)

16

153,600

Mode2

640×480

YUV (4:1:1)

12

460,800

Mode2

640×480

YUV (4:2:2)

16

614,400

・・・(2)ハードディスクのライトパフォーマンス
ディスクパフォーマンスツールにより HDD のライト速度を計測します。下記はフリーソフトウェ
ア HDBench を使って計測した結果です。1 秒間の転送バイトが 12,641(KBytes/s)であることが分かります。尚、HDBench は http://www.hdbench.net よりダウンロードできます。

(3) 1394 バス上のフレーム転送レート
各フレームレートでの 1 フレームの転送に要する時間は下表のようになります。1394 バス上では30fps の設定が行われている場合、アイソクロナス通信により 125 マイクロ秒毎に 1 パケットデータが送られます。従って、1 フレームの転送に要する時間は 30msec になります。
ﾌﾚｰﾑﾚｰﾄ

30fps

15fps

7.5fps3.75fps

ﾊﾟｹｯﾄ/ﾌﾚｰﾑ

240

480

960

1920

30 msec

60 msec

120 msec

240 msec

1 ﾌﾚｰﾑ転送時間

以上より上記の環境では、1 フレームのデータを保存するのにおおよそ 48.6msec 程度のオーバーヘッ
ドが発生します。従って、フレームレート 30fps では書き込みに遅れが発生し、せいぜい 15fps が限界であると判断できます。

Page.127

5-2. ユーザサポートについて
RS1394CCD SDK ユーザサポート申し込みに際してはユーザ登録書が必要になります。 ユーザ登録
書をお持ちでない場合は、本製品添付の使用許諾書をお読み頂き、ユーザ登録の申し込みを行う必要があります。弊社より返送されたユーザ登録書に記載された期間において、E‑mail および FAX にてサポートを行います。
ご質問の内容について
COM ドライバ・ActiveX ドライバが公開するインターフェイスについての質問
カメラドライバ・COM ドライバ・ActiveX ドライバの動作・使用方法について
1394 規格に関する内容、Microsoft から提供されているドライバに関する内容、Visual
C/C++・Visual Basic の言語使用に関する質問は受け付けられないことがございますので、予めご了承願います。

ご質問方法について
弊社より返送されたユーザ登録書に記載された E‑mail アドレスもしくは FAX 番号にご質問をお送り願います。それ以外の場所に質問された場合は基本的に受け付けられません。
ご質問される場合には、ご利用の環境・不具合の内容等詳しく連絡願います。プログラム上の問題等については、可能な範囲で不具合の再現可能なソースコードを添付願います。

ご返答について弊社５営業日以内に連絡を頂いた E-mail アドレスもしくは FAX 番号にご返送致します。調査に時間を要する場合は別途ご連絡差し上げます。