Development of image acquisition application using digital camera SDK

Abstract: Introduce the structure and function classification of SDK DC280 and SDK of Kodak's digital camera development kit, and provide a typical programming example.

Digital camera is a common consumer product at present. Its basic working principle is to use CCD optocoupler device to convert optical signal into electrical signal. After A / D conversion, data compression and other processing, it is applied to PC terminal through serial port or USB port Transfer the pictures (mostly in JPEG format) to the hard disk of the PC under program control. At present, all applications on the PC are provided by the camera manufacturer. Few people have noticed that some digital camera manufacturers provide developers with relatively rich SDK (Software Development Kit) resources to facilitate the use of digital cameras for image acquisition and monitoring development. The SDK development kit generally consists of a header file (.H), a library file (.lib), and a dynamic link library file (.dll). Kodak Corporation of America is the world leader in camera manufacturing and many imaging standards. This article will use the KODAK DC280 SDK as an example to introduce the SDK and its applications, so that interested developers can self-program to apply the data camera in the engineering project.

1 SDK structure diagram

The DC280 SDK block diagram is shown in Figure 1. The SDK control layer is located between the application and the specified SDK control layer (for the DS280 camera this layer is the DC280SDK control layer), Its main function is to receive the DC280_OpenCamera () instruction of the application, and transfer the specified camera SDK control layer into the memory area; receive the DC2x0_CloseCamera () instruction, and at the same time release the memory area occupied by the specified camera SDK control layer. The designated camera SDK layer is located under the SDK control layer. This layer supports all functions for accessing the camera, and uploads the function execution result status code (that is, error code) to the application through the SDK control layer. Specify the lower layer of the camera control layer as the driver layer. Drivers are used to deal directly with external devices.

2 SDK function classification

The functions in the SDK can be generally divided into the following categories according to the role type:

(1) Camera initialization function: mainly includes _CloseCamera () and _OpenCamera ().

(2) Camera control functions: mainly include _GetStatus (), _GetConfig (), _SetConfig (), _ControlCameraTIme (), _ControlCameraID (), _ControlTakePicture (), _ResetCamera ().

(3) Picture management functions: _TakePicture (), _ResetCamera ().

(4) Picture information acquisition functions: _GetCameraPicTInfo (), _GetAllPictureName (), _GetNaTIvePicture ().

(5) File transfer function: _GetFileFormCamera (), _SetFileToCamera.

(6) Other types of functions: including the function of obtaining battery power data, the function of obtaining the return code of the last operation, etc.

3 A typical example of SDK usage

The following is a simple example of taking pictures to make readers generally understand the general mode of programming. The process is shown in Figure 2. The first is to initialize the camera, that is, turn on the camera, then read the current camera parameter settings, modify some parameter settings as needed, then take pictures, and finally close the camera to release the memory. The routine is as follows:

The following is a typical example of SDK usage:

#include "F210.h"

OSErr ret;

DC280_Camera; Camera;

DC280_ImgProcData ThumbImgInfo;

DC280_TakePicTInfo TakePictInfo;

DC280_PictInfo GenericPictInfo;

DC280_SpecificPictInfo SpecificPictInfo; // Turn on the camera

DC280_OpenCamera (VersionData, CameraData); // Get camera setting parameters

