removed all uses of the jobs queue for TF responses, not needed naymore
This commit is contained in:
+3
-33
@@ -32,39 +32,19 @@ void comm_init(void)
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
static void job_ping_reply(Job *job)
|
||||
{
|
||||
tf_respond_snprintf(MSG_SUCCESS, job->frame_id, "%s/%s", GEX_VERSION, GEX_PLATFORM);
|
||||
}
|
||||
|
||||
static TF_Result lst_ping(TinyFrame *tf, TF_Msg *msg)
|
||||
{
|
||||
Job job = {
|
||||
.cb = job_ping_reply,
|
||||
.frame_id = msg->frame_id
|
||||
};
|
||||
scheduleJob(&job, TSK_SCHED_LOW);
|
||||
|
||||
tf_respond_snprintf(MSG_SUCCESS, msg->frame_id, "%s/%s", GEX_VERSION, GEX_PLATFORM);
|
||||
return TF_STAY;
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
static void job_unhandled_resp(Job *job)
|
||||
{
|
||||
tf_respond_snprintf(MSG_ERROR, job->frame_id, "UNKNOWN MSG %"PRIu32, job->d32);
|
||||
}
|
||||
|
||||
static TF_Result lst_default(TinyFrame *tf, TF_Msg *msg)
|
||||
{
|
||||
dbg("!! Unhandled msg type %02"PRIx8", frame_id 0x%04"PRIx16, msg->type, msg->frame_id);
|
||||
Job job = {
|
||||
.cb = job_unhandled_resp,
|
||||
.frame_id = msg->frame_id,
|
||||
.d32 = msg->type
|
||||
};
|
||||
scheduleJob(&job, TSK_SCHED_LOW);
|
||||
|
||||
tf_respond_snprintf(MSG_ERROR, msg->frame_id, "UNKNOWN MSG %"PRIu8, msg->type);
|
||||
return TF_STAY;
|
||||
}
|
||||
|
||||
@@ -78,18 +58,8 @@ static TF_Result lst_unit(TinyFrame *tf, TF_Msg *msg)
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
static void job_list_units(Job *job)
|
||||
{
|
||||
ureg_report_active_units(job->frame_id);
|
||||
}
|
||||
|
||||
static TF_Result lst_list_units(TinyFrame *tf, TF_Msg *msg)
|
||||
{
|
||||
Job job = {
|
||||
.cb = job_list_units,
|
||||
.frame_id = msg->frame_id,
|
||||
};
|
||||
scheduleJob(&job, TSK_SCHED_LOW);
|
||||
|
||||
ureg_report_active_units(msg->frame_id);
|
||||
return TF_STAY;
|
||||
}
|
||||
|
||||
+25
-65
@@ -8,6 +8,7 @@
|
||||
void tf_respond_snprintf(TF_TYPE type, TF_ID id, const char *format, ...)
|
||||
{
|
||||
#define ERR_STR_LEN 64
|
||||
|
||||
char buf[ERR_STR_LEN];
|
||||
va_list args;
|
||||
va_start(args, format);
|
||||
@@ -32,6 +33,12 @@ void tf_respond_buf(TF_TYPE type, TF_ID id, const uint8_t *buf, uint32_t len)
|
||||
}
|
||||
|
||||
|
||||
void tf_respond_ok(TF_ID frame_id)
|
||||
{
|
||||
tf_respond_buf(MSG_SUCCESS, frame_id, NULL, 0);
|
||||
}
|
||||
|
||||
|
||||
void tf_send_buf(TF_TYPE type, const uint8_t *buf, uint32_t len)
|
||||
{
|
||||
TF_Msg msg;
|
||||
@@ -46,93 +53,46 @@ void tf_send_buf(TF_TYPE type, const uint8_t *buf, uint32_t len)
|
||||
}
|
||||
|
||||
|
||||
void tf_respond_str(TF_TYPE type, TF_ID frame_id, const char *str)
|
||||
{
|
||||
tf_respond_buf(type, frame_id, (const uint8_t *) str, (uint32_t) strlen(str));
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
static void job_respond_err(Job *job)
|
||||
void tf_respond_err(TF_ID frame_id, const char *message)
|
||||
{
|
||||
tf_respond_str(MSG_ERROR, job->frame_id, job->str);
|
||||
tf_respond_str(MSG_ERROR, frame_id, message);
|
||||
}
|
||||
|
||||
|
||||
void sched_respond_err(TF_ID frame_id, const char *message)
|
||||
void tf_respond_bad_cmd(TF_ID frame_id)
|
||||
{
|
||||
dbg("ERR: %s", message);
|
||||
Job job = {
|
||||
.cb = job_respond_err,
|
||||
.frame_id = frame_id,
|
||||
.str = message
|
||||
};
|
||||
scheduleJob(&job, TSK_SCHED_LOW);
|
||||
tf_respond_err(frame_id, "BAD COMMAND");
|
||||
}
|
||||
|
||||
|
||||
void sched_respond_bad_cmd(TF_ID frame_id)
|
||||
void tf_respond_malformed_cmd(TF_ID frame_id)
|
||||
{
|
||||
sched_respond_err(frame_id, "BAD COMMAND");
|
||||
}
|
||||
|
||||
|
||||
void sched_respond_malformed_cmd(TF_ID frame_id)
|
||||
{
|
||||
sched_respond_err(frame_id, "MALFORMED PAYLOAD");
|
||||
tf_respond_err(frame_id, "MALFORMED PAYLOAD");
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
static void job_respond_suc(Job *job)
|
||||
void tf_respond_u8(TF_ID frame_id, uint8_t d)
|
||||
{
|
||||
tf_respond_ok(job->frame_id);
|
||||
tf_respond_buf(MSG_SUCCESS, frame_id, (const uint8_t *) &d, 1);
|
||||
}
|
||||
|
||||
|
||||
void sched_respond_suc(TF_ID frame_id)
|
||||
void tf_respond_u16(TF_ID frame_id, uint16_t d)
|
||||
{
|
||||
Job job = {
|
||||
.cb = job_respond_suc,
|
||||
.frame_id = frame_id
|
||||
};
|
||||
scheduleJob(&job, TSK_SCHED_LOW);
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
static void job_respond_uX(Job *job)
|
||||
{
|
||||
tf_respond_buf(MSG_SUCCESS, job->frame_id, (const uint8_t *) &job->d32, job->len);
|
||||
tf_respond_buf(MSG_SUCCESS, frame_id, (const uint8_t *) &d, 2);
|
||||
}
|
||||
|
||||
|
||||
void sched_respond_u8(TF_ID frame_id, uint8_t d)
|
||||
void tf_respond_u32(TF_ID frame_id, uint32_t d)
|
||||
{
|
||||
Job job = {
|
||||
.cb = job_respond_uX,
|
||||
.frame_id = frame_id,
|
||||
.d32 = d,
|
||||
.len = 1
|
||||
};
|
||||
scheduleJob(&job, TSK_SCHED_HIGH);
|
||||
}
|
||||
|
||||
|
||||
void sched_respond_u16(TF_ID frame_id, uint16_t d)
|
||||
{
|
||||
Job job = {
|
||||
.cb = job_respond_uX,
|
||||
.frame_id = frame_id,
|
||||
.d32 = d,
|
||||
.len = 2
|
||||
};
|
||||
scheduleJob(&job, TSK_SCHED_HIGH);
|
||||
}
|
||||
|
||||
|
||||
void sched_respond_u32(TF_ID frame_id, uint32_t d)
|
||||
{
|
||||
Job job = {
|
||||
.cb = job_respond_uX,
|
||||
.frame_id = frame_id,
|
||||
.d32 = d,
|
||||
.len = 4
|
||||
};
|
||||
scheduleJob(&job, TSK_SCHED_HIGH);
|
||||
tf_respond_buf(MSG_SUCCESS, frame_id, (const uint8_t *) &d, 4);
|
||||
}
|
||||
|
||||
+8
-22
@@ -38,10 +38,7 @@ void tf_respond_buf(TF_TYPE type, TF_ID frame_id, const uint8_t *buf, uint32_t l
|
||||
*
|
||||
* @param frame_id - ID of the original msg
|
||||
*/
|
||||
static inline void tf_respond_ok(TF_ID frame_id)
|
||||
{
|
||||
tf_respond_buf(MSG_SUCCESS, frame_id, NULL, 0);
|
||||
}
|
||||
void tf_respond_ok(TF_ID frame_id);
|
||||
|
||||
/**
|
||||
* Same like tf_respond_buf(), but used for sending spontaneous reports.
|
||||
@@ -62,10 +59,7 @@ void tf_send_buf(TF_TYPE type, const uint8_t *buf, uint32_t len);
|
||||
* @param frame_id - ID of the original msg
|
||||
* @param str - character buffer, zero terminated
|
||||
*/
|
||||
static inline void tf_respond_str(TF_TYPE type, TF_ID frame_id, const char *str)
|
||||
{
|
||||
tf_respond_buf(type, frame_id, (const uint8_t *) str, (uint32_t) strlen(str));
|
||||
}
|
||||
void tf_respond_str(TF_TYPE type, TF_ID frame_id, const char *str);
|
||||
|
||||
/**
|
||||
* Schedule sending an ASCII string error response.
|
||||
@@ -74,29 +68,21 @@ static inline void tf_respond_str(TF_TYPE type, TF_ID frame_id, const char *str)
|
||||
* @param frame_id - ID of the original msg
|
||||
* @param str - character buffer, zero terminated
|
||||
*/
|
||||
void sched_respond_err(TF_ID frame_id, const char *str);
|
||||
void tf_respond_err(TF_ID frame_id, const char *str);
|
||||
|
||||
/**
|
||||
* Variant of sched_respond_err() for reporting bad received command code
|
||||
*
|
||||
* @param msg_id - ID of the original msg
|
||||
*/
|
||||
void sched_respond_bad_cmd(TF_ID frame_id);
|
||||
void tf_respond_bad_cmd(TF_ID frame_id);
|
||||
|
||||
/**
|
||||
* Variant of sched_respond_err() for reporting malformed commands (e.g. too short payload)
|
||||
*
|
||||
* @param msg_id - ID of the original msg
|
||||
*/
|
||||
void sched_respond_malformed_cmd(TF_ID frame_id);
|
||||
|
||||
/**
|
||||
* Schedule sending an empty response with MSG_SUCCESS type.
|
||||
* Schedules a low priority job.
|
||||
*
|
||||
* @param frame_id - ID of the original msg
|
||||
*/
|
||||
void sched_respond_suc(TF_ID frame_id);
|
||||
void tf_respond_malformed_cmd(TF_ID frame_id);
|
||||
|
||||
/**
|
||||
* Schedule sending a one-byte response with MSG_SUCCESS type.
|
||||
@@ -105,7 +91,7 @@ void sched_respond_suc(TF_ID frame_id);
|
||||
* @param frame_id - ID of the original msg
|
||||
* @param d - data
|
||||
*/
|
||||
void sched_respond_u8(TF_ID frame_id, uint8_t d);
|
||||
void tf_respond_u8(TF_ID frame_id, uint8_t d);
|
||||
|
||||
/**
|
||||
* Schedule sending a two-byte response with MSG_SUCCESS type.
|
||||
@@ -114,7 +100,7 @@ void sched_respond_u8(TF_ID frame_id, uint8_t d);
|
||||
* @param frame_id - ID of the original msg
|
||||
* @param d - data
|
||||
*/
|
||||
void sched_respond_u16(TF_ID frame_id, uint16_t d);
|
||||
void tf_respond_u16(TF_ID frame_id, uint16_t d);
|
||||
|
||||
/**
|
||||
* Schedule sending a 4-byte response with MSG_SUCCESS type.
|
||||
@@ -123,6 +109,6 @@ void sched_respond_u16(TF_ID frame_id, uint16_t d);
|
||||
* @param frame_id - ID of the original msg
|
||||
* @param d - data
|
||||
*/
|
||||
void sched_respond_u32(TF_ID frame_id, uint32_t d);
|
||||
void tf_respond_u32(TF_ID frame_id, uint32_t d);
|
||||
|
||||
#endif //GEX_F072_MSG_RESPONSES_H
|
||||
|
||||
Reference in New Issue
Block a user