⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tc12mes.h

📁 select programe, 1 raw socket2 udp socket.
💻 H
字号:
#ifndef __TC12MES_H
#define __TC12MES_H

//
//	TITLE:
//
//	DESCRIPTION:
//		definination of the protocol structure of TC12
//		refer to	TC12 Instation PC/HOST Interface Specfication
//
//	FILENAME:
//		tc12mes.h
//
//	AUTHOR(S):
//		Andrew Dai(mailto:andrew.x.dai@gmail.com	)
//
//	CREATION DATE:
//		date from: 2007-5-8
//
//	MODIFICATION HISTORY:
//
//

#include "icu.h"

typedef struct 
{
	short message_counter;
	unsigned char packet_counter:6;
	unsigned char first_packet:1;
	unsigned char last_packet:1;
	unsigned char reserver:8;
	unsigned short bytes;
} TC12_packet_header_type;

typedef short TC12_message_type;

typedef struct 
{
	TC12_message_type message_type;						/*	TC12_announcement	*/
	short host_number;
} TC12_announcement_type;

typedef struct 
{
	TC12_message_type message_type;						/*	TC12_acknowledgement	*/
	short instation_number;
	unsigned char major_version;
	unsigned char minor_version;
	char mains_input_failed;							/*	???	i donnot know why the item occupy 2 bytes space	*/
	short year;												/* #pragma pack(1) to ensure beginning at odd offset	*/
	char month;
	char day;
	char hour;
	char minute;
	char second;
	char hundredths;
} TC12_acknowledgement_message_type;

typedef struct 
{
	TC12_message_type message_type;						/*	TC12_initialisation	*/
	short configured_ports;
	short configured_OTUs;
	short TC8_outstation_groups;
	short TC8_digital_outputs;
	short TC8_digital_output_offset;
	unsigned char TC8_type;
	unsigned char additional_propagation_delay;
} TC12_configuration_message_type;

typedef union
{
	struct 
	{
		unsigned char protocol	:3;
		unsigned char speed		:2;
		unsigned char full_duplex:1;
		unsigned char up_down_load:1;
	} TC12;
} TC12_port_details_type;

typedef union
{
	struct 
	{
		unsigned short port_number	:6;
		unsigned short OTU_on_port	:4;
		unsigned short control_bytes:2;
		unsigned short reply_bytes	:4;
	} TC12;
} TC12_OTU_details_type;

typedef struct 
{
	TC12_message_type message_type;						/*	TC12_error_message	*/
	short IRN_type;
	short IRN;
	short error_type;
} TC12_error_message_type;

typedef enum
{
	TC12_configuration_values_invalid=1,
	TC12_already_a_high_priority_cpu,
	TC12_TC8_OSNS_and_DIGO_overlap,
	TC12_DIGO_overlaps_other_cpus,
	TC12_OTU_address_missing,
	TC12_multiple_OTU_address,
	TC12_port_capacity_exceeded,
	TC12_invalid_address,
	TC12_invalid_protocol,
	TC12_invalid_port_number,
	TC12_too_many_reply_bytes,
	TC12_too_many_control_bytes,
	TC12_IMD_faulty_or_not_installed,
	TC12_up_down_load_transfer_failed,
	TC12_invalid_transfer_mode,
	TC12_invalid_length,
	TC12_transfer_aborted,
	TC12_retries_exceeded,
	TC12_message_corrupt,
	TC12_cannot_save_message,
	TC12_not_synchronised,
	TC12_not_enouth_time,
	TC12_linN_out_of_range,
	TC12_message_timeout,
	TC12_OTU_not_configured,
	TC12_reply_too_long,
	TC12_message_too_long
} TC12_error_types;

typedef struct 
{
	TC12_message_type message_type;						/*	TC12_checked_message	*/
	short fatal_error;
} TC12_check_message_type;

typedef struct 
{
	TC12_message_type message_type;						/*	TC12_control_data	*/
	char SIP_output;
	char SIP_flash;
	char time_changed;
	short year;
	char month;
	char day;
	char hour;
	char minute;
	char second;
	char hundredths;
} TC12_control_message_type;

typedef struct 
{
	unsigned char message_transfer	:1;
	unsigned char address_error		:1;
	unsigned char CRC_error			:1;
	unsigned char no_reply			:1;
	unsigned char reply_too_short	:1;
	unsigned char overrun_error		:1;
	unsigned char parity_error		:1;
	unsigned char framing_error		:1;
	unsigned char error_number		:6;
} TC12_reply_status;

typedef enum 
{
	TC12_OK=0,
	TC12_invalid_configuration,
	TC12_no_control_message_received,
	TC12_IMD_failed,
	TC12_output_procesing_overrun
} TC12_error_numbers;

typedef struct 
{
	TC12_message_type message_type;						/*	TC12_reply_data	*/
	short control_message_counter;
	char SIP_input;
	char mains_input_failed;
	short year;
	char month;
	char day;
	char hour;
	char minute;
	char second;
	char hundredths;
} TC12_reply_message_type;

#define TC12_UP_DOWN_REQUEST_COMMON_BIT \
			TC12_message_type message_type; \
			char port_number; \
			char OTU_on_port; \
			char transfer_mode; \
			short request_length;

typedef struct 
{
	TC12_UP_DOWN_REQUEST_COMMON_BIT
} TC12_up_down_load_request_type;

typedef struct 
{
	TC12_UP_DOWN_REQUEST_COMMON_BIT
	short max_reply_length;
} TC12_up_down_load_request_type2;

typedef struct 
{
	TC12_message_type message_type;
	char port_number;
	char OTU_on_port;
	short reply_length;
} TC12_up_down_load_reply_type;

typedef struct 
{
	TC12_message_type message_type;
	char port_number;
	char OTU_on_port;
	short error_type;
} TC12_up_down_load_error_type;

typedef enum
{
	TC12_announcement=0,
	TC12_acknowledgement,
	TC12_configuration,
	TC12_checked_data,
	TC12_control_data,
	TC12_reply_data,
	TC12_error_message,
	TC12_up_down_load_request,
	TC12_up_down_load_reply,
	TC12_up_down_load_error,
	TC12_up_down_load_request2
} TC12_message_types;

typedef enum
{
	TC12_up_dn_load_continuous=0,
	TC12_up_dn_load_split
} TC12_up_dn_load_transfer_modes;


#endif													/* __TC12MES_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -