sample_for_working_with_FFS.cpp
<span class="comment">// sample_for_working_with_FFS.cpp program operations: </span> <span class="comment">//</span> <span class="comment">// - gets and displays the information about FFS status (XI_PRM_FREE_FFS_SIZE, XI_PRM_USED_FFS_SIZE)</span> <span class="comment">// - write short text from variable test_text to FFS as file with name test.txt</span> <span class="comment">// - read short text from FFS from file test.txt to variable read_text</span> <span class="comment">// - gets and displays the information about FFS status (XI_PRM_FREE_FFS_SIZE, XI_PRM_USED_FFS_SIZE)</span> <span class="preprocessor">#include</span> <span class="include">"stdafx.h"</span> <span class="preprocessor">#ifdef</span> __APPLE__ <span class="preprocessor">#include</span> <span class="include"><m3api/xiApi.h></span> <span class="preprocessor">#include</span> <span class="include"><m3api/xiExt.h></span> <span class="preprocessor">#else</span> <span class="preprocessor">#include</span> <span class="include">"xiApi.h"</span> <span class="preprocessor">#include</span> <span class="include">"xiExt.h"</span> <span class="preprocessor">#endif</span> <span class="preprocessor">#define</span> HandleResult(res,place) <span class="keyword">if</span> (res!=XI_OK) {printf(<span class="string"><span class="delimiter">"</span><span class="content">Error after %s (%d)</span><span class="char">\n</span><span class="delimiter">"</span></span>,place,res);<span class="keyword">goto</span> finish;} <span class="predefined-type">int</span> _tmain(<span class="predefined-type">int</span> argc, _TCHAR* argv[]) { <span class="comment">// image buffer</span> XI_IMG image; image.size = <span class="keyword">sizeof</span>(XI_IMG); image.bp = <span class="predefined-constant">NULL</span>; image.bp_size = <span class="integer">0</span>; <span class="comment">// Sample for XIMEA API V2.10</span> HANDLE xiH = <span class="predefined-constant">NULL</span>; XI_RETURN stat = XI_OK; <span class="comment">// Get number of camera devices</span> DWORD dwNumberOfDevices = <span class="integer">0</span>; stat = xiGetNumberDevices(&dwNumberOfDevices); HandleResult(stat,<span class="string"><span class="delimiter">"</span><span class="content">xiGetNumberDevices (no camera found)</span><span class="delimiter">"</span></span>); <span class="keyword">if</span> (!dwNumberOfDevices) { printf(<span class="string"><span class="delimiter">"</span><span class="content">No camera found</span><span class="char">\n</span><span class="delimiter">"</span></span>); <span class="keyword">goto</span> finish; } <span class="comment">// Retrieving a handle to the camera device </span> stat = xiOpenDevice(<span class="integer">0</span>, &xiH); HandleResult(stat,<span class="string"><span class="delimiter">"</span><span class="content">xiOpenDevice</span><span class="delimiter">"</span></span>); <span class="comment">//---------------------------------------------------------------</span> <span class="comment">// get FFS info</span> <span class="predefined-type">int</span> num_free = <span class="integer">0</span>; <span class="predefined-type">int</span> num_used = <span class="integer">0</span>; <span class="comment">// get FFS info</span> stat = xiGetParamInt(xiH, XI_PRM_FREE_FFS_SIZE, &num_free); HandleResult(stat,<span class="string"><span class="delimiter">"</span><span class="content">xiGetParamInt (XI_PRM_FREE_FFS_SIZE)</span><span class="delimiter">"</span></span>); stat = xiGetParamInt(xiH, XI_PRM_USED_FFS_SIZE, &num_used); HandleResult(stat,<span class="string"><span class="delimiter">"</span><span class="content">xiGetParamInt (XI_PRM_USED_FFS_SIZE)</span><span class="char">\n</span><span class="char">\n</span><span class="delimiter">"</span></span>); printf(<span class="string"><span class="delimiter">"</span><span class="content">FFS stats:</span><span class="char">\n</span><span class="delimiter">"</span></span>); printf(<span class="string"><span class="delimiter">"</span><span class="content">Free bytes : %d </span><span class="char">\n</span><span class="delimiter">"</span></span>, num_free); printf(<span class="string"><span class="delimiter">"</span><span class="content">Used bytes : %d </span><span class="char">\n</span><span class="delimiter">"</span></span>, num_used); <span class="comment">//---------------------------------------------------------------</span> <span class="comment">// write file to FFS</span> <span class="predefined-type">char</span> test_file[MAX_PATH]=<span class="string"><span class="delimiter">"</span><span class="content">test.txt</span><span class="delimiter">"</span></span>; <span class="predefined-type">char</span> test_text[MAX_PATH]=<span class="string"><span class="delimiter">"</span><span class="content">XIMEA was created by the group of industry leading Imaging and Vision veterans originating from DELARO and SOFTHARD companies.</span><span class="delimiter">"</span></span>; stat = xiSetParamString(xiH, XI_PRM_FFS_FILE_NAME, test_file, MAX_PATH); HandleResult(stat,<span class="string"><span class="delimiter">"</span><span class="content">xiSetParamString (XI_PRM_FFS_FILE_NAME)</span><span class="delimiter">"</span></span>); stat = xiSetParamString(xiH, XI_PRM_WRITE_FILE_FFS, test_text, MAX_PATH); HandleResult(stat,<span class="string"><span class="delimiter">"</span><span class="content">xiSetParamString (XI_PRM_WRITE_FILE_FFS)</span><span class="delimiter">"</span></span>); <span class="comment">//---------------------------------------------------------------</span> <span class="comment">// read data from FFS</span> <span class="predefined-type">char</span> read_text[MAX_PATH]=<span class="string"><span class="delimiter">"</span><span class="delimiter">"</span></span>; stat = xiGetParamString(xiH, XI_PRM_READ_FILE_FFS, read_text, MAX_PATH); HandleResult(stat,<span class="string"><span class="delimiter">"</span><span class="content">xiSetParamString (XI_PRM_READ_FILE_FFS)</span><span class="delimiter">"</span></span>); printf(<span class="string"><span class="delimiter">"</span><span class="content">Text read from FFS:</span><span class="char">\n</span><span class="content">%s</span><span class="char">\n</span><span class="char">\n</span><span class="delimiter">"</span></span>, read_text); <span class="comment">//---------------------------------------------------------------</span> <span class="comment">// get FFS info</span> stat = xiGetParamInt(xiH, XI_PRM_FREE_FFS_SIZE, &num_free); HandleResult(stat,<span class="string"><span class="delimiter">"</span><span class="content">xiGetParamInt (XI_PRM_FREE_FFS_SIZE)</span><span class="delimiter">"</span></span>); stat = xiGetParamInt(xiH, XI_PRM_USED_FFS_SIZE, &num_used); HandleResult(stat,<span class="string"><span class="delimiter">"</span><span class="content">xiGetParamInt (XI_PRM_USED_FFS_SIZE)</span><span class="char">\n</span><span class="char">\n</span><span class="delimiter">"</span></span>); printf(<span class="string"><span class="delimiter">"</span><span class="content">FFS stats:</span><span class="char">\n</span><span class="delimiter">"</span></span>); printf(<span class="string"><span class="delimiter">"</span><span class="content">Free bytes : %d </span><span class="char">\n</span><span class="delimiter">"</span></span>, num_free); printf(<span class="string"><span class="delimiter">"</span><span class="content">Used bytes : %d </span><span class="char">\n</span><span class="delimiter">"</span></span>, num_used); <span class="label">finish:</span> <span class="comment">// Close device</span> <span class="keyword">if</span> (xiH) xiCloseDevice(xiH); printf(<span class="string"><span class="delimiter">"</span><span class="content">Done</span><span class="char">\n</span><span class="delimiter">"</span></span>); getchar(); <span class="keyword">return</span> <span class="integer">0</span>; }