Arianna autonomous DAQ firmware

Dependencies:   mbed SDFileSystemFilinfo AriSnProtocol NetServicesMin AriSnComm MODSERIAL PowerControlClkPatch DS1820OW

Committer:
uci1
Date:
Tue Oct 16 04:47:44 2012 +0000
Revision:
22:f957c4f840ad
Parent:
21:ce51bb0ba4a5
Child:
25:57b2627fe756
USB comm only. Make firing of comm window independent of real time clock. Add heartbeat firing time to the data stream.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
uci1 1:e392595b4b76 1 #ifndef SN_SnConstants
uci1 1:e392595b4b76 2 #define SN_SnConstants
uci1 1:e392595b4b76 3
uci1 1:e392595b4b76 4 #include "SnBitUtils.h"
uci1 1:e392595b4b76 5
uci1 1:e392595b4b76 6 //
uci1 1:e392595b4b76 7 // constants
uci1 1:e392595b4b76 8 //
uci1 1:e392595b4b76 9 static const uint32_t kBStime = 946684800u; // 1/1/2000 00:00:00 UTC
uci1 16:744ce85aede2 10 static const double kIridEpoch = 1173325835; // 2007-3-08 03:50:35 GMT (needs to be a double)
uci1 16:744ce85aede2 11 static const double kSecPerIridTick = 90e-3; // 90ms/tick
uci1 1:e392595b4b76 12 static const uint8_t kNchans = 4u;
uci1 1:e392595b4b76 13 static const uint8_t kNsamps = 128u;
uci1 1:e392595b4b76 14 static const uint8_t kNfpgaDacs = 4u;
uci1 3:24c5f0f50bf1 15 static const uint8_t kNplas = 5u;//72;
uci1 1:e392595b4b76 16 static const uint16_t kNoTrigPla = 0x0000u;
uci1 1:e392595b4b76 17 static const uint8_t kNcomms = 1u;
uci1 8:95a325df1f6b 18 static const uint16_t kNvoltsAve = 500u; // must be greater than ~10 (but not checked. <2 will result in divide by 0)
uci1 16:744ce85aede2 19 static const float kAsfClkPrdUs = 8.535; // us -- change kAdcToMBtimeCut if this is <=2us
uci1 16:744ce85aede2 20
uci1 1:e392595b4b76 21
uci1 1:e392595b4b76 22 static const uint32_t kAbsMaxTimer = 1800u; // timers use integers counting us and can't go longer than ~ this many secs
uci1 1:e392595b4b76 23 // NOTE: these times below must be less than kAbsMaxTimer (this is not checked, however)
uci1 16:744ce85aede2 24 static const uint32_t kDefTimeout = 300u; // seconds
uci1 1:e392595b4b76 25 static const uint32_t kConnectTimeout = 30u; // seconds
uci1 21:ce51bb0ba4a5 26 static const uint32_t kListenTimeout = 300u; // seconds
uci1 16:744ce85aede2 27 static const uint32_t kConnectSBDTO = 300u; // seconds
uci1 1:e392595b4b76 28 static const uint32_t kCommWinLongPrdTk = 300u; // seconds
uci1 16:744ce85aede2 29 static const uint32_t kSecsPerDay = 3600u*24u;
uci1 16:744ce85aede2 30 static const uint32_t kSecsPerYear = kSecsPerDay*365u;
uci1 3:24c5f0f50bf1 31
uci1 1:e392595b4b76 32 static const uint16_t kTotSamps = kNchans*kNsamps;
uci1 1:e392595b4b76 33 static const uint16_t kTotDacs = kNchans*kNfpgaDacs;
uci1 1:e392595b4b76 34
uci1 21:ce51bb0ba4a5 35 static const char* kLocalDir = "/local";
uci1 21:ce51bb0ba4a5 36
uci1 16:744ce85aede2 37 static const float kAdcToMBtimeCut = (kNsamps*kAsfClkPrdUs)+(kAsfClkPrdUs/2.0);
uci1 16:744ce85aede2 38
uci1 1:e392595b4b76 39 enum ESnTrgTypes {
uci1 16:744ce85aede2 40 kThmTrg=0,
uci1 16:744ce85aede2 41 kFrcTrg,
uci1 16:744ce85aede2 42 kExtTrg,
uci1 16:744ce85aede2 43 kAdcToMBflag,
uci1 16:744ce85aede2 44
uci1 1:e392595b4b76 45 kNumTrgs
uci1 1:e392595b4b76 46 };
uci1 16:744ce85aede2 47 // order must match ESnTrgTypes
uci1 16:744ce85aede2 48 static const uint8_t kTrgBW[kNumTrgs] = { BIT(0), BIT(1), BIT(2), BIT(7) };
uci1 1:e392595b4b76 49
uci1 1:e392595b4b76 50
uci1 1:e392595b4b76 51
uci1 0:664899e0b988 52 #endif // SN_SnConstants