X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fnet%2Fpocketcmd.h;h=8bfd5e0965e0dec75915e94aab2e2263377f55a3;hb=1a8a2b9b57118be3f52d1261ebefac3875e67bcf;hp=7045f3fe2f7fbe98ef30929811128212df495a28;hpb=791e167e053bdd9250d34a9a5ccae6ccde4d6679;p=bertos.git diff --git a/bertos/net/pocketcmd.h b/bertos/net/pocketcmd.h index 7045f3fe..8bfd5e09 100644 --- a/bertos/net/pocketcmd.h +++ b/bertos/net/pocketcmd.h @@ -1,14 +1,40 @@ /** * \file * * - * \version $Id: pocketcmd.h 20030 2007-12-04 16:16:09Z batt $ + * \brief PocketBus command abstraction layer. * * \author Francesco Sacchi * - * \brief pocketBus protocol command layer interface. + * $WIZ$ module_name = "pocketcmd" + * $WIZ$ module_depends = "timer", "pocketbus" */ #ifndef NET_POCKETCMD_H @@ -19,8 +45,6 @@ #define PKTCMD_NULL 0 ///< pocketBus Null command -#define PKTCMD_REPLY_TIMEOUT 50 ///< Command replay timeout in milliseconds - typedef uint16_t pocketcmd_t; ///< Type for Command IDs /** @@ -88,6 +112,7 @@ INLINE void pocketcmd_setAddr(struct PocketCmdCtx *ctx, pocketbus_addr_t addr) void pocketcmd_init(struct PocketCmdCtx *ctx, struct PocketBusCtx *bus_ctx, pocketbus_addr_t addr, pocketcmd_lookup_t search); void pocketcmd_poll(struct PocketCmdCtx *ctx); bool pocketcmd_send(struct PocketCmdCtx *ctx, pocketcmd_t cmd, const void *buf, size_t len, bool has_replay); +bool pocketcmd_recv(struct PocketCmdCtx *ctx, PocketCmdMsg *recv_msg); void pocketcmd_replyNak(struct PocketCmdMsg *msg); void pocketcmd_replyAck(struct PocketCmdMsg *msg); @@ -108,5 +133,17 @@ INLINE bool pocketcmd_slaveReply(struct PocketCmdCtx *ctx, pocketcmd_t cmd, cons return pocketcmd_send(ctx, cmd, buf, len, false); } +/** + * Return true if message contain NAK. + */ +INLINE bool pocketcmd_checkNak(struct PocketCmdMsg *msg) +{ + if (msg->buf[0] == POCKETBUS_NAK) + return true; + + return false; +} + + #endif /* NET_POCKETCMD_H */