Beispiel #1
0
/** @req COMM472  @req COMM602  @req COMM261 */
static Std_ReturnType ComM_Internal_NotifyNm( const ComM_ChannelType* ChannelConf){
	ComM_Internal_ChannelType* ChannelInternal = &ComM_Internal.Channels[ChannelConf->Number];

	Std_ReturnType globalStatus = E_OK;

	if ((ChannelConf->NmVariant == COMM_NM_VARIANT_FULL) ||
		(ChannelConf->NmVariant == COMM_NM_VARIANT_PASSIVE)) {
#if defined(USE_NM) || defined(COMM_TESTS)
		Nm_ReturnType nmStatus = NM_E_OK;
		if (ChannelInternal->Mode == COMM_FULL_COMMUNICATION) {
			if (ChannelInternal->SubMode == COMM_SUBMODE_NETWORK_REQUESTED) {
				nmStatus = Nm_NetworkRequest(ChannelConf->NmChannelHandle);  /**< @req COMM129.1 */
			} else if (ChannelInternal->SubMode == COMM_SUBMODE_READY_SLEEP) {
				nmStatus = Nm_NetworkRelease(ChannelConf->NmChannelHandle);  /**< @req COMM133.1 */
			} else {
				//Nothing to be done.
			}
		}
		if (nmStatus != NM_E_OK) {
			globalStatus = E_NOT_OK;
		}
#else
		globalStatus = E_NOT_OK;
#endif
	}

	return globalStatus;
}
Beispiel #2
0
/** @req COMM472  @req COMM602  @req COMM261 */
static Std_ReturnType ComM_Internal_NotifyNm( const ComM_ChannelType* ChannelConf){
	ComM_Internal_ChannelType* ChannelInternal = &ComM_Internal.Channels[ChannelConf->Number];

	Std_ReturnType status = E_OK;

	if (ChannelConf->NmVariant == COMM_NM_VARIANT_FULL)
	{
#if defined(USE_NM) || defined(COMM_TESTS)
		if (ChannelInternal->Mode == COMM_FULL_COMMUNICATION)
		{
			if (ChannelInternal->SubMode == COMM_FULL_COM_NETWORK_REQUESTED)
			{
				status = Nm_NetworkRequest(ChannelConf->NmChannelHandle);  /** @req COMM869.partially */ /** @req COMM870 */
			}
			else if (ChannelInternal->SubMode == COMM_FULL_COM_READY_SLEEP)
			{
				status = Nm_NetworkRelease(ChannelConf->NmChannelHandle);  /**< @req COMM133 */
			}
		}
#else
		status = E_NOT_OK;
#endif
	}

	if (ChannelConf->NmVariant == COMM_NM_VARIANT_NONE || ChannelConf->NmVariant == COMM_NM_VARIANT_LIGHT)
	{
		if (ChannelInternal->Mode == COMM_FULL_COMMUNICATION)
		{
			if (ChannelInternal->SubMode == COMM_FULL_COM_NETWORK_REQUESTED)
			{
				/* start timer */ /* cancelling timer by restarting it */
				ChannelInternal->FullComMinDurationTimeLeft = COMM_T_MIN_FULL_COM_MODE_DURATION; /** @req COMM886 */ /** @req COMM887 */
			}
			else if (ChannelInternal->SubMode == COMM_FULL_COM_READY_SLEEP)
			{
				ChannelInternal->LightTimeoutTimeLeft = ChannelConf->LightTimeout; /** @req COMM891 */
			}
		}
	}

	return status;
}