Inventory Mode Configuration


⚠️ Note: This document describes how to use the SDK's API to operate the scanning device and provides sample code in C language. Please note that the API is a synchronous operation and may block the main thread when used.

⚠️ Note: Before using the API, you need to connect the device and register for message notifications to receive messages from the device. For detailed steps, please refer to Message Notification.

⚠️ Note: Before using the API on this page, you need to connect the device with a USB cable.

1. Upload Cached Data

1.1 Write Command

To upload the cached data of the scanning device, you need to perform a write without response operation using the following Bluetooth service and characteristic UUIDs:

Bluetooth UUID
Service 0x0000ff0000001000800000805f9b34fb
Characteristic 0x0000ff0400001000800000805f9b34fb

You need to connect the device with a USB cable, and the data will be uploaded to the wired terminal. Use the following command to get the data to write to the characteristic:

const char* result = inateck_scanner_cmd_get_inventory_upload_cache();

The return result is in JSON format. If the call is successful, result will return:

{
    "status": 0,
    "data": [0, 1, 2, 3],
}

If the call fails, result will return:

{
    "status": 1,
    "data": [],
}

1.2 Message Parsing

After waiting for the device to respond, you can use the following method to parse the data:

int result = inateck_scanner_cmd_check_result(data, data_length);

The return result is of type int. If the call is successful, result will return 0. If the call fails, result will return 1.

1.3 Sample Code

#include <stdio.h>
#include <string.h>
#include <stdbool.h>
#include <unistd.h>
#include "inateck_scanner_ble.h"


int main() {
    const char* result = inateck_scanner_cmd_get_inventory_upload_cache();
    if (result) {
        // result is in JSON format, parse the data
        const unsigned char* data = (const unsigned char*)result;
        int data_length = strlen(result);

        // Send data via Bluetooth write without response
        // Assume there is a function send_data_via_bluetooth to send data
        send_data_via_bluetooth(data, data_length);

        // Wait for the device to respond, receive data
        // Assume there is a function receive_data_via_bluetooth to receive data
        receive_data_via_bluetooth();

        const unsigned char* data = get_received_data();
        int data_length = get_received_data_length();

        // Parse the data
        int result = inateck_scanner_cmd_check_result(data, data_length);
        if (result == 0) {
            printf("Upload cache success\n");
        } else {
            printf("Upload cache failed\n");
        }
    }
    return 0;
}

2. Upload Cached Count

2.1 Write Command

To upload the cached count of the scanning device, you need to perform a write without response operation using the following Bluetooth service and characteristic UUIDs:

Bluetooth UUID
Service 0x0000ff0000001000800000805f9b34fb
Characteristic 0x0000ff0400001000800000805f9b34fb

You need to connect the device with a USB cable, and the data will be uploaded to the wired terminal. Use the following command to get the data to write to the characteristic:

const char* result = inateck_scanner_cmd_get_inventory_upload_count();

The return result is in JSON format. If the call is successful, result will return:

{
    "status": 0,
    "data": [0, 1, 2, 3],
}

If the call fails, result will return:

{
    "status": 1,
    "data": [],
}

2.2 Message Parsing

After waiting for the device to respond, you can use the following method to parse the data:

int result = inateck_scanner_cmd_check_result(data, data_length);

The return result is of type int. If the call is successful, result will return 0. If the call fails, result will return 1.

2.3 Sample Code

#include <stdio.h>
#include <string.h>
#include <stdbool.h>
#include <unistd.h>
#include "inateck_scanner_ble.h"


int main() {
    const char* result = inateck_scanner_cmd_get_inventory_upload_count();
    if (result) {
        // result is in JSON format, parse the data
        const unsigned char* data = (const unsigned char*)result;
        int data_length = strlen(result);

        // Send data via Bluetooth write without response
        // Assume there is a function send_data_via_bluetooth to send data
        send_data_via_bluetooth(data, data_length);

        // Wait for the device to respond, receive data
        // Assume there is a function receive_data_via_bluetooth to receive data
        receive_data_via_bluetooth();

        const unsigned char* data = get_received_data();
        int data_length = get_received_data_length();

        // Parse the data
        int result = inateck_scanner_cmd_check_result(data, data_length);
        if (result == 0) {
            printf("Upload count success\n");
        } else {
            printf("Upload count failed\n");
        }
    }
    return 0;
}

3. Clear Cached Data

3.1 Write Command

To clear the cached data of the scanning device, you need to perform a write without response operation using the following Bluetooth service and characteristic UUIDs:

Bluetooth UUID
Service 0x0000ff0000001000800000805f9b34fb
Characteristic 0x0000ff0400001000800000805f9b34fb

You need to connect the device with a USB cable, and the data will be uploaded to the wired terminal. Use the following command to get the data to write to the characteristic:

const char* result = inateck_scanner_cmd_get_inventory_clear_cache();

The return result is in JSON format. If the call is successful, result will return:

{
    "status": 0,
    "data": [0, 1, 2, 3],
}

If the call fails, result will return:

{
    "status": 1,
    "data": [],
}

3.2 Message Parsing

After waiting for the device to respond, you can use the following method to parse the data:

int result = inateck_scanner_cmd_check_result(data, data_length);

The return result is of type int. If the call is successful, result will return 0. If the call fails, result will return 1.

3.3 Sample Code

#include <stdio.h>
#include <string.h>
#include <stdbool.h>
#include <unistd.h>
#include "inateck_scanner_ble.h"


int main() {
    const char* result = inateck_scanner_cmd_get_inventory_clear_cache();
    if (result) {
        // result is in JSON format, parse the data
        const unsigned char* data = (const unsigned char*)result;
        int data_length = strlen(result);

        // Send data via Bluetooth write without response
        // Assume there is a function send_data_via_bluetooth to send data
        send_data_via_bluetooth(data, data_length);

        // Wait for the device to respond, receive data
        // Assume there is a function receive_data_via_bluetooth to receive data
        receive_data_via_bluetooth();

        const unsigned char* data = get_received_data();
        int data_length = get_received_data_length();

        // Parse the data
        int result = inateck_scanner_cmd_check_result(data, data_length);
        if (result == 0) {
            printf("Clear cache success\n");
        } else {
            printf("Clear cache failed\n");
        }
    }
    return 0;
}