Web Analytics

Kneron PLUS core APIs

Core functions provide fundamental functionality like connection and firmware update

Include Header File: kp_core.h


Functions

kp_connect_devices

To connect multiple (including one) Kneron devices.

kp_device_group_t kp_connect_devices(
    int num_devices
    int device_port_ids[]
    int *error_code
)
Parameters:

num_devices     [in]      number of devices
device_port_ids [in]      an array contains device's port ID which can be known from kp_scan_devices(), if '0' is given then it will try to connect first connectable device.
error_code      [out]     optional variable to indicate an error if connecting devices failed.

Returns:

kp_device_group_t represents a set of devices handle, if NULL means failed.


kp_connect_devices_without_check

To connect multiple (including one) Kneron devices without any examinations of system info.

kp_device_group_t kp_connect_devices_without_check(
    int num_devices
    int device_port_ids[]
    int *error_code
)
Parameters:

num_devices     [in]      number of devices
device_port_ids [in]      an array contains device's port ID which can be known from kp_scan_devices(), if '0' is given then it will try to connect first connectable device.
error_code      [out]     optional variable to indicate an error if connecting devices failed.

Returns:

kp_device_group_t represents a set of devices handle, if NULL means failed.


kp_disable_firmware_log

Disable firmware log of all devices with firmware log enabled.

int kp_disable_firmware_log(
    kp_device_group_t devices
)
Parameters:

devices         [in]      a set of devices handle.

Returns:

refer to KP_API_RETURN_CODE in kp_struct.h


kp_disconnect_devices

To disconnect a Kneron device.

int kp_disconnect_devices(
    kp_device_group_t devices
)
Parameters:

devices         [in]      a set of devices handle.

Returns:

refer to KP_API_RETURN_CODE in kp_struct.h


kp_enable_firmware_log

Enable firmware log from certain device.

int kp_enable_firmware_log(
    kp_device_group_t devices
    int dev_port_id
    char *log_file_path
)
This function enables receiving firmware log from certain device with specific device index. The firmware log could be written to text file or directly output to stdout.

Parameters:

devices         [in]      a set of devices handle.
dev_port_id     [in]      the device port id to enable firmware log.
log_file_path   [in]      the log file path, if NULL is passed then firmware log would be directly output to stdout.

Returns:

refer to KP_API_RETURN_CODE in kp_struct.h


kp_error_string

Translate error code to char string.

const char *kp_error_string(
    int error_code
)
Parameters:

error_code      [in]      status/error code from enum KP_API_RETURN_CODE.

Returns:

a char buffer of string represents the error message.


kp_get_model_info

Get model info (crc, model id, etc.) (must release model_desc by kp_release_model_nef_descriptor).

int kp_get_model_info(
    kp_device_group_t devices
    int dev_port_id
    kp_model_nef_descriptor_t *all_models_desc
)
Parameters:

devices         [in]      a set of devices handle.
dev_port_id     [in]      specific device port id.
all_models_desc [out]     return value of model info.

Returns:

refer to KP_API_RETURN_CODE in kp_struct.h


kp_get_system_info

Get system info (kn number and firmware version).

int kp_get_system_info(
    kp_device_group_t devices
    int dev_port_id
    kp_system_info_t *system_info
)
Parameters:

devices         [in]      a set of devices handle.
dev_port_id     [in]      specific device port id.
system_info     [out]     return value of system info.

Returns:

refer to KP_API_RETURN_CODE in kp_struct.h


kp_get_version

Get PLUS version.

const char *kp_get_version()
Returns:

a string represents the PLUS version.


kp_install_driver_for_windows

Install device driver on Windows

int kp_install_driver_for_windows(
    kp_product_id_t device_pid
)
Parameters:

device_pid                product id of the device

Returns:

int refer to KP_API_RETURN_CODE in kp_struct.h


kp_load_encrypted_models

upload encrypted models to multiple device through USB, and return kp_model_nef_descriptor_t *model_desc (must release model_desc by kp_release_model_nef_descriptor)

int kp_load_encrypted_models(
    kp_device_group_t devices
    void *nef_buf[]
    int nef_size
    int nef_num
    kp_model_nef_descriptor_t *model_desc
)
Parameters:

devices         [in]      a set of devices handle.
nef_buf         [in]      number of buffers that contain the content of NEF files.
nef_size        [in]      file size of the NEF.
nef_num         [in]      total number of NEF files.
model_desc      [out]     this parameter is output for describing the uploaded models.

Returns:

refer to KP_API_RETURN_CODE in kp_struct.h

Notes:

for nef_size, the lengths of all encrypted NEF files originated from the same unencrypted NEF file should be the same.


kp_load_encrypted_models_from_file

Similar to kp_load_encrypted_models(), and it accepts file paths instead of buffers (must release model_desc by kp_release_model_nef_descriptor).

