61 #ifndef TEMU_MIL_STD_1553_H
62 #define TEMU_MIL_STD_1553_H
113 void (*
connect)(
void *Bus,
int Subaddr, temu_Mil1553DevIfaceRef Device);
128 #define TEMU_1553_NS_PER_WORD 20000
129 static inline uint64_t
130 temu_mil1553TransferTime(
unsigned Words)
136 #define TEMU_1553_BITS_PER_WORD 20
137 static inline uint64_t
138 temu_mil1553BitCount(
unsigned Words)
145 static inline uint16_t
146 temu_mil1553CmdRtAddr(uint16_t Cmd)
148 return (Cmd >> 11) & 0x1f;
152 static inline uint16_t
153 temu_mil1553CmdTR(uint16_t Cmd)
155 return (Cmd >> 10) & 1;
158 static inline uint16_t
159 temu_mil1553CmdSubAddr(uint16_t Cmd)
161 return (Cmd >> 5) & 0x1f;
167 temu_mil1553CmdIsModeCodeCmd(uint16_t Cmd)
169 if (temu_mil1553CmdSubAddr(Cmd) == 0x00
170 || temu_mil1553CmdSubAddr(Cmd) == 0x1f) {
180 static inline uint16_t
181 temu_mil1553CmdTRModeCode(uint16_t Cmd)
183 return ((Cmd >> 5) & 0x20) | (Cmd & 0x1f);
186 static inline uint16_t
187 temu_mil1553CmdCount(uint16_t Cmd)
193 static inline uint16_t
194 temu_mil1553StatRtAddr(uint16_t Stat)
196 return (Stat >> 11) & 0x1f;
200 static inline uint16_t
201 temu_mil1553StatME(uint16_t Stat)
203 return (Stat >> 10) & 1;
206 static inline uint16_t
207 temu_mil1553StatInst(uint16_t Stat)
209 return (Stat >> 9) & 1;
212 static inline uint16_t
213 temu_mil1553StatSR(uint16_t Stat)
215 return (Stat >> 8) & 1;
218 static inline uint16_t
219 temu_mil1553StatBC(uint16_t Stat)
221 return (Stat >> 4) & 1;
225 static inline uint16_t
226 temu_mil1553StatBusy(uint16_t Stat)
228 return (Stat >> 3) & 1;
231 static inline uint16_t
232 temu_mil1553StatSubFlag(uint16_t Stat)
234 return (Stat >> 2) & 1;
237 static inline uint16_t
238 temu_mil1553StatDynBusCtrl(uint16_t Stat)
240 return (Stat >> 1) & 1;
243 static inline uint16_t
244 temu_mil1553StatTermFlag(uint16_t Stat)
252 #define TEMU_1553_TR_BIT 0x20
254 #define teM1553MC_DynamicBusControl (TEMU_1553_TR_BIT|0x00)
255 #define teM1553MC_Synchronize (TEMU_1553_TR_BIT|0x01)
256 #define teM1553MC_TransmitStatusWord (TEMU_1553_TR_BIT|0x02)
257 #define teM1553MC_InitiateSelfTest (TEMU_1553_TR_BIT|0x03)
258 #define teM1553MC_TransmitterShutdown (TEMU_1553_TR_BIT|0x04)
259 #define teM1553MC_OverrideTransmitter (TEMU_1553_TR_BIT|0x05)
260 #define teM1553MC_InhibitTerminalFlagBit (TEMU_1553_TR_BIT|0x06)
261 #define teM1553MC_OverrideInhibitTerminalFlagBit (TEMU_1553_TR_BIT|0x07)
262 #define teM1553MC_ResetRT (TEMU_1553_TR_BIT|0x08)
263 #define teM1553MC_TransmitVectorWord (TEMU_1553_TR_BIT|0x10)
264 #define teM1553MC_SynchronizeWithData (0x11)
265 #define teM1553MC_TransmitLastCommand (TEMU_1553_TR_BIT|0x12)
266 #define teM1553MC_TransmitBITWord (TEMU_1553_TR_BIT|0x13)
267 #define teM1553MC_SelectedTransmitter (0x14)
268 #define teM1553MC_OverrideSelectedTransmitter (0x15)
TEMU_IFACE_REFERENCE_TYPE(temu_Mil1553Dev)
uint64_t LastReportSentWords
struct temu_Mil1553DevIface temu_Mil1553DevIface
struct temu_Mil1553BusIface temu_Mil1553BusIface
void(* disableSendEvents)(void *Bus)
void(* enableSendEvents)(void *Bus)
void(* reportStats)(void *Bus)
temu_Mil1553MsgType MsgTyp
struct temu_Mil1553Msg temu_Mil1553Msg
void(* send)(void *Bus, void *Sender, temu_Mil1553Msg *Msg)
void(* send)(void *Device, temu_Mil1553Msg *Msg)
void(* connect)(void *Bus, int Subaddr, temu_Mil1553DevIfaceRef Device)
#define TEMU_1553_BITS_PER_WORD
#define TEMU_1553_NS_PER_WORD
void(* disconnect)(void *Bus, int Subaddr)