diff --git a/src/CrFwRepErr.h b/src/CrFwRepErr.h
index d340310..b5462dd 100644
--- a/src/CrFwRepErr.h
+++ b/src/CrFwRepErr.h
@@ -19,6 +19,12 @@
* reported.
* This interface defines several error reporting functions, one for each set of
* error parameter types.
+ * Not all functions defined in this interface are used by the CORDET Framework.
+ * Some are intended for use by application components.
+ *
+ * The range of error codes is defined in type ::CrFwRepErrCode_t
.
+ * Note that this is a configurable type that users are expected to extend with
+ * their own error codes.
*
* In general, the implementation of this interface is entirely application-specific
* but a simple default implementation is provided in CrFwRepErr.c
.
@@ -145,10 +151,35 @@ void CrFwRepErrPckt(CrFwRepErrCode_t errCode, CrFwTypeId_t typeId,
* @param errCode the error code
* @param instanceId the instance identifier of the component which raises the error report
* @param typeId the type identifier of the component which raises the error report
- * @param rep the component holding the report which triggered the error
+ * @param rep a component holding a report
*/
void CrFwRepErrRep(CrFwRepErrCode_t errCode, CrFwTypeId_t typeId,
CrFwInstanceId_t instanceId, FwSmDesc_t rep);
+/**
+ * Report an error which has one parameter attached to it representing a command component.
+ * This function generate an error report with one parameter.
+ * @param errCode the error code
+ * @param instanceId the instance identifier of the component which raises the error report
+ * @param typeId the type identifier of the component which raises the error report
+ * @param cmd a component holding a command
+ */
+void CrFwRepErrCmd(CrFwRepErrCode_t errCode, CrFwTypeId_t typeId,
+ CrFwInstanceId_t instanceId, FwSmDesc_t cmd);
+
+
+/**
+ * Report an error which has three parameters attached to it representing the kind of a report
+ * or command as given by the triplet [type, sub-type, discriminant].
+ * This function generate an error report with three parameters.
+ * @param errCode the error code
+ * @param instanceId the instance identifier of the component which raises the error report
+ * @param typeId the type identifier of the component which raises the error report
+ * @param type a report or command service
+ */
+void CrFwRepErrKind(CrFwRepErrCode_t errCode, CrFwTypeId_t typeId,
+ CrFwInstanceId_t instanceId, CrFwServType_t servType,
+ CrFwServSubType_t servSubType, CrFwDiscriminant_t disc);
+
#endif /* CRFW_REPERR_H_ */
diff --git a/tests/config/CrFwRepErr.c b/tests/config/CrFwRepErr.c
index fe0c487..fd84a83 100644
--- a/tests/config/CrFwRepErr.c
+++ b/tests/config/CrFwRepErr.c
@@ -220,6 +220,41 @@ void CrFwRepErrRep(CrFwRepErrCode_t errCode, CrFwTypeId_t typeId,
errRepPos = (CrFwCounterU2_t)((errRepPos + 1) % CR_FW_ERR_REP_ARRAY_SIZE);
}
+/*-----------------------------------------------------------------------------------------*/
+void CrFwRepErrCmd(CrFwRepErrCode_t errCode, CrFwTypeId_t typeId,
+ CrFwInstanceId_t instanceId, FwSmDesc_t cmd) {
+ CrFwCounterU1_t i;
+ FwSmDesc_t* temp = NULL;
+
+ errRepArray[errRepPos].errCode = errCode;
+ errRepArray[errRepPos].instanceId = instanceId;
+ errRepArray[errRepPos].typeId = typeId;
+ temp = (FwSmDesc_t*)&errRepArray[errRepPos].par[0]; /* Load address of cmd in first 4 elements of par[] */
+ *temp = cmd;
+ for (i=4; i