D.2. pfbDpMaster.cfg

;;****************************************************************************
;;
;; (include pfbDpMaster.cfg)
;; Defines relating to DP Master mode and the master control blocks for slaves
;;
;; Assumes the pfbDefines.cfg file has already been included.
;;
;;****************************************************************************

; Defines relating to the DP Master global control register
(type DpMasterControlRead cardGet %1 home pfbMasCntrlCfg)
(typeDesc DpMasterControlRead "(DpMasterControlRead cardId)")

(type DpMasterControlSet pfbBitSet %1 home pfbMasCntrlCfg %2)
(typeDesc DpMasterControlSet "(DpMasterControlSet cardId events)")

(type DpMasterControlClear pfbBitClear %1 home pfbMasCntrlCfg %2)
(typeDesc DpMasterControlClear "(DpMasterControlClear cardId events)")

;
; Enable DP Master functionality
; NOTE: pfbOnline command will automatically set this if DpMaster specified.
(type DpMasterEnable pfbBitSet %1 home pfbMasCntrlCfg PFB_MAS_CTRL_ENABLE)
(typeDesc DpMasterEnable "(DpMasterEnable cardId)")

; Set DP Master to begin scanning: must be issued while online
; NOTE: pfbOnline command will automatically set this if DpMaster specified.
(type pfbRunMode DpMasterControlSet %1 PFB_MAS_CTRL_RUN_MODE)
(typeDesc pfbRunMode "(pfbRunMode cardId)")

; Stop DP Master scanning
(type pfbProgramMode DpMasterControlClear %1 PFB_MAS_CTRL_RUN_MODE)
(typeDesc pfbProgramMode "(pfbProgramMode cardId)")

;;****************************************************************************
;; Master control blocks (1 per slave)
;;****************************************************************************

; Read/Write & BitSet/Clear/Write in a master control block register
(type masRead cardGet %1 mas (@ (aref masCntrlBlk %2) %3))
(typeDesc masRead "(masRead cardId block register)")

(type masWrite cardSet %1 mas (@ (aref masCntrlBlk %2) %3) %4)
(typeDesc masWrite "(masWrite cardId block register value)")

(type masBitSet pfbBitSet %1 mas (@ (aref masCntrlBlk %2) %3) %4)
(typeDesc masBitSet "(masBitSet cardId block register mask)")

(type masBitClear pfbBitClear %1 mas (@ (aref masCntrlBlk %2) %3) %4)
(typeDesc masBitClear "(masBitClear cardId block register mask)")

(type masBitWrite pfbBitWrite %1 mas (@ (aref masCntrlBlk %2) %3) %4 %5)
(typeDesc masBitWrite "(masBitWrite cardId block register mask value)")

; Enable/Disable each slave
(type DpMasterSlvEnable masBitSet %1 %2 masCntCfg MAS_CTL_ENABLE)
(typeDesc DpMasterSlvEnable "(DpMasterSlvEnable cardId slvBlkId)")
(type DpMasterSlvDisable masBitClear %1 %2 masCntCfg MAS_CTL_ENABLE)
(typeDesc DpMasterSlvDisable "(DpMasterSlvDisable cardId slvBlkId)")

; Set swap mode of the slave
;	MAS_CTL_RX_BYTE_SWAP
(type DpMasterSlvSwapSet masBitSet %1 %2 masCntCfg MAS_CTL_RX_BYTE_SWAP)
(typeDesc DpMasterSlvSwapSet "(DpMasterSlvByteSwap cardId slvBlkId)")
(type DpMasterSlvSwapClear masBitClear %1 %2 masCntCfg MAS_CTL_RX_BYTE_SWAP)
(typeDesc DpMasterSlvSwapClear "(DpMasterSlvSwapClear cardId slvBlkId)")

; Get number of master blocks configured
(type DpMasterNBlksRead cardGet %1 home pfbMasNumBlks)
(typeDesc DpMasterNBlksRead "(DpMasterNBlksRead cardId)")

