Skip to content
Snippets Groups Projects
Commit 24d02b32 authored by Patrick Robbe's avatar Patrick Robbe
Browse files

Test B2L with Front-End and DMA

parent ecf33cdf
No related branches found
No related tags found
No related merge requests found
...@@ -60,11 +60,13 @@ def _crc16(data, crc, table): ...@@ -60,11 +60,13 @@ def _crc16(data, crc, table):
def decode_data( dataraw , data ): def decode_data( dataraw , data ):
# Remove intermediate lines # Remove intermediate lines
datalsb = list( itertools.islice( dataraw , 0 , None , 16 ) ) datamsb = list( itertools.islice( dataraw , 0 , None , 16 ) )
datamsb = list( itertools.islice( dataraw , 8 , None , 16 ) ) datalsb = list( itertools.islice( dataraw , 8 , None , 16 ) )
# Group in 32 bit words # Group in 32 bit words
data += [ ( ( x & 0xFFFF ) | ( ( y & 0xFFFF ) << 8 ) ) for x, y in zip( datalsb, datamsb) ] data += [ ( ( x & 0xFFFF ) | ( ( y & 0xFFFF ) << 16 ) ) for x, y in zip( datalsb, datamsb) ]
return 0 # Find beginning and end of event
size = [ i for i, n in enumerate( data ) if n == data[0] ][1] + 2
return size
import socket import socket
hname = socket.gethostname() hname = socket.gethostname()
...@@ -97,20 +99,16 @@ for nev in range( 1 ): ...@@ -97,20 +99,16 @@ for nev in range( 1 ):
dma_read( 0 , dataraw ) dma_read( 0 , dataraw )
size = decode_data( dataraw , data ) size = decode_data( dataraw , data )
print data
print "Number of words received = {0}".format( size ) print "Number of words received = {0}".format( size )
if size == 0: if size == 0:
print 'Not enough data read, exit' print 'Not enough data read, exit'
exit( 0 ) exit( 0 )
for i in range( size / 2 + 1 ): for i in range( size ):
status, val = mem.read( 0 , 0x00050060 ) if ( i <= (size-3)) :
data.append( ( ( val & 0xFFFF ) << 16 ) | ( ( val & 0xFFFF0000 ) >> 16 ) ) data_crc.append( ( data[ i ] & 0xFFFF0000 ) >> 16 )
if ( i <= size / 2 - 3) : data_crc.append( ( data[ i ] & 0xFFFF ) )
data_crc.append( ( val & 0xFFFF ) )
data_crc.append( ( val & 0xFFFF0000 ) >> 16 )
# Display data: # Display data:
print '===================================' print '==================================='
...@@ -123,15 +121,15 @@ for nev in range( 1 ): ...@@ -123,15 +121,15 @@ for nev in range( 1 ):
print 'FEE: data #0 {0:08x}'.format(data[5]) print 'FEE: data #0 {0:08x}'.format(data[5])
print 'FEE: data #1 {0:08x}'.format(data[6]) print 'FEE: data #1 {0:08x}'.format(data[6])
print 'FEE: ..........' print 'FEE: ..........'
print 'FEE: data #{0} {1:08x}'.format(size/2-7,data[size/2-3]) print 'FEE: data #{0} {1:08x}'.format(size-7,data[size-3])
print '-----------------------------------' print '-----------------------------------'
print 'B2L: {0:08x}'.format(data[size/2-2]) print 'B2L: {0:08x}'.format(data[size-2])
print 'B2L: {0:08x}'.format(data[size/2-1]) print 'B2L: {0:08x}'.format(data[size-1])
print '===================================' print '==================================='
print '' print ''
print 'CRC = {0:04x}'.format(data[size/2]&0xFFFF) print 'CRC = {0:04x}'.format(data[size-1]&0xFFFF)
print 'Computed CRC {0:04x}'.format(_crc16( data_crc, 0xffff , CRC16_XMODEM_TABLE ) ) print 'Computed CRC {0:04x}'.format(_crc16( data_crc, 0xffff , CRC16_XMODEM_TABLE ) )
if ( data[size/2-1]&0xFFFF ) != ( _crc16( data_crc, 0xffff , CRC16_XMODEM_TABLE ) ): if ( data[size-1]&0xFFFF ) != ( _crc16( data_crc, 0xffff , CRC16_XMODEM_TABLE ) ):
print 'Error in CRC comparison' print 'Error in CRC comparison'
nErr = nErr + 1 nErr = nErr + 1
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment