#ifndef _MODBUS_HMI #define _MODBUS_HMI #include "modbus_struct.h" typedef struct { int send_log; int new_send_log_checked; int log_size_sent; // int flag_ready_send_array; int flag_data_received; int flag_log_array_sent; int flag_log_array_ready_sent; // int flag_end_of_log; int step; int number_of_log; unsigned long count_write_to_modbus; unsigned long current_address; unsigned long start_log_address; int log_address_step; } Logs_with_modbus; extern Logs_with_modbus log_to_HMI; int readDiscreteOutputsFromRemote(); int writeSigleDiscreteDataToRemote(unsigned int adres); int writeSingleAnalogOutputToRemote(unsigned int adres); int writeDiscreteDataToRemote(); int readAnalogDataFromRemote(); int writeAnalogDataToRemote(); int sendLogToHMI(); void setRegisterDiscreteOutput(int value, int adres); int getRegisterDiscreteOutput(int adres); void fillLogArea(); //TODO for testing only void clear_table_remoute(void); // clear table #define LOG_START_ADRES 0xA0000UL #define LOG_END_ADRES 0xF0000UL #define LOG_BUFFER_SIZE 0x50000UL //0x100UL #define ADRES_LOG_REGISTERS 100 #define SIZE_MODBUS_TABLE_DISCRET_REMOUTE 36 #define SIZE_MODBUS_TABLE_DISCRET_BITS (SIZE_MODBUS_TABLE_DISCRET_REMOUTE * 16) #define SIZE_MODBUS_ANALOG_REMOUTE 700 extern MODBUS_REG_STRUCT modbus_table_analog_in[SIZE_MODBUS_ANALOG_REMOUTE]; extern MODBUS_REG_STRUCT modbus_table_analog_out[SIZE_MODBUS_ANALOG_REMOUTE]; extern MODBUS_REG_STRUCT modbus_table_discret_in[SIZE_MODBUS_TABLE_DISCRET_REMOUTE]; extern MODBUS_REG_STRUCT modbus_table_discret_out[SIZE_MODBUS_TABLE_DISCRET_REMOUTE]; //extern unsigned int flag_waiting_answer; //extern unsigned int flag_message_sent; #endif //_MODBUS_HMI