#pragma once

#include "../../libs/include/pnet_api.h"

/**
 * Indication to the application that the data status received from the
 * controller has changed.
 *
 * This application call-back function is called by the Profinet stack to
 * indicate that the received data status has changed.
 *
 * The application is not required by the Profinet stack to take any action. It
 * may use this information as it wishes. The return value from this call-back
 * function is ignored by the Profinet stack.
 *
 * Индикация приложению, что статус данных, полученных от контроллера, изменился. 
 * 
 * Эта функция обратного вызова приложения вызывается стеком Profinet, чтобы указать, что статус полученных данных изменился. 
 * 
 * Стек Profinet не требует от приложения каких-либо действий. Он может использовать эту информацию по своему усмотрению. 
 * Возвращаемое значение этой функции обратного вызова игнорируется стеком Profinet.
 *  
 * @param net              InOut: The p-net stack instance
 * @param arg              InOut: User-defined data (not used by p-net)
 * @param arep             In:    The AREP.
 * @param crep             In:    The CREP.
 * @param changes          In:    The changed bits in the received data status.
 *                                See pnet_data_status_bits_t
 * @param data_status      In:    Current received data status (after changes).
 *                                See pnet_data_status_bits_t
 * @return 0 on success. Other values are ignored.
 */
int profinet_cb_new_data_status_ind (
    pnet_t * net,
    void * arg,
    uint32_t arep,
    uint32_t crep,
    uint8_t changes,
    uint8_t data_status);