test initial push
[apps/agl-service-unicens.git] / ucs2-interface / ucs_lib_interf.c
index 508b723..9e7167d 100644 (file)
@@ -222,8 +222,11 @@ void UCSI_Service(UCSI_Data_t *my)
                 (e->val.I2CWrite.isBurst ? UCS_I2C_BURST_MODE : UCS_I2C_DEFAULT_MODE), e->val.I2CWrite.blockCount,
                 e->val.I2CWrite.slaveAddr, e->val.I2CWrite.timeout, e->val.I2CWrite.dataLen, e->val.I2CWrite.data, OnUcsI2CWrite))
                 popEntry = false;
-            else
+            else {
                 UCSI_CB_OnUserMessage(my->tag, true, "Ucs_I2c_WritePort failed", 0);
+                assert(e->val.I2CWrite.result_fptr != NULL);
+                e->val.I2CWrite.result_fptr(NULL /*processing error*/, e->val.I2CWrite.request_ptr);
+            }
             break;
         default:
             assert(false);
@@ -781,6 +784,8 @@ static void OnUcsMgrReport(Ucs_MgrReport_t code, uint16_t node_address, Ucs_Rm_N
         UCSI_CB_OnUserMessage(my->tag, true, "Node=%X: unknown code", 1, node_address);
         break;
     }
+    
+    UCSI_CB_OnMgrReport(my->tag, code, node_address, node_ptr);
 }
 
 static void OnUcsNsRun(Ucs_Rm_Node_t * node_ptr, Ucs_Ns_ResultCode_t result, void *ucs_user_ptr)
@@ -826,6 +831,16 @@ static void OnUcsI2CWrite(uint16_t node_address, uint16_t i2c_port_handle,
 {
     UCSI_Data_t *my = (UCSI_Data_t *)user_ptr;
     assert(MAGIC == my->magic);
+    
+    if ((my->currentCmd->cmd == UnicensCmd_I2CWrite) 
+        && (my->currentCmd->val.I2CWrite.result_fptr)) {
+        
+        my->currentCmd->val.I2CWrite.result_fptr(&result.code, my->currentCmd->val.I2CWrite.request_ptr);
+    }
+    else {
+        assert(false);
+    }
+    
     OnCommandExecuted(my, UnicensCmd_I2CWrite);
     if (UCS_I2C_RES_SUCCESS != result.code)
         UCSI_CB_OnUserMessage(my->tag, true, "Remote I2C Write to node=0x%X failed", 1, node_address);