123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- """
- Actions performed on the board.
- Fore some more actions also see sequences.py
- """
- import time
- from communication import *
- from utils import wait_for_revolutions
- def acquire_data(board_id, filename, simulate=False):
- if simulate:
- start_pilot_bunch_emulator(board_id)
- start_acquisition(board_id)
- wait_for_revolutions(board_id)
- stop_acquisition(board_id)
- enable_transfer(board_id)
- pci.read(board_id, dma='dma0', destination=filename)
- flush_dma(board_id)
- def data_reset(board_id):
- log.vinfo('Data reset')
- pci.write(board_id, '000003f5', hex_mask='7')
- time.sleep(0.05)
- pci.write(board_id, '000003f0', hex_mask='7')
- time.sleep(0.05)
- def flush_dma(board_id, dma='dma0'):
- log.vinfo('Flushing DMA Pipeline')
- pci.write(board_id, '03f0', hex_mask='CF0')
- # TODO: implement identifier usage
- pci.read(board_id, dma=dma, destination='/dev/null')
- def stop_board(board_id):
- pci.write(board_id, '0x01', '0x9040')
- pci.stop_dma(board_id)
- def soft_reset(board_id):
- pci.write(board_id, '0x1', '0x9040', hex_mask='0x1')
- time.sleep(1)
- pci.write(board_id, '0x0', '0x9040', hex_mask='0x1')
- def start_pilot_bunch_emulator(board_id):
- log.vinfo('Start pilot bunch emulator')
- pci.write(board_id, '400003f0', hex_mask='400003F0')
- time.sleep(0.005)
- pci.write(board_id, '03f0', hex_mask='CF0')
- def start_acquisition(board_id):
- log.vinfo('Start acquisition')
- pci.write(board_id, '1', '4', hex_mask='1') # what's this? write value 1 to register 4???
- time.sleep(0.005)
- pci.write(board_id, '00bf0', hex_mask='CF0')
- def stop_acquisition(board_id):
- log.vinfo('Stop acquisition')
- pci.write(board_id, '003f0', hex_mask='CF0')
- time.sleep(0.005)
- def enable_transfer(board_id):
- log.vinfo('Enable data transfer')
- pci.write(board_id, '007f0', hex_mask='CF0')
- time.sleep(0.005)
|