信號的發送屬性
Triggered屬性:調用Com_SendSignal( )服務請求具備Triggered屬性的信號發送,可以觸發相關I-PDU的發送,但是如果該I-PDU的發送模式被配置為Peiodic時,只更新信號的值,不會觸發相關I-PDU的立即發送,而是在下一周期到來時觸發發送
Pending屬性:Com_SendSignal( )服務請求調用具備Pending屬性的信號發送,不會觸發相關I-PDU的發送
I-PDU發送模式
Direct/n-times模式:包含於該I-PDU的任何具備Triggered屬性的信號及信號組的更新都會觸發I-PDU的立即發送,當上層面模塊調用Com_SendSignal( )/Com_SendSignalGroup( )更新信號或者信號組時,Com層根據配置需求發送n次該I-PDU
Periodic模式:用戶配置發送周期,只有該I-PDU的周期到來時才會觸發該I-PDU的發送,上層模塊調用Com_SendSignal( )/Com_SendSignalGroup( )只更新信號及信號組的內容
Mixed模式:Direct/n-times和Periodic的混合模式,當上層模塊調用Com_SendSignal( )/Com_SendSignalGroup( )請求該I-PDU包含的信號/信號組的發送時,將會觸發該I-PDU的直接n次發送,同時,用戶配置的周期到來也會觸發該I-PDU的發送
NONE模式:無論何時COM層不能夠觸發擁有該發送模式的I-PDU的發送,只有PduR模塊調用Com_TriggerTransmit( )服務才能夠觸發該I-PDU的發送
TMC &TMS
在COM層用戶可以為每一個I-PDU配置兩種發送模式,ComTxModeTrue和ComTxModeFalse,當TMS為True時,對應I-PDU以用戶配置的ComTxModeTrue的發送模式發送,當TMS為False時,對應I-PDU以用戶配置的ComTxModeFalse的發送模式發送。
TMC
發送端的信號的TMC(發送模式條件)的計算與接收端的信號過濾機制相同,但是,在發送端信號過濾並不會丟棄任何的信號,而只是用於計算信號TMC的值。
信號過濾(信號的TMC)
Com提供了如下八種信號過濾機制:
1.ALWAYS
總是通過,若一個信號的過濾算法配置為ALWAYS,那么這個信號的TMC永遠為True;
2.NEVER
總是不通過,若一個信號的過濾算法配置為NEVER,那么這個信號的TMC永遠為False;
3.MASKED_NEW_EQUALS_X
若一個信號的過濾算法配置為MASKED_NEW_EQUALS_X時,只有當新值與掩碼按位與之后等於設定的某一值時,這個信號的TMC才等於True;
4.MASKED_NEW_DIFFERS_X
若一個信號的過濾算法配置為MASKED_NEW_DIFFERS_X時,只有當新值與掩碼按位與之后不等於設定的某一值時,這個信號的TMC才為True;
5.MASKED_NEW_DIFFERS_MASKED_OLD
若一個信號的過濾算法配置為MASKED_NEW_DIFFERS_MASKED_OLD時,只有當新值與掩碼按位與之后的值不等於舊值與掩碼按位與之后的值時,這個信號的TMC才為True;
6.NEW_IS_WITHIN
若一個信號的過濾算法配置為NEW_IS_WITHIN時,只有當新值在某一設定的范圍內時,這個信號的TMC才為True;
7.NEW_IS_OUTSIDE
若一個信號過濾算法配置為NEW_IS_OUTSIDE時,只有當新值不在某一設定的范圍內時,這個信號的TMC才為True;
8.ONE_EVERY_N
若一個信號的過濾算法配置為ONE_EVERY_N時,該信號值每更新N次,這個信號的TMC值為True;
TMS
發送端的TMS(發送模式選擇),一個I-PDU的TMS的值是根據其所有下屬的信號的TMC結果決定的,若一個I-PDU下屬的信號中至少有一個信號的TMC計算為True那么這個I-PDU的TMS(發送模式選擇)為True,只有該I-PD下屬的所有的信號的TMC都計算為False時,該I-PDU的TMS(發送模式選擇)才為False。
基於以上:
1、用戶可以為每個I-PDU配置兩種發送模式,在程序運行過程中,某一I-PDU的發送模式是由TMS來決定的,若一個I-PDU的TMS根據上述的算法計算的出True,那么該I-PDU將以用戶配置的True狀態下的發送模式進行發送。
2、當一個I-PDU下屬的某一個信號的過濾算法配置為ALWAYS,那么這個I-PDU將一直以用戶配置的TMS為True狀態下發送模式進行發送