ret = DC280_ControlTakePicture (& Camera, TRUE, 0L, (VOIDPTR & TakePictInfo);

// Modify the parameters that need to be changed

ret = DC280_ControlTakePicture (& Camera, FALSE, (VOIDPTR & TakePictInfo); // Photograph

ret = DC280_TakePicture (& Camera, TRUE, & ThumbImgInfo, & GenericPictInfo, (VOIDPTR) & SpecificPictInfo);

// The file transfer function can be added as needed

DC210_CloseCamera (CameraData); // Close the camera

The second parameter of DC280_ControlTakePicture is GetSetFlag. When it is true, it means that the setting parameters are obtained from the camera; when it is false, it means that the changed parameters are sent to the camera. The data structure of DC280_Camera is as follows:

typedef struct {DC210_PortNum PortNum;

DC210_BitRate BitRate;

DC210_CameraType CamType;

BOOL CameraOpenFlag;

VOIDPTR InternalUseOnly;

} DC280_Camera;

This article provides a brief introduction to the SDK and the development of camera applications using Kodak's DC280 SDK development tool. The methods of using SDKs of other companies are basically similar, but the function names are slightly different, and the methods of use are the same. Detailed descriptions of the functions and parameters in the SDK can be found in the list of development tools on the camera manufacturer's English website.

Tektronix supports Amazon (AWS) media services to provide quality assurance for end-to-end video Shengju Apple TV 4K disassembly report based on unified computing architecture technology video display system design: familiar modular components

Follow WeChat

Interesting and informative information and technical dry goods

Download Audiophile APP

Create your own personal electronic circle

Follow the audiophile class

Lock the latest course activities and technical live broadcast
Collect People collection
share it:
comment
Publish

related suggestion

Self-writing system call debugging application process

For example, if we want to break the point of i = i + 2; in the C function, we first find the corresponding instruction in the disassembly file: 84d4: e2 ...

Published on 2018-04-16 08:46 • 8 times read
Self-writing system call debugging application process
Global Security Report 2018: North America and the retail industry are heavily involved in data breaches ...

The survey revealed that all web applications have at least one security flaw, and the median number of security vulnerabilities in each application is 11. 85 ...

Published on 2018-04-13 14:11 • 140 views
Global Security Report 2018: North America and the retail industry are heavily involved in data breaches ...
The AR app YARD improves workflow in the swimming pool and landscape industry ...

Structure Studios has released a new application to improve workflow in the swimming pool and landscape industry. YARD is one ...

Published on 2018-04-12 15:25 • 22 times read
The AR app YARD improves workflow in the swimming pool and landscape industry ...
An advanced child monitoring application

Although dangerous incidents such as accidents, personal injuries and kidnappings abound, parents can use smartphones and other wearable devices to track the position of their children ...

Published on 2018-03-23 ​​08:51 • 405 views
An advanced child monitoring application
In 2017, Google removed 700,000 malicious programs and opened G ...

Recently, Google announced that it removed 700,000 apps from the Play Store in 2017 because they violated the store ’s related ...

Published on 2018-02-11 13:53 • 284 times read
In 2017, Google removed 700,000 malicious programs and opened G ...
Are there any skilled wince6.0 applications?

Published on 2018-02-06 15:56 • 277 times read
Are there any skilled wince6.0 applications?
QT Application Development Manual -20150918

Published on 2018-02-05 09:41 • 392 times read
QT Application Development Manual -20150918
Custom JDBC framework

JDBC is a Java API for executing SQL statements, which can provide unified access to a variety of relational databases. It consists of a set of Ja ...

Published on 2018-02-02 17:55 • 100 views
Custom JDBC framework
Detailed development of embedded Linux application

Published on 2018-01-24 16:58 • 255 times read
Detailed development of embedded Linux application
Tutorial for using remote control software teamviewer

TeamViewer is an application that can be used for remote control in the background of any firewall and NAT proxy, desktop sharing and file transfer ...

Published on 2017-11-29 17:45 • 946 views
Tutorial for using remote control software teamviewer
ds18b20 application example analysis

The DS18B20 temperature sensor is a 1-wire single-bus device produced by DALLAS, which has the characteristics of simple circuit and small size ...

Published on 2017-11-23 16:08 • 576 times read
ds18b20 application example analysis
How important is an application for a drone?

The UAV itself is just a flying machine, but it will be interesting to combine it with the App. That's why Drone Deplo ...

Published on 2016-11-15 17:04 • 243 times read
How important is an application for a drone?
Linux system engineer preached and taught: Embedded Linux ...

Since many people always ask this question, here is a summary for your reference. It must be explained here that the following steps are for the Linux system ...

Posted at 2012-09-13 11:55 • 12815 views
Linux system engineer preached and taught: Embedded Linux ...
AMD's latest developments in cores, SoCs, APIs ...

Electronics enthusiast news: AMD is steadily advancing its goal: to transform itself into SoCs companies compatible with industry chips. AMD is expected to be ...

Published on 16:52 2012-08-29 • 692 views
AMD's latest developments in cores, SoCs, APIs ...
How to choose an embedded system for your next application

Electronic Tips Network Core Tips: This article explains some common misunderstandings and misunderstandings about embedded platforms and proposes a correctly determined discussion framework, clear ...

Published on 2012-08-27 09:13 • 2557 views
How to choose an embedded system for your next application
Application program design of embedded detection system

This article introduces the application design of the embedded detection system, which is a detection device based on the USB interface. The task of the application is to put the user on the device ...

Posted on 2012-05-29 11:16 • 459 times read
Application program design of embedded detection system
Intel spends $ 100 million to promote cross-platform application development

Intel Capital (Intel Capital), a subsidiary of Intel Corporation, has announced the establishment of a ...

Published on 2011-11-17 10:10 • 314 views
Intel spends $ 100 million to promote cross-platform application development
Enea's latest smartphone app

The city of Malmo has launched smart phone applications such as Android and iPhone. This app includes what people can find ...

Posted on 2011-05-30 09:12 • 356 times read
Enea's latest smartphone app
Portability of WinCE system application

Since the desktop Windows runs on the X86 platform in most cases, there is no portability problem of different platforms.

Posted on 2011-03-17 11:10 • 871 views
Portability of WinCE system application
Engineer's worries: how to estimate power consumption while the application is running

Software application developers – and those who use laptops on their living room sofas – how should they estimate their applications ...

Published on 2010-11-23 09:55 • 394 times read
Engineer's worries: how to estimate power consumption while the application is running
var check_allow = "/d/Api/iscantalk.html"; var add_url = '/ d / article / write /'; function CheckLogin () {now_uid = ''; var ElecfansApi_checklogin = '/ webapi / passport / checklogin'; var logout_url = "{: U ('Login / logout')}"; var logout_url = 'http://bbs.elecfans.com/member.php?mod=logging&action=logout&refer=front'; $ .get (ElecfansApi_checklogin, function (data, textStatus) {if (data! = "") {EchoLoginInfo (data); CheckEmailInfo (data); data = $ .parseJSON (data); now_uid = data.uid; / * var login_content = 'write an article
'+ data.username +'
Quit '; * / var login_content =' write an article
'+ data.username +'
Set exit '; $ (' # login_area '). Html (login_content); var win_width = $ (window) .width (); if (win_width> 1000) {$ ("# mine"). MouseDelay (200) .hover (function () {$ ("# mymenu"). show ();}, function () {$ ("# mymenu"). hide ();});}} else {var content = 'Login Registration'; $ ('# login_area'). html (content); $ (". special-login"). click (function (e) {$ .tActivityLogin (); return false;});}});} $ (function () {// comment ------------------------------- var comment = $ ("# comment"); var comment_input = $ ("# comContent"); // Submit comment click event interaction $ ("# comSubmit2"). on ('click', function () {var content = comment_input.text (); // Empty input box comment_input. html (""). focus (); // Submit data to server $ .ajax ({url: '/plus/arcComment.php', data: {aid: $ ("# webID"). val (), dopost : 'apiPubComment', content: content}, type: 'post', dataType: 'json', success: function (data) {// Data format returned: if (data.status == "successed") {// Build temporary comment DOM var dom = ''; dom + = '
'; dom + =' '; dom + ='
'; dom + ='

'+ data.data.username +' '; dom + ='

'; dom + =' '+ content +' '; dom + =' '; dom + =' just now '; dom + =' '; dom + =' '; // insert a temporary comment to the list $ ("# comment ") .append (dom);} if (data.status ==" failed ") {// alert (data.msg); layer.msg (data.msg);}}}); return false;}); (function () {/ * * Insert single sign-on JS * / var setHost = 'https://passport.elecfans.com'; // Set domain name var script = document.createElement ('script'); script.type = 'text / javascript'; script.src = setHost + '/public/pc/js/t.passport.js'; script.setAttribute ("id", "sso_script"); script.setAttribute ("data-ssoSite", setHost); script.setAttribute ("data-ssoReferer", encodeURIComponent (location.href)); script.setAttribute ("data-ssoSiteid", "11"); var body = document.getElementsByTagName ("body"). item ( 0); body.appendChild (script);}) () / * * It is recommended to modify the style of the article without a picture * * / $ (". Article .thumb"). Each (function () {if ($ (this). find ('img'). attr ('src') == "") {$ (this) .find ('img'). remove (); $ (this) .parent (). css ('padding-left ',' 0px ');}}); / * Baidu share * / window._bd_share_config = {common: {bdText: '', // Custom share content bdDesc: '', // Custom share summary bdUrl: window.location.href, // Custom share URL address bdPic: ''} , share: [{"bdSize": 60, "bdCustomStyle": true}]} with (document) 0 [(getElementsByTagName ('head') [0] || body) .appendChild (createElement ('script')). src = 'http://bdimg.share.baidu.com/static/api/js/share.js?cdnversion=' + ~ (-new Date () / 36e5)]; var add_url = '/ d / article / write / '; // var check_allow = "{: U (' Api / iscantalk ')}"; var check_allow = "/ d / api / iscantalk"; var click_items_length = $ ('. art_click_count '). length; if ( click_items_length> 0) {var id_str = ''; $ ('. art_click_count'). each (function () {id_str + = $ (this) .attr ('data-id') + ',';}) // var url = "{: U ('Api / getclickbyids')}"; var url = "/ d / api / getclickbyids"; var id_data = 'id_str =' + id_str; $ .ajax ({url: url, data: id_data, type: 'post', dataType: 'json', success: function (re) {if (re.list.length> = 1) {var list = re.list; for (var i in list) {var t emp_id = list [i] ['id']; var temp_span = $ (". art_click_count [data-id =" + temp_id + "]") temp_span.html (list [i] ['click']);}} }})} $ ("# comContent"). click (function () {if (now_uid == '') {$ .tActivityLogin (); return false;}}) $ (function () {var follow_wrap = $ ( ".author-collect"); var now_uid = "{$ _super ['uid']}"; var face_src = "{$ _super ['uface']}"; var getFollowNum = $ (". followNum strong"). html (); // Follow $ (window) .on ('click', '.author-collect', function () {if (now_uid == '') {$ .tActivityLogin (); return false;} if ( $ (this) .attr ('id') == 'follow') {$ .post ('/ d / user / follow', {tuid: article_user_id}, function (data) {// Data format returned: if (data.status == "successed") {$ (". followNum strong"). html (++ getFollowNum); follow_wrap.html ('followed'). attr ('id', 'cancelFollow'). css ( 'background', '# 999'); var follow_user = ' '; $ (' # follow_list '). append (follow_user);} if (data.status == "failed") {alert (data.msg);}});} else {// Unfollow if ($ ( this) .attr ('id') == 'cancelFollow') {$ .post ('/ d / user / cancelFollow', {tuid: article_user_id}, function (data) {// Data format returned: if (data .status == "successed") {follow_wrap.html ('Follow'). attr ('id', 'follow'). css ('background', '# f90'); $ (". followNum strong"). html (-getFollowNum); $ ('# follow_list .face'). each (function () {var target_uid = $ (this) .attr ('data-uid'); if (target_uid == now_uid) {$ ( this) .remove ();}})} if (data.status == "failed") {alert (data.msg);}}); return false;}}});});}); / * var myface = "{$ _super ['uid'] | avatar}"; var myname = "{$ _super ['username']}"; var article_id = {$ article ['id']}; var article_user_id = {$ article ['mid']}; // Article author ID $ (function () {<notempty name = "clearnum"> // Reduce the number of reminders var count = parseInt ($ ("# noticeCount"). html ()); count = count-{$ clearnum}; $ ("# noticeCount"). html (count); if ( count

5G Industrial Router

5G Industrial Router features Application field
With the continuous progress and development of science and technology, a new generation of communication technology -5G is gradually entering our lives. In the industrial field, the application of 5G technology is also constantly advancing, bringing new opportunities and challenges to industrial production. Industrial routers, as one of the key devices for 5G applications, play a crucial role. This paper will introduce the definition, characteristics, application fields, development trends and other aspects of 5G industrial routers in detail.

What is 5G Industrial Router
Simply put, 5G industrial router is a special type of router equipment based on 5G technology, which is used to connect industrial equipment and systems to achieve high-speed transmission and exchange of data. Compared with traditional routers, 5G industrial routers have higher bandwidth and lower latency, which can better meet the requirements of real-time data transmission and high stability in industrial production environments.

Features of 5G industrial routers
First of all, high bandwidth is a significant feature of 5G industrial routers. The introduction of 5G technology enables industrial routers to support large-scale data transmission and processing, providing more powerful data communication capabilities for modern industrial production. Second, low latency is another important feature of 5G industrial routers. The advantage of low latency enables industrial routers to achieve real-time data transmission and processing, improving the efficiency and response speed of industrial production. In addition, 5G industrial routers also have the characteristics of high stability, high reliability and high security, and can cope with complex industrial environments and demanding data communication needs.

5G industrial router application field
First of all, the Internet of Things field is one of the important areas of 5G industrial router application. As the popularity and application range of Internet of Things devices continue to expand, the requirements for data communication are becoming higher and higher, and 5G industrial routers can provide reliable data connection and transmission services for Internet of Things devices. Secondly, the field of industrial automation is also one of the main application areas of 5G industrial routers. In industrial production, the transmission and processing of real-time data is crucial to improve production efficiency and quality, and 5G industrial routers can meet the needs of high-speed and low-latency data transmission to help achieve the goal of industrial automation. In addition, 5G industrial routers can also be widely used in intelligent transportation, smart cities, intelligent manufacturing and other fields.

With the continuous development of 5G technology, 5G industrial routers will also usher in a new development trend. First, with the popularity of iot devices, the demand for 5G industrial routers will further grow. Secondly, the introduction of virtualization and network slicing technology makes industrial routers have higher flexibility and scalability, in addition, the improvement of security will also become an important direction of the development of 5G industrial routers to cope with increasingly complex network threats and security challenges.

5G Industrial Router,Industrial Lte Router Poe,Industrial Security Router,Industrial 5G Cellular Router

Shenzhen MovingComm Technology Co., Ltd. , https://www.movingcommiot.com

Posted on