/[PAMELA software]/tracker/ground/source/readraw/trkalarmpkt.c
ViewVC logotype

Annotation of /tracker/ground/source/readraw/trkalarmpkt.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (hide annotations) (download)
Wed Mar 8 15:00:39 2006 UTC (18 years, 9 months ago) by pam-fi
Branch point for: MAIN, trk-ground
File MIME type: text/plain
Initial revision

1 pam-fi 1.1
2    
3     #include <stdio.h> /* include standard i/o library */
4     #include <stdlib.h> /* include standard library */
5    
6    
7     struct trk_ControlRegister{
8    
9     unsigned int TrigMask:2;
10     unsigned int DSPMask:6;
11     unsigned int DSPBusy:6;
12    
13     unsigned int FlashShutdown:1;
14     unsigned int FlashOn:1;
15     unsigned int FlashUpset:1;
16     unsigned int FlashData:1;
17    
18     unsigned int InterCheck:1;
19     unsigned int FinalCheck:1;
20    
21     unsigned int UnknownCmd:1;
22     unsigned int CmdDuringTrig:1;
23    
24     unsigned int DSPSoft:6;
25    
26     unsigned int CmdIDMA:6;
27     unsigned int TrigIDMA:6;
28    
29    
30     };
31    
32     struct trk_Trailer{
33    
34     unsigned int PNum;
35     unsigned int CmdNum;
36     unsigned int BID[7];
37     unsigned int ALARM[2];
38     unsigned int Aswr;
39    
40     };
41    
42     void trkalarmpkt_(char* buffer,int* length,int *error){
43    
44    
45     struct trk_ControlRegister CR;
46     struct trk_Trailer TR;
47    
48    
49     char *buff;
50    
51     int i;
52    
53     buff = buffer;
54    
55     *error = 0;
56    
57    
58     CR.TrigMask = (*buff&0xc0) >> 6;
59     CR.DSPMask = (*buff&0x3f);
60     buff++;
61    
62     CR.FlashShutdown = (*buff&0x80) >> 7;
63     CR.FlashOn = (*buff&0x40) >> 6;
64     CR.DSPBusy = (*buff&0x3f);
65     buff++;
66    
67     CR.FlashUpset = (*buff&0x80) >> 7;
68     CR.FlashData = (*buff&0x40) >> 6;
69     CR.DSPSoft = (*buff&0x3f);
70     buff++;
71    
72     CR.InterCheck = (*buff&0x80) >> 7;
73     CR.FinalCheck = (*buff&0x40) >> 6;
74     CR.CmdIDMA = (*buff&0x3f);
75     buff++;
76    
77     CR.UnknownCmd = (*buff&0x80) >> 7;
78     CR.CmdDuringTrig = (*buff&0x40) >> 6;
79     CR.TrigIDMA = (*buff&0x3f);
80     buff++;
81    
82    
83     TR.PNum = (*buff&0xf0) >> 4;
84     TR.CmdNum = (*buff&0x0f);
85     buff++;
86    
87     for(i=0 ; i<4 ; i++){
88     TR.BID[i] = (*buff&(0x03<<i*2)) >> i*2;
89     };
90     buff++;
91    
92     for(i=1 ; i<4 ; i++){
93     TR.BID[3+i] = (*buff&(0x03<<i*2)) >> i*2;
94     };
95     TR.ALARM[0] = (*buff&0x02) >> 1;
96     TR.ALARM[1] = (*buff&0x01);
97     buff++;
98    
99     TR.Aswr = (*buff&0xff) << 8;
100     buff++;
101    
102     TR.Aswr = TR.Aswr | (*buff&0xff);
103    
104    
105     printf("\n\n TRK CONTROL REGISTER");
106     printf("\n ----------------------");
107     printf("\n TrigMask 0x%x",CR.TrigMask);
108     printf("\n DSPMask 0x%x",CR.DSPMask);
109     printf("\n FlashShutdown 0x%x",CR.FlashShutdown);
110     printf("\n FlashOn 0x%x",CR.FlashOn);
111     printf("\n DSPBusy 0x%x",CR.DSPBusy);
112     printf("\n FlashUpset 0x%x",CR.FlashUpset);
113     printf("\n FlashData 0x%x",CR.FlashData);
114     printf("\n DSPSoft 0x%x",CR.DSPSoft);
115     printf("\n InterCheck 0x%x",CR.InterCheck);
116     printf("\n FinalCheck 0x%x",CR.FinalCheck);
117     printf("\n CmdIDMA 0x%x",CR.CmdIDMA);
118     printf("\n UnknownCmd 0x%x",CR.UnknownCmd);
119     printf("\n CmdDuringTrig 0x%x",CR.CmdDuringTrig);
120     printf("\n TrigIDMA 0x%x",CR.TrigIDMA);
121     printf("\n ----------------------");
122     printf("\n PNum 0x%x",TR.PNum);
123     printf("\n CmdNum 0x%x",TR.CmdNum);
124     printf("\n BID 0x%x",TR.BID[0]);
125     printf("\n ALARM 0x%x",TR.ALARM[0]);
126     printf("\n Aswr 0x%x",TR.Aswr);
127     printf("\n----------------------\n\n\n");
128    
129    
130    
131     return;
132     }

  ViewVC Help
Powered by ViewVC 1.1.23