files.py
92 lines
| 2.7 KiB
| text/x-python
|
PythonLexer
|
r32 | ''' | |
Created on Feb 8, 2016 | |||
@author: Miguel Urco | |||
''' | |||
import string | |||
def read_dds_file(fp): | |||
""" | |||
Function to extract the parameters from a text file with the next format: | |||
Input: | |||
File with the next content: | |||
Phase Adjust Register 1 | |||
----------------------- | |||
00000000 | |||
00000000 | |||
..... | |||
----------------------- | |||
Frequency Tuning Word 1 | |||
----------------------- | |||
00110101 | |||
01111111 | |||
11111111 | |||
11111111 | |||
10100000 | |||
00000000 | |||
Output: | |||
Return configuration parameters for DDS: multiplier, frequency, phase, amplitude, etc. | |||
""" | |||
kwargs = {} | |||
dds_registers = [] | |||
for this_line in fp: | |||
this_line = str.strip(this_line) | |||
if not str.isdigit(this_line): | |||
continue | |||
if len(this_line) != 8: | |||
continue | |||
dds_registers.append(string.atoi(this_line,2)) | |||
if len(dds_registers) != 40: | |||
return kwargs | |||
kwargs['clock'] = 60.0 | |||
kwargs['phase_bin'] = dds_registers[0]*(2**8) + dds_registers[1] | |||
kwargs['phase_mod_bin'] = dds_registers[2]*(2**8) + dds_registers[3] | |||
kwargs['frequency_bin'] = dds_registers[4]*(2**40) + dds_registers[5]*(2**32) + dds_registers[6]*(2**24) + dds_registers[7]*(2**16) + dds_registers[8]*(2**8) + dds_registers[9] | |||
kwargs['frequency_mod_bin'] = dds_registers[10]*(2**40) + dds_registers[11]*(2**32) + dds_registers[12]*(2**24) + dds_registers[13]*(2**16) + dds_registers[14]*(2**8) + dds_registers[15] | |||
kwargs['delta_frequency'] = dds_registers[16]*(2**40) + dds_registers[17]*(2**32) + dds_registers[18]*(2**24) + dds_registers[19]*(2**16) + dds_registers[20]*(2**8) + dds_registers[21] | |||
kwargs['update_clock'] = dds_registers[22]*(2**24) + dds_registers[23]*(2**16) + dds_registers[24]*(2**8) + dds_registers[25] | |||
kwargs['ramp_rate_clock'] = dds_registers[26]*(2**16) + dds_registers[27]*(2**8) + dds_registers[28] | |||
kwargs['control_register'] = dds_registers[29]*(2**24) + dds_registers[30]*(2**16) + dds_registers[31]*(2**8) + dds_registers[32] | |||
kwargs['multiplier'] = dds_registers[30] & 0x1F | |||
kwargs['modulation'] = (dds_registers[31] & 0x0E) >> 1 | |||
kwargs['amplitude_enabled'] = (dds_registers[32] & 0x20) >> 5 | |||
kwargs['amplitude_ch_A'] = (dds_registers[33]*(2**8) + dds_registers[34]) & 0x0FFF | |||
kwargs['amplitude_ch_B'] = (dds_registers[35]*(2**8) + dds_registers[36]) & 0x0FFF | |||
kwargs['amplitude_ramp_rate'] = dds_registers[37] | |||
return kwargs | |||
def read_json_file(fp): | |||
kwargs = {} | |||
return kwargs | |||
def write_dds_file(filename): | |||
pass | |||
def write_json_file(filename): | |||
pass |