用到了itoa,但是编译时提示“undefined reference to `itoa’”所以使用sprintf来代替。
characterstring_init_ansi1(&My_Object_Name, "simple_", Object_Instance_Number);
334 bool characterstring_init_ansi1(
335 BACNET_CHARACTER_STRING * char_string,
336 const char *value,
337 uint32_t data)
338 {
339 return characterstring_init1(char_string, CHARACTER_ANSI_X34, value,
340 value ? strlen(value) : 0,
341 data);
342 }
281 bool characterstring_init1(
282 BACNET_CHARACTER_STRING * char_string,
283 uint8_t encoding,
284 const char *value,
285 size_t length,
286 uint32_t data)
287 {
288 bool status = false; /* return value */
289 size_t i; /* counter */
290 char string[25];
291
292 if (char_string) {
293 char_string->length = 0;
294 char_string->encoding = encoding;
295 /* save a byte at the end for NULL -
296 note: assumes printable characters */
297 if (length <= CHARACTER_STRING_CAPACITY) {
298 if (value) {
299 for (i = 0; i < MAX_CHARACTER_STRING_BYTES; i++) {
300 if (i < length) {
301 char_string->value[char_string->length] = value[i];
302 char_string->length++;
303 } else {
304 char_string->value[i] = 0;
305 }
306 }
307 } else {
308 for (i = 0; i < MAX_CHARACTER_STRING_BYTES; i++) {
309 char_string->value[i] = 0;
310 }
311 }
312 // itoa(data,string,10);
313 sprintf(string, "%d", data);
314 strcat(char_string->value, string);
315 char_string->length = strlen(char_string->value);
316 // printf("%s:%d##################............\n",char_string->value,char_string->length );
317 status = true;
318 }
319 }
320
321 return status;
322 }