/[PAMELA software]/quicklook/dataToXML/Data/compilationInfo/src/INFN/Drivers/TRK_Driver_INFN.c
ViewVC logotype

Annotation of /quicklook/dataToXML/Data/compilationInfo/src/INFN/Drivers/TRK_Driver_INFN.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1.1.1 - (hide annotations) (download) (vendor branch)
Tue Apr 25 09:00:20 2006 UTC (19 years, 2 months ago) by kusanagi
Branch: MAIN
CVS Tags: dataToXML1_02/01, dataToXML1_02/00, dataToXML1_03/00, dataToXML1_03/01, dataToXML1_00/00, firstRelease, dataToXML1_01/00, dataToXML1_03_02, HEAD
Changes since 1.1: +0 -0 lines
File MIME type: text/plain
These program extract in an XML format the info contained into the ROOT files generated by YODA from the PAMELA data. To visualize the XML files in a more human readable format a collection of XSL files are given in the Data subfolder.

1 kusanagi 1.1 /****************************************************************************
2     * F i l e D a t a
3     * $Id: TRK_Driver_INFN.c,v 1.4 2003/10/30 14:55:52 faber Exp $
4     * $Revision: 1.4 $
5     * $Date: 2003/10/30 14:55:52 $
6     * $RCSfile: TRK_Driver_INFN.c,v $
7     *
8     ****************************************************************************
9     * S W D e v e l o p m e n t E n v i r o n m e n t
10     *
11     * $Author: faber $
12     * :
13     ****************************************************************************
14     * U p d a t i n g
15    
16     * $Log: TRK_Driver_INFN.c,v $
17     * Revision 1.4 2003/10/30 14:55:52 faber
18     * CRC function debuggin (some fixes)
19     *
20     * Revision 1.3 2003/10/27 18:59:38 sebastiani
21     * CRC moved into Commong module
22     *
23     * Revision 1.2 2003/10/22 12:47:06 faber
24     * *** empty log message ***
25     *
26     *
27     *****************************************************************************/
28    
29    
30     /*============================= Include File ================================*/
31    
32     #ifndef I386
33     #include <src/INFN/LU_SourceFileID_INFN.h>
34     #define __FILEID__ _TRK_Driver_INFN__c
35     #include <src/INFN/PRH_ParamHandler_INFN.h>
36     #include <src/INFN/LU_LogUtility_INFN.h>
37     #include <src/INFN/PRH_ParamHandler_INFN_auto.h>
38     LU_DECL_MASK();
39     #endif // no I386
40    
41    
42     #include <src/INFN/DAQ_IDAQ_INFN.h>
43     #include <src/INFN/CM_Common_INFN.h>
44     #include <src/INFN/Drivers/TRK_Driver_INFN.h>
45    
46     #ifndef I386
47     #include <src/INFN/CH_CommandHandler_INFN.h>
48     #include <src/INFN/TRG_Trigger_INFN.h>
49     #include <src/INFN/RM_RunManager_INFN.h>
50     #endif
51    
52     /*============================ External define ================================*/
53    
54     /*============================ Global define ================================*/
55    
56    
57     DAQ_DECLBUF(TRK_TempBuf,TRK_MAXTEMPBUFFER);
58    
59    
60     /*============================== global types ==============================*/
61    
62    
63    
64    
65    
66     /*=========================== Structure define ==============================*/
67    
68    
69     /*============================ Enumerate define =============================*/
70    
71    
72    
73     status_code TRK_Driver_Init()
74     {
75     DAQ_BUFFER_INIT(TRK_TempBuf);
76     return CM_RC_SUCCESSFUL;
77     }
78    
79    
80    
81     /*****************************************************************************/
82     /*
83     * TRK_Format_Cmd
84     *
85     * format the command for the FE when there is no data block to write
86     *
87     * Input parameters:
88     * periph_no = peripheral number
89     * command_no = command number
90     * febuf = pointer to the buffer to fill
91     *
92     * Output parameters: status_code
93     *
94     */
95     /*****************************************************************************/
96    
97     status_code TRK_Format_Cmd(DAQ_CMD_BUF *febuf,BYTE periph_no, BYTE command_no)
98     {
99     febuf->buf[0] = 0; // comm. length MSB
100     febuf->buf[1] = 2; // comm. length LSB
101     febuf->buf[2] = command_no | (periph_no << 4); // command id
102    
103     febuf->buf[3]=CM_Compute_CRC8_8(0,febuf->buf,3); // intermediate crc
104    
105     febuf->buf[4] = febuf->buf[3]; // final crc
106     febuf->len = 5;
107    
108     return CM_RC_SUCCESSFUL;
109     }
110    
111     /*****************************************************************************/
112     /*
113     * TRK_Format_CmdWriteBlock
114     *
115     * format the command for the FE when there is a data block to write
116     *
117     * Input parameters:
118     * periph_no = peripheral number
119     * command_no = command number
120     * data_block = pointer to the buffer to write
121     * data_length = size of the data block
122     * febuf = pointer to the buffer to fill
123     *
124     * Output parameters: status_code
125     *
126     */
127     /*****************************************************************************/
128    
129     status_code TRK_Format_CmdWriteBlock(DAQ_CMD_BUF *febuf,BYTE periph_no,BYTE command_no,DAQ_CMD_BUF *data_block)
130     {
131     UINT16 len;
132    
133     len = data_block->len;
134    
135     febuf->buf[0] = CM_HI_UINT16(2+len); // comm. length MSB
136     febuf->buf[1] = CM_LO_UINT16(2+len); // comm. length LSB
137     febuf->buf[2] = command_no | (periph_no << 4); // command id
138    
139     febuf->buf[3]=CM_Compute_CRC8_8(0,febuf->buf,3); // intermediate crc
140     memcpy(&febuf->buf[4],data_block->buf,len); // fill data block
141     febuf->buf[4+len]=CM_Compute_CRC8_8(febuf->buf[3],data_block->buf,len); // final crc
142     febuf->len = 5+len;
143    
144     return CM_RC_SUCCESSFUL;
145     }
146    
147     /*****************************************************************************/
148     /*
149     * TRK_Format_DataBlock
150     *
151     * format a data block to send to a dsp
152     *
153     * Input parameters:
154     * block = pointer to the formatted block
155     * type = DATA_MEMORY or PROGRAM_MEMORY
156     * ovlay = DM or PM overlay
157     * address = starting address on dsp
158     * data = pointer to actual data or program to store
159     * data_len = length of data
160     *
161     * Output parameters: status_code
162     *
163     */
164     /*****************************************************************************/
165    
166    
167     status_code TRK_Format_DataBlock(DAQ_CMD_BUF *block,BYTE type,BYTE ovlay,UINT16 address,BYTE *data,UINT32 data_len)
168     {
169     BYTE dm;
170    
171     dm = (type << 6);
172    
173     block->buf[0] = dm ? (ovlay << 4) : ovlay;
174     block->buf[1] = dm | (BYTE) ((address & 0x3f00) >> 8);
175     block->buf[2] = (BYTE) address & 0x00ff;
176     memcpy(&block->buf[3],data,data_len);
177     block->len = 3 + data_len;
178    
179     return CM_RC_SUCCESSFUL;
180     }
181    
182    
183     /*****************************************************************************/
184     /*
185     * TRK_Format_ResetDSP
186     *
187     * format buffer to send a reset to periph_no DSP (non read cmd)
188     *
189     * Input parameters:
190     * periph_no = number of dsp
191     * link = tracker link
192     * buffer = pointer to the buffer to fill
193     *
194     * Output parameters: status_code
195     *
196     */
197     /*****************************************************************************/
198    
199     status_code TRK_Format_ResetDSP(DAQ_CMD_BUF *buffer,BYTE periph_no,DAQ_FE link)
200     {
201     status_code status;
202    
203     if ((link == DAQ_FE_TRK_1) || (link == DAQ_FE_TRK_2))
204     {
205     DAQ_Format_CMD_Empty(&TRK_TempBuf);
206    
207     TRK_Format_Cmd(&TRK_TempBuf,periph_no,RESET_DSP);
208     status = DAQ_Format_Cmd2Fe(buffer,&TRK_TempBuf,link);
209     }
210     else
211     status = CM_RC_BAD_IDAQ_LINK;
212    
213     return(status);
214     }
215    
216     /*****************************************************************************/
217     /*
218     * TRK_Format_WriteDSP
219     *
220     * format buffer to send a write request to periph_no DSP (non read cmd)
221     *
222     * Input parameters:
223     * periph_no = number of dsp
224     * link = tracker link
225     * data_block = pointer to the buffer to fill (see TRK_Format_DataBlock)
226     * buffer = pointer to formatted output buffer
227     *
228     * Output parameters: status_code
229     *
230     */
231     /*****************************************************************************/
232    
233     status_code TRK_Format_WriteDSP(DAQ_CMD_BUF *buffer,BYTE periph_no,DAQ_FE link, DAQ_CMD_BUF *data_block)
234     {
235     status_code status;
236    
237     if ((link == DAQ_FE_TRK_1) || (link == DAQ_FE_TRK_2))
238     {
239     DAQ_Format_CMD_Empty(&TRK_TempBuf);
240    
241     TRK_Format_CmdWriteBlock(&TRK_TempBuf,periph_no,WRITE_DSP,data_block);
242     status = DAQ_Format_Cmd2Fe(buffer,&TRK_TempBuf,link);
243     }
244     else
245     status = CM_RC_BAD_IDAQ_LINK;
246    
247     return(status);
248     }
249    
250     /*****************************************************************************/
251     /*
252     * TRK_Format_LoadPMDSP
253     *
254     * format buffer to send a load PM request to periph_no DSP (non read cmd)
255     *
256     * Input parameters:
257     * periph_no = number of dsp
258     * link = tracker link
259     * buffer = pointer to formatted output buffer
260     *
261     * Output parameters: status_code
262     *
263     */
264     /*****************************************************************************/
265    
266     status_code TRK_Format_LoadPMDSP(DAQ_CMD_BUF *buffer,BYTE periph_no,DAQ_FE link)
267     {
268     status_code status;
269    
270     if ((link == DAQ_FE_TRK_1) || (link == DAQ_FE_TRK_2))
271     {
272     DAQ_Format_CMD_Empty(&TRK_TempBuf);
273    
274     TRK_Format_Cmd(&TRK_TempBuf,periph_no,LOAD_DSP_PRG_BLOCK);
275     status = DAQ_Format_Cmd2Fe(buffer,&TRK_TempBuf,link);
276     }
277     else
278     status = CM_RC_BAD_IDAQ_LINK;
279    
280     return(status);
281     }
282    
283     /*****************************************************************************/
284     /*
285     * TRK_Format_LoadWriteOnCR
286     *
287     * format buffer to send a write on CR command (non read cmd)
288     *
289     * Input parameters:
290     * link = tracker link
291     * mask = CR mask to set
292     * buffer = pointer to formatted output buffer
293     *
294     * Output parameters: status_code
295     *
296     */
297     /*****************************************************************************/
298    
299     status_code TRK_Format_WriteOnCR(DAQ_CMD_BUF *buffer,DAQ_FE link,BYTE mask)
300     {
301     status_code status;
302     DAQ_DECL_LOCAL_BUF(Temp,1);
303    
304     DAQ_Format_CMD_Empty(&Temp);
305    
306     if ((link == DAQ_FE_TRK_1) || (link == DAQ_FE_TRK_2))
307     {
308     DAQ_Format_CMD_Empty(&TRK_TempBuf);
309    
310     *Temp.buf = mask;
311     Temp.len = 1;
312    
313     TRK_Format_CmdWriteBlock(&TRK_TempBuf,OTHER_COMMAND,WRITE_CR,&Temp);
314     status = DAQ_Format_Cmd2Fe(buffer,&TRK_TempBuf,link);
315     }
316     else
317     status = CM_RC_BAD_IDAQ_LINK;
318    
319     return(status);
320     }
321    
322     /*****************************************************************************/
323     /*
324     * TRK_Format_TurnOnFlash
325     *
326     * format buffer to send a turn-on flash command (non read cmd)
327     *
328     * Input parameters:
329     * link = tracker link
330     * buffer = pointer to formatted output buffer
331     *
332     * Output parameters: status_code
333     *
334     */
335     /*****************************************************************************/
336    
337     status_code TRK_Format_TurnOnFlash(DAQ_CMD_BUF *buffer,DAQ_FE link)
338     {
339     status_code status;
340    
341     if ((link == DAQ_FE_TRK_1) || (link == DAQ_FE_TRK_2))
342     {
343     DAQ_Format_CMD_Empty(&TRK_TempBuf);
344    
345     TRK_Format_Cmd(&TRK_TempBuf,OTHER_COMMAND,TURN_ON_FLASH);
346     status = DAQ_Format_Cmd2Fe(buffer,&TRK_TempBuf,link);
347     }
348     else
349     status = CM_RC_BAD_IDAQ_LINK;
350    
351     return(status);
352     }
353    
354     /*****************************************************************************/
355     /*
356     * TRK_Format_ShutDownFlash
357     *
358     * format buffer to send a shutdown flash command (non read cmd)
359     *
360     * Input parameters:
361     * link = tracker link
362     * buffer = pointer to formatted output buffer
363     *
364     * Output parameters: status_code
365     *
366     */
367     /*****************************************************************************/
368    
369     status_code TRK_Format_ShutDownFlash(DAQ_CMD_BUF *buffer,DAQ_FE link)
370     {
371     status_code status;
372    
373     if ((link == DAQ_FE_TRK_1) || (link == DAQ_FE_TRK_2))
374     {
375     DAQ_Format_CMD_Empty(&TRK_TempBuf);
376    
377     TRK_Format_Cmd(&TRK_TempBuf,OTHER_COMMAND,SHUTDOWN_FLASH);
378     status = DAQ_Format_Cmd2Fe(buffer,&TRK_TempBuf,link);
379     }
380     else
381     status = CM_RC_BAD_IDAQ_LINK;
382    
383     return(status);
384     }
385    
386     /*****************************************************************************/
387     /*
388     * TRK_Format_GeneralReset
389     *
390     * format buffer to send a general reset command (non read cmd)
391     *
392     * Input parameters:
393     * link = tracker link
394     * buffer = pointer to formatted output buffer
395     *
396     * Output parameters: status_code
397     *
398     */
399     /*****************************************************************************/
400    
401     status_code TRK_Format_GeneralReset(DAQ_CMD_BUF *buffer,DAQ_FE link)
402     {
403     status_code status;
404    
405     if ((link == DAQ_FE_TRK_1) || (link == DAQ_FE_TRK_2))
406     {
407     DAQ_Format_CMD_Empty(&TRK_TempBuf);
408    
409     TRK_Format_Cmd(&TRK_TempBuf,OTHER_COMMAND,GENERAL_RESET);
410     status = DAQ_Format_Cmd2Fe(buffer,&TRK_TempBuf,link);
411     }
412     else
413     status = CM_RC_BAD_IDAQ_LINK;
414    
415     return(status);
416     }
417    
418     /*****************************************************************************/
419     /*
420     * TRK_Format_SetFlashMemAddress
421     *
422     * format buffer to send a set flash memory address command (non read cmd)
423     *
424     * Input parameters:
425     * link = tracker link
426     * address = address to store
427     * buffer = pointer to formatted output buffer
428     *
429     * Output parameters: status_code
430     *
431     */
432     /*****************************************************************************/
433    
434     status_code TRK_Format_SetFlashMemAddress(DAQ_CMD_BUF *buffer,DAQ_FE link,UINT32 address)
435     {
436     status_code status;
437     DAQ_DECL_LOCAL_BUF(Temp,4);
438    
439     DAQ_Format_CMD_Empty(&Temp);
440    
441     if ((link == DAQ_FE_TRK_1) || (link == DAQ_FE_TRK_2))
442     {
443     DAQ_Format_CMD_Empty(&TRK_TempBuf);
444    
445     Temp.buf[0] = FLASH_CONTROL_SET_ADDR;
446     Temp.buf[1] = (BYTE)(address & 0xff);
447     Temp.buf[2] = (BYTE)((address & 0xff00) >> 8);
448     Temp.buf[3] = (BYTE)((address & 0xf0000) >> 16);
449     Temp.len = 4;
450    
451     TRK_Format_CmdWriteBlock(&TRK_TempBuf,OTHER_COMMAND,FLASH_CONTROL,&Temp);
452     status = DAQ_Format_Cmd2Fe(buffer,&TRK_TempBuf,link);
453     }
454     else
455     status = CM_RC_BAD_IDAQ_LINK;
456    
457     return(status);
458     }
459    
460     /*****************************************************************************/
461     /*
462     * TRK_Format_WriteSingleByte
463     *
464     * format buffer to send a set flash memory address command (non read cmd)
465     *
466     * Input parameters:
467     * link = tracker link
468     * towrite = byte to write
469     * buffer = pointer to formatted output buffer
470     *
471     * Output parameters: status_code
472     *
473     */
474     /*****************************************************************************/
475    
476     status_code TRK_Format_WriteSingleByte(DAQ_CMD_BUF *buffer,DAQ_FE link,BYTE towrite)
477     {
478     status_code status;
479     DAQ_DECL_LOCAL_BUF(Temp,2);
480    
481     DAQ_Format_CMD_Empty(&Temp);
482    
483     if ((link == DAQ_FE_TRK_1) || (link == DAQ_FE_TRK_2))
484     {
485     DAQ_Format_CMD_Empty(&TRK_TempBuf);
486    
487     Temp.buf[0] = FLASH_CONTROL_WRITE_BYTE;
488     Temp.buf[1] = towrite;
489     Temp.len = 2;
490    
491     TRK_Format_CmdWriteBlock(&TRK_TempBuf,OTHER_COMMAND,FLASH_CONTROL,&Temp);
492     status = DAQ_Format_Cmd2Fe(buffer,&TRK_TempBuf,link);
493     }
494     else
495     status = CM_RC_BAD_IDAQ_LINK;
496    
497     return(status);
498     }
499    
500    
501     /*****************************************************************************/
502     /*
503     * TRK_Format_WriteEndBlock
504     *
505     * format buffer to send a set flash memory address command (non read cmd)
506     *
507     * Input parameters:
508     * link = tracker link
509     * buffer = pointer to formatted output buffer
510     *
511     * Output parameters: status_code
512     *
513     */
514     /*****************************************************************************/
515    
516     status_code TRK_Format_WriteEndBlock(DAQ_CMD_BUF *buffer,DAQ_FE link)
517     {
518     status_code status;
519     DAQ_DECL_LOCAL_BUF(Temp,1);
520    
521     DAQ_Format_CMD_Empty(&Temp);
522    
523     if ((link == DAQ_FE_TRK_1) || (link == DAQ_FE_TRK_2))
524     {
525     DAQ_Format_CMD_Empty(&TRK_TempBuf);
526    
527     Temp.buf[0] = FLASH_CONTROL_WRITE_END_BLOCK;
528     Temp.len = 1;
529    
530     TRK_Format_CmdWriteBlock(&TRK_TempBuf,OTHER_COMMAND,FLASH_CONTROL,&Temp);
531     status = DAQ_Format_Cmd2Fe(buffer,&TRK_TempBuf,link);
532     }
533     else
534     status = CM_RC_BAD_IDAQ_LINK;
535    
536     return(status);
537     }
538    
539     /*****************************************************************************/
540     /*
541     * TRK_Format_EraseFlashSector
542     *
543     * format buffer to send a set flash memory address command (non read cmd)
544     *
545     * Input parameters:
546     * link = tracker link
547     * buffer = pointer to formatted output buffer
548     *
549     * Output parameters: status_code
550     *
551     */
552     /*****************************************************************************/
553    
554     status_code TRK_Format_EraseFlashSector(DAQ_CMD_BUF *buffer,DAQ_FE link,BYTE sector)
555     {
556     status_code status;
557     DAQ_DECL_LOCAL_BUF(Temp,2);
558    
559     DAQ_Format_CMD_Empty(&Temp);
560    
561     if ((link == DAQ_FE_TRK_1) || (link == DAQ_FE_TRK_2))
562     {
563     DAQ_Format_CMD_Empty(&TRK_TempBuf);
564    
565     Temp.buf[0] = FLASH_CONTROL_ERASE_SECTOR;
566     Temp.buf[1] = sector;
567     Temp.len = 2;
568    
569     TRK_Format_CmdWriteBlock(&TRK_TempBuf,OTHER_COMMAND,FLASH_CONTROL,&Temp);
570     status = DAQ_Format_Cmd2Fe(buffer,&TRK_TempBuf,link);
571     }
572     else
573     status = CM_RC_BAD_IDAQ_LINK;
574    
575     return(status);
576     }
577    
578     /*****************************************************************************/
579     /*
580     * TRK_Format_ResetFlashController
581     *
582     * format buffer to send a general reset command (non read cmd)
583     *
584     * Input parameters:
585     * link = tracker link
586     * buffer = pointer to formatted output buffer
587     *
588     * Output parameters: status_code
589     *
590     */
591     /*****************************************************************************/
592    
593     status_code TRK_Format_ResetFlashController(DAQ_CMD_BUF *buffer,DAQ_FE link)
594     {
595     status_code status;
596    
597     if ((link == DAQ_FE_TRK_1) || (link == DAQ_FE_TRK_2))
598     {
599     DAQ_Format_CMD_Empty(&TRK_TempBuf);
600    
601     TRK_Format_Cmd(&TRK_TempBuf,OTHER_COMMAND,FLASH_RESET);
602     status = DAQ_Format_Cmd2Fe(buffer,&TRK_TempBuf,link);
603     }
604     else
605     status = CM_RC_BAD_IDAQ_LINK;
606    
607     return(status);
608     }
609    
610     /*****************************************************************************/
611     /*
612     * TRK_Format_ReadDSPDataBuffer
613     *
614     * format buffer to send a set flash memory address command (non read cmd)
615     *
616     * Input parameters:
617     * periph_no = peripheral number
618     * link = tracker link
619     * buffer = pointer to formatted output buffer
620     * ovlay = overlay
621     * adress = starting address
622     * maxnumber = max word number
623     *
624     * Output parameters: status_code
625     *
626     */
627     /*****************************************************************************/
628    
629     status_code TRK_Format_ReadDSPDataBuffer(DAQ_CMD_BUF *buffer,DAQ_FE link,BYTE periph_no,BYTE ovlay,UINT16 address, UINT16 maxnumber)
630     {
631     status_code status;
632     DAQ_DECL_LOCAL_BUF(Temp,5);
633    
634     DAQ_Format_CMD_Empty(&Temp);
635    
636     if ((link == DAQ_FE_TRK_1) || (link == DAQ_FE_TRK_2))
637     {
638     DAQ_Format_CMD_Empty(&TRK_TempBuf);
639    
640     Temp.buf[0] = ovlay << 4;
641     Temp.buf[1] = 64 | (CM_HI_UINT16(address) & 0x3f);
642     Temp.buf[2] = CM_LO_UINT16(address);
643     Temp.buf[3] = CM_HI_UINT16(maxnumber) & 0x7f;
644     Temp.buf[4] = CM_LO_UINT16(maxnumber);
645     Temp.len = 5;
646    
647     TRK_Format_CmdWriteBlock(&TRK_TempBuf,periph_no,READ_DSP_DATA,&Temp);
648     status = DAQ_Format_Cmd2Fe(buffer,&TRK_TempBuf,link);
649     }
650     else
651     status = CM_RC_BAD_IDAQ_LINK;
652    
653     return(status);
654     }
655    
656     /*****************************************************************************/
657     /*
658     * TRK_Format_ReadDSPMemoryBlock
659     *
660     * format buffer to send a set flash memory address command (non read cmd)
661     *
662     * Input parameters:
663     * periph_no = peripheral number
664     * link = tracker link
665     * type = DATA_MEMORY or PROGRAM_MEMORY
666     * ovlay = overlay
667     * adress = starting address
668     * wordnumber = number of words to read
669     * buffer = pointer to formatted output buffer
670     *
671     * Output parameters: status_code
672     *
673     */
674     /*****************************************************************************/
675    
676     status_code TRK_Format_ReadDSPMemoryBlock(DAQ_CMD_BUF *buffer,DAQ_FE link,BYTE datatype,BYTE periph_no,BYTE ovlay,UINT16 address, UINT16 wordnumber)
677     {
678     BYTE dm;
679     status_code status;
680     DAQ_DECL_LOCAL_BUF(Temp,5);
681    
682     dm = (datatype << 6);
683     DAQ_Format_CMD_Empty(&Temp);
684    
685     if ((link == DAQ_FE_TRK_1) || (link == DAQ_FE_TRK_2))
686     {
687     DAQ_Format_CMD_Empty(&TRK_TempBuf);
688    
689     Temp.buf[0] = dm ? (ovlay << 4) : ovlay;
690     Temp.buf[1] = dm | (BYTE) ((address & 0x3f00) >> 8);
691     Temp.buf[2] = CM_LO_UINT16(address);
692     Temp.buf[3] = CM_HI_UINT16(wordnumber) & 0x7f;
693     Temp.buf[4] = CM_LO_UINT16(wordnumber);
694     Temp.len = 5;
695    
696     TRK_Format_CmdWriteBlock(&TRK_TempBuf,periph_no,READ_DSP_MEM_BLOCK,&Temp);
697     status = DAQ_Format_Cmd2Fe(buffer,&TRK_TempBuf,link);
698     }
699     else
700     status = CM_RC_BAD_IDAQ_LINK;
701    
702     return(status);
703     }
704    
705     /*****************************************************************************/
706     /*
707     * TRK_Format_ReadControlRegister
708     *
709     * format buffer to send a general reset command (non read cmd)
710     *
711     * Input parameters:
712     * link = tracker link
713     * buffer = pointer to formatted output buffer
714     *
715     * Output parameters: status_code
716     *
717     */
718     /*****************************************************************************/
719    
720     status_code TRK_Format_ReadControlRegister(DAQ_CMD_BUF *buffer,DAQ_FE link)
721     {
722     status_code status;
723    
724     if ((link == DAQ_FE_TRK_1) || (link == DAQ_FE_TRK_2))
725     {
726     DAQ_Format_CMD_Empty(&TRK_TempBuf);
727    
728     TRK_Format_Cmd(&TRK_TempBuf,OTHER_COMMAND,READ_CR);
729     status = DAQ_Format_Cmd2Fe(buffer,&TRK_TempBuf,link);
730     }
731     else
732     status = CM_RC_BAD_IDAQ_LINK;
733    
734     return(status);
735     }

  ViewVC Help
Powered by ViewVC 1.1.23