def reg_mda2(ls_phase, max_phy):
    frame = b'#'
    frame += b'\0\0\0'
    length = 4 * 2 + 4 * 8
    frame += length.to_bytes(4, byteorder)
    '''add body'''
    frame += b'C'
    frame += b'\4'
    length = 16
    frame += length.to_bytes(2, byteorder)
    frame += calc_adc_register(3, ls_phase[0], max_phy)
    frame += calc_adc_register(4, ls_phase[4], max_phy)
    frame += calc_adc_register(5, ls_phase[1], max_phy)
    frame += calc_adc_register(6, ls_phase[5], max_phy)
    frame += b'D'
    frame += b'\4'
    length = 16
    frame += length.to_bytes(2, byteorder)
    frame += calc_adc_register(3, ls_phase[2], max_phy)
    frame += calc_adc_register(4, ls_phase[6], max_phy)
    frame += calc_adc_register(5, ls_phase[3], max_phy)
    frame += calc_adc_register(6, ls_phase[7], max_phy)
    '''add crc'''
    mycrc = CRCCCITT().calculate(frame)
    frame += mycrc.to_bytes(2, byteorder)
    return frame
def init_reg_all():
    frame = b'#'
    frame += b'\0\0\0'
    length = 4
    frame += length.to_bytes(4, byteorder)
    '''add body'''
    frame += b'I'
    frame += b'\0'
    length = 0
    frame += length.to_bytes(2, byteorder)
    '''add crc'''
    mycrc = CRCCCITT().calculate(frame)
    frame += mycrc.to_bytes(2, byteorder)
    return frame
def reg_mla(value, max_phy):
    frame = b'#'
    frame += b'\0\0\0'
    length = 4 + 4 * 1
    frame += length.to_bytes(4, byteorder)
    '''add body'''
    frame += b'A'
    frame += b'\1'
    length = 4
    frame += length.to_bytes(2, byteorder)
    frame += calc_adc_register_unipolar(0, value, max_phy)
    '''add crc'''
    mycrc = CRCCCITT().calculate(frame)
    frame += mycrc.to_bytes(2, byteorder)
    return frame
def reg_mda1(ls_phase, max_phy):
    frame = b'#'
    frame += b'\0\0\0'
    length = 4 * 2 + 4 * 4
    frame += length.to_bytes(4, byteorder)
    '''add body'''
    frame += b'A'
    frame += b'\2'
    length = 8
    frame += length.to_bytes(2, byteorder)
    frame += calc_adc_register(1, ls_phase[0], max_phy)
    frame += calc_adc_register(2, ls_phase[1], max_phy)
    frame += b'B'
    frame += b'\2'
    length = 8
    frame += length.to_bytes(2, byteorder)
    frame += calc_adc_register(1, ls_phase[2], max_phy)
    frame += calc_adc_register(2, ls_phase[3], max_phy)
    '''add crc'''
    mycrc = CRCCCITT().calculate(frame)
    frame += mycrc.to_bytes(2, byteorder)
    return frame