Beispiel #1
0
void sml_proc_par_value_write(sml_proc_par_value *value, sml_buffer *buf) {
	if (value == 0) {
		sml_buf_optional_write(buf);
		return;
	}

	sml_buf_set_type_and_length(buf, SML_TYPE_LIST, 2);
	sml_u8_write(value->tag, buf);

	switch (*(value->tag)) {
		case SML_PROC_PAR_VALUE_TAG_VALUE:
			sml_value_write(value->data.value, buf);
			break;
		case SML_PROC_PAR_VALUE_TAG_PERIOD_ENTRY:
			sml_period_entry_write(value->data.period_entry, buf);
			break;
		case SML_PROC_PAR_VALUE_TAG_TUPEL_ENTRY:
			sml_tupel_entry_write(value->data.tupel_entry, buf);
			break;
		case SML_PROC_PAR_VALUE_TAG_TIME:
			sml_time_write(value->data.time, buf);
			break;
		default:
			printf("error: unknown tag in %s\n", __FUNCTION__);
	}
}
static void sml_prof_obj_period_entry_write_( void * p, sml_buffer *buf) {
	sml_prof_obj_period_entry * entry = p;

	sml_buf_set_type_and_length(buf, SML_TYPE_LIST, 4);
	sml_time_write(entry->val_time, buf);
	sml_u64_write(entry->status, buf);
	sml_sequence_write(entry->value_list, buf, sml_value_entry_write_);
	sml_signature_write(entry->period_signature, buf);
}
Beispiel #3
0
void sml_open_response_write(sml_open_response *msg, sml_buffer *buf) {
	sml_buf_set_type_and_length(buf, SML_TYPE_LIST, 6);

	sml_octet_string_write(msg->codepage, buf);
	sml_octet_string_write(msg->client_id, buf);
	sml_octet_string_write(msg->req_file_id, buf);
	sml_octet_string_write(msg->server_id, buf);
	sml_time_write(msg->ref_time, buf);
	sml_u8_write(msg->sml_version, buf);
}
void sml_get_profile_pack_response_write(sml_get_profile_pack_response *msg, sml_buffer *buf) {
	sml_buf_set_type_and_length(buf, SML_TYPE_LIST, 8);

	sml_octet_string_write(msg->server_id, buf);
	sml_time_write(msg->act_time, buf);
	sml_u32_write(msg->reg_period, buf);
	sml_tree_path_write(msg->parameter_tree_path, buf);
	sml_sequence_write(msg->header_list, buf, sml_prof_obj_header_entry_write_);
	sml_sequence_write(msg->period_list, buf, sml_prof_obj_period_entry_write_);
	sml_octet_string_write(msg->rawdata, buf);
	sml_signature_write(msg->profile_signature, buf);
}
Beispiel #5
0
void sml_tupel_entry_write(sml_tupel_entry *tupel, sml_buffer *buf) {
	if (tupel == 0) {
		sml_buf_optional_write(buf);
		return;
	}

	sml_buf_set_type_and_length(buf, SML_TYPE_LIST, 23);

	sml_octet_string_write(tupel->server_id, buf);
	sml_time_write(tupel->sec_index, buf);
	sml_u64_write(tupel->status, buf);

	sml_unit_write(tupel->unit_pA, buf);
	sml_i8_write(tupel->scaler_pA, buf);
	sml_i64_write(tupel->value_pA, buf);

	sml_unit_write(tupel->unit_R1, buf);
	sml_i8_write(tupel->scaler_R1, buf);
	sml_i64_write(tupel->value_R1, buf);

	sml_unit_write(tupel->unit_R4, buf);
	sml_i8_write(tupel->scaler_R4, buf);
	sml_i64_write(tupel->value_R4, buf);

	sml_octet_string_write(tupel->signature_pA_R1_R4, buf);

	sml_unit_write(tupel->unit_mA, buf);
	sml_i8_write(tupel->scaler_mA, buf);
	sml_i64_write(tupel->value_mA, buf);

	sml_unit_write(tupel->unit_R2, buf);
	sml_i8_write(tupel->scaler_R2, buf);
	sml_i64_write(tupel->value_R2, buf);

	sml_unit_write(tupel->unit_R3, buf);
	sml_i8_write(tupel->scaler_R3, buf);
	sml_i64_write(tupel->value_R3, buf);

	sml_octet_string_write(tupel->signature_mA_R2_R3, buf);
}