TEST(sml_tree, write) { sml_tree *t = sml_tree_init(); t->parameter_name = sml_octet_string_init((unsigned char *)"Hallo", 5); sml_tree_write(t, buf); expected_buf(buf, "730648616C6C6F0101", 9); sml_tree_free( t ); }
void sml_set_proc_parameter_request_write(sml_set_proc_parameter_request *msg, sml_buffer *buf) { sml_buf_set_type_and_length(buf, SML_TYPE_LIST, 5); sml_octet_string_write(msg->server_id, buf); sml_octet_string_write(msg->username, buf); sml_octet_string_write(msg->password, buf); sml_tree_path_write(msg->parameter_tree_path, buf); sml_tree_write(msg->parameter_tree, buf); }
void sml_attention_response_write(sml_attention_response *msg, sml_buffer *buf) { sml_buf_set_type_and_length(buf, SML_TYPE_LIST, 4); sml_octet_string_write(msg->server_id, buf); sml_octet_string_write(msg->attention_number, buf); sml_octet_string_write(msg->attention_message, buf); sml_tree_write(msg->attention_details, buf); }
void sml_tree_write(sml_tree *tree, sml_buffer *buf) { if (tree == 0) { sml_buf_optional_write(buf); return; } sml_buf_set_type_and_length(buf, SML_TYPE_LIST, 3); sml_octet_string_write(tree->parameter_name, buf); sml_proc_par_value_write(tree->parameter_value, buf); if (tree->child_list && tree->child_list_len > 0) { sml_buf_set_type_and_length(buf, SML_TYPE_LIST, tree->child_list_len); int i; for (i = 0; i < tree->child_list_len; i++) { sml_tree_write(tree->child_list[i], buf); } } else { sml_buf_optional_write(buf); } }