int kp_load_encrypted_models_from_file(
    kp_device_group_t devices
    char *file_path[]
    int nef_num
    kp_model_nef_descriptor_t *model_desc
)
Parameters:

devices         [in]      a set of devices handle.
file_path       [in]      file pathes of NEF files.
nef_num         [in]      total number of NEF files.
model_desc      [out]     this parameter is output for describing the uploaded models.

Returns:

refer to KP_API_RETURN_CODE in kp_struct.h


kp_load_firmware

upload firmware from buffers

int kp_load_firmware(
    kp_device_group_t devices
    void *scpu_fw_buf
    int scpu_fw_size
    void *ncpu_fw_buf
    int ncpu_fw_size
)
Parameters:

devices         [in]      a set of devices handle.
scpu_fw_buf     [in]      scpu firmware buffer
scpu_fw_size    [in]      scpu firmware size
ncpu_fw_buf     [in]      ncpu firmware buffer
ncpu_fw_size    [in]      ncpu firmware size

Returns:

refer to KP_API_RETURN_CODE in kp_struct.h


kp_load_firmware_from_file

upload firmware from file

int kp_load_firmware_from_file(
    kp_device_group_t devices
    const char *scpu_fw_path
    const char *ncpu_fw_path
)
Parameters:

devices         [in]      a set of devices handle.
scpu_fw_path    [in]      scpu firmware file path
ncpu_fw_path    [in]      ncpu firmware file path

Returns:

refer to KP_API_RETURN_CODE in kp_struct.h


kp_load_model

upload models to device through USB, and return kp_model_nef_descriptor_t *model_desc (must release model_desc by kp_release_model_nef_descriptor)

int kp_load_model(
    kp_device_group_t devices
    void *nef_buf
    int nef_size
    kp_model_nef_descriptor_t *model_desc
)
Parameters:

devices         [in]      a set of devices handle.
nef_buf         [in]      a buffer contains the content of NEF file.
nef_size        [in]      file size of the NEF.
model_desc      [out]     this parameter is output for describing the uploaded models.

Returns:

refer to KP_API_RETURN_CODE in kp_struct.h


kp_load_model_from_file

Similar to kp_load_model(), and it accepts file path instead of a buffer (must release model_desc by kp_release_model_nef_descriptor)

int kp_load_model_from_file(
    kp_device_group_t devices
    const char *file_path
    kp_model_nef_descriptor_t *model_desc
)
Parameters:

devices         [in]      a set of devices handle.
file_path       [in]      a buffer contains the content of NEF file.
model_desc      [out]     this parameter is output for describing the uploaded models.

Returns:

refer to KP_API_RETURN_CODE in kp_struct.h


kp_load_model_from_flash

Load model from device flash, and return kp_model_nef_descriptor_t *model_desc (must release model_desc by kp_release_model_nef_descriptor)

int kp_load_model_from_flash(
    kp_device_group_t devices
    kp_model_nef_descriptor_t *model_desc
)
Parameters:

devices         [in]      a set of devices handle.
model_desc      [out]     this parameter is output for describing the uploaded models.

Returns:

int refer to KP_API_RETURN_CODE in kp_struct.h


kp_release_model_nef_descriptor

To free a kp_model_nef_descriptor_t data buff.

int kp_release_model_nef_descriptor(
    kp_model_nef_descriptor_t *model_desc
)
Parameters:

model_desc      [in]      a model info descriptor.

Returns:

refer to KP_API_RETURN_CODE in kp_struct.h


kp_reset_device

reset the device in hardware mode or software mode.

int kp_reset_device(
    kp_device_group_t devices
    kp_reset_mode_t reset_mode
)
Parameters:

devices         [in]      a set of devices handle.
reset_mode      [in]      refer to kp_reset_mode_t.

Returns:

refer to KP_API_RETURN_CODE in kp_struct.h


kp_scan_devices

Scan all Kneron devices and report a list.

kp_devices_list_t *kp_scan_devices()
This function can get devices connectivity information at runtime.

Returns:

refer to kp_devices_list_t.


kp_set_timeout

To set a global timeout value for all USB communications with the device.

void kp_set_timeout(
    kp_device_group_t devices
    int milliseconds
)
Parameters:

devices         [in]      a set of devices handle.
milliseconds    [in]      pre-set timeout value in milliseconds.

kp_store_ddr_manage_attr

Store ddr manage attribute into device group

int kp_store_ddr_manage_attr(
    kp_device_group_t devices
    kp_ddr_manage_attr_t ddr_attr
)
Parameters:

devices                   a set of devices handle.
ddr_attr                  ddr manage attributes, the zero item in this parameter will be auto generated

Returns:

int refer to KP_API_RETURN_CODE in kp_struct.h