Register Extract Function
In [1]:
import binascii
def register_extract(hex_string='abcd0123', definition=([ 0, 'RegisterName', 'Comment'],) ):
num_of_bits = 32
bin_string = bin(int(hex_string, 16))[2:].zfill(num_of_bits)
print("^ Hexadezimal Value: 0x{0} {1} => Binary Value: 0b{2} {3} {4} {5} {6} {7} {8} {9} ^^^".format(hex_string[0:4],hex_string[4:8], bin_string[0:4], bin_string[4:8], bin_string[8:12], bin_string[12:16], bin_string[16:20], bin_string[20:24], bin_string[24:28], bin_string[28:32]))
print("^ {0:>4} ^ {1:>15} ^ {2:50} ^".format("Bit", "Registername", "Comment"))
for i in range(num_of_bits):
for entry in definition:
bit = bin_string[num_of_bits-1-i]
if bit == "1" and entry[0] == i:
print("| {0:4} | {1:>16} | {2:50} |".format(i, entry[1], entry[2]))
print("")
Link table doc PrintMode-PrintControl
In [2]:
printModeSetup_def = ([ 4, '', 'Drop Multiplication'],)
printModeSetup_def += ([ 8, '', 'Start Absolut'],)
printModeSetup_def += ([ 9, '', 'Start Relativ'],)
printModeSetup_def += ([10, '', 'Activate Img Offset'],)
printModeSetup_def += ([11, '', 'Activate Img Shift'],)
printModeSetup_def += ([12, '', 'ImageRotation'],)
printModeSetup_def += ([13, '', 'ImageMapping'],)
printModeSetup_def += ([16, '', 'Flip-X'],)
printModeSetup_def += ([17, '', 'Flip-Y'],)
printModeSetup_def += ([18, '', 'Activate Masking'],)
printModeSetup_def += ([24, '', 'Emulation Encoder'],)
printModeSetup_def += ([25, '', 'Use HW Encoder'],)
printModeSetup_def += ([26, '', 'Reverse HW Encoder'],)
printModeSetup_def += ([27, '', 'Encoder Single Phase Mode'],)
printModeSetup_def += ([28, '', 'RS422 option [0] 0=HW_Enc, 1=Dropwatcher, 2=Cam_Sync, 3=NoOutput'],)
printModeSetup_def += ([29, '', 'RS422 option [1] 0=HW_Enc, 1=Dropwatcher, 2=Cam_Sync, 3=NoOutput'],)
In [3]:
register_extract("00040C00", printModeSetup_def) # Digiround Settings original
register_extract("00042C00", printModeSetup_def) # Digiround Settings with image mapping
In [4]:
# Old < FPGA v1.3.0
#register_extract("00021C10", printModeSetup_def) # Flip Y <- Used @ Arcolor 20170608
# New >= FPGA v1.3.0
#register_extract("10010C10", printModeSetup_def) # Flip X
#register_extract("10011C10", printModeSetup_def) # Flip X
#register_extract("10021C10", printModeSetup_def) # Flip Y <- Used @ Arcolor 20170608
#register_extract("10031C10", printModeSetup_def) # Flip X + Flip Y
#register_extract("10001C10", printModeSetup_def) # Flip X + Flip Y
register_extract("10020C10", printModeSetup_def) # Flip Y <- Used @ Arcolor 20170608
In [5]:
register_extract("00040C00", printModeSetup_def) # Technikum Machine
register_extract("00070C00", printModeSetup_def) # DecoType + Flip X + Flip Y
In [6]:
register_extract("00051C10", printModeSetup_def) # Dmax (Printlack, Mainfranken)
register_extract("10051C10", printModeSetup_def) # Dmax (Printlack, Mainfranken)
DMAX CPI-Books settings with Camera Sync Output
In [7]:
register_extract("20051C10", printModeSetup_def) # Dmax @ Steinemann + Camera sync
register_extract("00061C10", printModeSetup_def)
register_extract("00071C10", printModeSetup_def)
In [8]:
register_extract("00051C10", printModeSetup_def) # Dmax @ Steinemann
register_extract("10051C10", printModeSetup_def) # Dmax @ Steinemann + Dropwatcher output
register_extract("10051C20", printModeSetup_def) # Dmax @ Steinemann + Dropwatcher output
register_extract("00041C10", printModeSetup_def) # DEM @ Gallus
In [9]:
register_extract("00070C00", printModeSetup_def) # DecoType + Flip X + Flip Y
In [10]:
register_extract("00060C00", printModeSetup_def)
Link table doc PrintMode-Job
In [11]:
printMode_def = ([ 8, 'SRC_NOTHING' , '-'],)
printMode_def += ([ 9, 'SRC_PATTERN' , 'Fix pattern'],)
printMode_def += ([10, 'SRC_GIGABIT' , 'Data taken from Ethernet Gigabit interface'],)
printMode_def += ([11, 'SRC_FOE' , 'Data taken from File over EtherCAT interface'],)
printMode_def += ([13, 'ENDLESS' , 'wrap mode is enabled in the JetMapping part'],)
printMode_def += ([16, 'INFINITE' , '-'],)
printMode_def += ([17, 'PREPOSTBLANK', 'Added PrePost Blank on the image'],)
printMode_def += ([18, 'SEGMENTED' , '-'],)
printMode_def += ([22, 'BPP_0' , '-'],)
printMode_def += ([23, 'BPP_1' , '-'],)
printMode_def += ([31, 'TEST' , '-'],)
register_extract("ffffffff", printMode_def)
register_extract("00820800", printMode_def)
register_extract("00860400", printMode_def)
register_extract("00860800", printMode_def)
In [12]:
pattern_def = ([ 0, 'VOID' , 'clear memory'],)
pattern_def += ([ 1, 'FULL' , 'fill memory'],)
pattern_def += ([ 2, 'LINEX' , 'lines in x'],)
pattern_def += ([ 3, 'LINEY' , 'lines in y'],)
pattern_def += ([ 4, 'CHECK' , 'check board'],)
pattern_def += ([ 5, 'NOZZLE' , '?'],)
pattern_def += ([ 6, 'DIAG' , '?'],)
pattern_def += ([ 7, 'GRAY' , '?'],)
pattern_def += ([ 8, 'EVEN' , '?'],)
pattern_def += ([ 9, 'ODD' , '?'],)
pattern_def += ([ 10,'ROWTEST' , '?'],)
register_extract("ffffffff", pattern_def)
In [13]:
job_status = ([ 0, 'ERROR' , 'Error exists in job preparing'],)
job_status += ([ 1, 'READY' , 'Current job is ready for printing'],)
job_status += ([ 4, 'TRANSFER_ACTIVE' , 'Data is being downloaded at the moment'],)
job_status += ([ 5, 'TRANSFER_25' , 'Transfer progress, if both flags are active this means the transfer is at 50%'],)
job_status += ([ 6, 'TRANSFER_50' , 'Transfer progress, transfer is at 50%'],)
job_status += ([ 7, 'TRANSFER_DONE' , 'Active when job has been transferred completely'],)
job_status += ([ 16, 'TRANSFER_R0' , 'file requested for channel 0'],)
job_status += ([ 17, 'TRANSFER_R1' , 'file requested for channel 1'],)
job_status += ([ 18, 'TRANSFER_R2' , 'file requested for channel 2'],)
job_status += ([ 19, 'TRANSFER_R3' , 'file requested for channel 3'],)
job_status += ([ 20, 'TRANSFER_READY' , 'Transfer ready for download'],)
job_status += ([ 28, 'LOCKED' , 'Current job is locked'],)
register_extract("ffffffff", job_status)
register_extract("10100010", job_status)