| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183 |
- /*******************************************************************************
- * Copyright (c) 2019, Rockwell Automation, Inc.
- * All rights reserved.
- *
- ******************************************************************************/
- /** @file
- * @brief Declare functions to operate on CIP string types
- *
- * Some functions to create CIP string types from C strings or data buffers.
- */
- #ifndef OPENER_CIPSTRING_H_
- #define OPENER_CIPSTRING_H_
- #include "typedefs.h"
- #include "ciptypes.h"
- CipStringN *SetCipStringNByData(CipStringN *const cip_string,
- CipUint str_len,
- CipUint size,
- const CipOctet *const data);
- /** @brief Copies the content of C-string to a CipStringN under the expectation, that each C-String element is a StringN octet
- *
- * @param cip_string Target CipStringN
- * @param string Source C-string
- * @param symbol_size Size of a symbol in CipStringN instance
- *
- * @return Target CipStringN
- *
- */
- CipStringN *SetCipStringNByCstr(CipStringN *const cip_string,
- const char *const string,
- const CipUint symbol_size);
- /** @brief Clears the internal structure of a CipStringN
- *
- * @param cip_string The CipStringN to be freed
- *
- * @return Returns the address of the cleared CipStringN
- *
- */
- CipStringN *ClearCipStringN(CipStringN *const cip_string);
- /** @brief Frees the memory of a CipStringN
- *
- * @param cip_string The CipStringN to be freed
- *
- */
- void FreeCipStringN(CipStringN *const cip_string);
- /** @brief Sets length and data for a CipString2 based on an octet stream and symbol length
- *
- * @param cip_string The CipString2 to be set
- * @param str_len Amount of CipString2 symbols
- * @param data The octet stream
- *
- * @return The CipString2 address
- */
- CipString2 *SetCipString2ByData(CipString2 *const cip_string,
- CipUint str_len,
- const CipOctet *const data);
- /** @brief Copies the content of C-string to a CipString2 under the expectation, that each C-String element is a CipString2 octet
- *
- * @param cip_string Target CipString2
- * @param string Source C-string
- *
- * @return Target CipString2
- *
- */
- CipString2 *SetCipString2ByCstr(CipString2 *const cip_string,
- const char *const string);
- /** @brief Clears the internal structure of a CipString2
- *
- * @param cip_string The CipString2 to be cleared
- *
- * @return Returns the address of the cleared CipString2
- *
- */
- CipString2 *ClearCipString2(CipString2 *const cip_string);
- /** @brief Frees a CipString2 structure
- *
- * @param cip_string The CipString2 structure to be freed
- *
- * @return Freed CipString2 structure
- *
- */
- void FreeCipString2(CipString2 *const cip_string);
- /** @brief Clears the internal CipString structure
- *
- * @param cip_string The CipString structure to be cleared
- *
- * @return Cleared CipString structure
- *
- */
- CipString *ClearCipString(CipString *const cip_string);
- /** @brief Frees a CipString structure
- *
- * @param cip_string The CipString structure to be freed
- *
- */
- void FreeCipString(CipString *const cip_string);
- /** @brief Sets length and data for a CipString based on an octet stream and symbol length
- *
- * @param cip_string The string to be set
- * @param str_len Amount of CipString symbols
- * @param data The octet stream
- *
- * @return The CipString address
- */
- CipString *SetCipStringByData(CipString *const cip_string,
- CipUint str_len,
- const CipOctet *const data);
- /** @brief Copies the content of C-string to a CipString under the expectation, that each C-String element is a CipString octet
- *
- * @param cip_string Target CipString
- * @param string Source C-string
- *
- * @return Target CipString
- *
- */
- CipString *SetCipStringByCstr(CipString *const cip_string,
- const char *const string);
- /** @brief Clears the internal CipShortString structure
- *
- * @param cip_string The CipShortString structure to be cleared
- *
- * @return Cleared CipShortString structure
- *
- */
- CipShortString *ClearCipShortString(CipShortString *const cip_string);
- /** @brief Frees a CipShortString structure
- *
- * @param cip_string The CipShortString structure to be freed
- *
- */
- void FreeCipShortString(CipShortString *const cip_string);
- /** @brief Sets length and data for a CipShortString based on an octet stream and symbol length
- *
- * @param cip_string The string to be set
- * @param str_len Amount of CipString symbols
- * @param data The octet stream
- *
- * @return The CipShortString address
- */
- CipShortString *SetCipShortStringByData(CipShortString *const cip_string,
- const CipUsint str_len,
- const CipOctet *const data);
- /** @brief Copies the content of C-string to a CipShortString under the expectation, that each C-String element is a CipShortString octet
- *
- * @param cip_string Target CipShortString
- * @param string Source C-string
- *
- * @return Target CipShortString
- *
- */
- CipShortString *SetCipShortStringByCstr(CipShortString *const cip_string,
- const char *const string);
- /** @brief Returns a NUL terminated C-string from a CipShortString
- *
- * @param string The CipShortString to extract from
- * @param buf Pointer to a buffer to store the contents in
- * @param len Length of buffer
- *
- * @return POSIX OK(0) if the complete string fit in @param buf, otherwise non-zero.
- */
- int GetCstrFromCipShortString(CipShortString *const string, char *buf,
- size_t len);
- #endif /* of OPENER_CIPSTRING_H_ */
|