; Get status and slvBlkId of specified station
;	returns 0x00FF MAS_SLV_NOT_CFG
;	or	0x80nn MAS_STS_TAB_OK|0xnn where nn is the slvBlkId
(type DpMasterStnStatus cardGet %1 home (aref pfbMasStsTab %2))
(typeDesc DpMasterStnStatus "(DpMasterStnStatus cardId stn)")


;;***************************************************************************
;; Summary of DP Master Control Block registers and constants
;    masStn			station address of slave
;    masCntCfg			Control and configuration register
;	MAS_CTL_IGNORE_STS	ignore status
;	MAS_CTL_EVT_RX_CHG	generate event (intr) when rx data from slave changes
;	MAS_CTL_RX_BYTE_SWAP	swap order of bytes in received data
;	MAS_CTL_EVT_UPDTE	generate event (intr) when slave update is complete
;	MAS_CTL_FAIL_SAFE	slave is a fail safe slave
;	MAS_CTL_TX_BYTE_SWAP	reserved
;	MAS_CTL_ENABLE		enable this device
;    masStatus			Status Register (Read only)
;	MAS_STS_OK		current status of this master block is OK
;    masError			Error indication
;	MAS_ERR_CFG_FAILURE	failure while trying to configure slave
;	MAS_ERR_SLV_ID_MISMATCH	slave real ID does not match slave's configured ID
;	MAS_ERR_DATA_UPD_FAILURE frame delivery problem while updating slave data
;	MAS_ERR_CFG_DIAG_READ_FAILURE frame delivery problem while reading slave diags
;	MAS_ERR_CFG_DIAG_STS1_ERR error in diagnostic status byte #1 during configure
;	MAS_ERR_CFG_DIAG_STS2_ERR error in diagnostic status byte #2 during configure
;	MAS_ERR_UPD_DIAG_STS1_ERR error in diagnostic status byte #1 during diag read
;	MAS_ERR_UPD_DIAG_STS2_ERR error in diagnostic status byte #2 during diag read
;	MAS_ERR_CFG_STN_MISMATCH station address from diag read does not match
;	MAS_ERR_IO_CYC_TOUT	timeout waiting for i/o update
;	MAS_ERR_SLV_WD_OFF	warning slave watchdog is not enabled
;    masEvent			Event Flags
;	MAS_EVT_UPD		slave has been updated
;	MAS_EVT_RX_DATA_CHG	rx data has changed
;    masDiagEvent		Diagnostic Event Flags
;	MAS_DEVT_DIAG_UPD	slave diags have been updat
;    masParmLen			Parameters to slave len in bytes
;    masChkLen			Configuration check to slave len
;    masRxDataOfs		Data recv from slave ofs in page
;    masTxDataOfs		Data xmit to slave ofs in page
;    masRxDataLen		Data received from slave length
;    masTxDataLen		Data to be sent to slave length
;    masSiemType		Siemens Device Type
;	MAS_SIEM_TYP_OLD_DP	
;    masExtErrInfo		Extended error info
;    masDesig			slave designation (text, 13
;    masDiagMaxLen		Maximum length of diag status resp
;    masDiagLen			Diagnostic from slave length in by
;    masDiagSts1		status byte 1 from slave
;    masDiagSts2		status byte 2 from slave
;    masDiagSts3		status byte 3 from slave
;    masDiagMasStn		Station that configured Slave
;    masDiagID_hi		ID hi byte sent back from slave
;    masDiagID_lo		ID lo byte sent back from slave
;    masDiagData		vendor defined slv diag info, 24
;    masDiagExtOfs		offset within extension area if greater than 26 bytes
;    masParmMasSts		status byte to slave
;    masParmWdFact1		Watchdog factor 1 to slave
;    masParmWdFact2		Watchdog factor 2 to slave
;    masParmRdyTme		Response delay time (tbit) to slav
;    masParmID_hi		ID value to slave hi
;    masParmID_lo		ID value to slave lo
;    masParmGrpId		Group ID value for slave (aways 0
;    masParmData		parameters to slave, 23
;    masParmExtOfs		offset within extension area if greater than 25 bytes
;    masChkData			Config check values to slave, 30
;    masChkDataExtOfs		offset within extension area if greater than 32 bytes