56 lines
1.2 KiB
C
56 lines
1.2 KiB
C
|
|
#include "cw.h"
|
|
|
|
|
|
#include "dbg.h"
|
|
#include "log.h"
|
|
#include "msgset.h"
|
|
#include "val.h"
|
|
|
|
|
|
int cw_out_generic(struct cw_ElemHandler * handler, struct cw_ElemHandlerParams * params
|
|
, uint8_t * dst)
|
|
{
|
|
|
|
int start, len, l;
|
|
|
|
// cw_dbg(DBG_X,"Generic out!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
|
|
// cw_cfg_dump(params->cfg);
|
|
// cw_dbg(DBG_X,"Generic out!!!!!!!!!!!!!!!!!!!!!!!!!!!! ENDDUMP");
|
|
|
|
start = params->msgset->header_len(handler);
|
|
len = ((const cw_Type_t*)(handler->type))->
|
|
write(params->cfg,handler->key,dst+start,handler->param);
|
|
|
|
|
|
if (len == -1) {
|
|
const char *vendor="";
|
|
if ( handler->vendor ) {
|
|
vendor=cw_strvendor(handler->vendor);
|
|
}
|
|
if ( params->elemdata->mand) {
|
|
cw_log(LOG_ERR,
|
|
"Can't put mandatory element %s %d-(%s) into %s. No value for '%s' found.",
|
|
vendor, handler->id, handler->name, params->msgdata->name
|
|
, handler->key
|
|
);
|
|
}
|
|
else{
|
|
/* cw_dbg(DBG_WARN,"No output for element %s%d -(%s) in %s. Item %s not found.",
|
|
vendor,
|
|
a->elem_id, cw_strelemp(conn->actions, a->elem_id)
|
|
, cw_strmsg(a->msg_id),a->item_id);
|
|
*/
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
l = params->msgset->write_header(handler,dst,len);
|
|
|
|
return l;
|
|
}
|
|
|
|
|
|
|
|
|