pub fn write_data(&mut self, ch: u32, data: *mut [i32; n], awg: *mut awgParam) {
let i: u32;
unsafe {
if(ch == 0) {
/* Channel A */
(*self.awgReg).state_machine_conf = 0x000041;
(*self.awgReg).cha_scale_off = (*awg).offsgain as u32;
(*self.awgReg).cha_count_wrap = (*awg).wrap;
(*self.awgReg).cha_count_step = (*awg).step;
(*self.awgReg).cha_start_off = 0;
for i in 0..n {
(*self.chaMem)[i] = (*data)[i] as u32;
}
} else if (ch == 1) {
/* Channel B */
(*self.awgReg).state_machine_conf = 0x410000;
(*self.awgReg).chb_scale_off = (*awg).offsgain as u32;
(*self.awgReg).chb_count_wrap = (*awg).wrap;
(*self.awgReg).chb_count_step = (*awg).step;
(*self.awgReg).chb_start_off = 0;
for i in 0..n {
(*self.chbMem)[i] = (*data)[i] as u32;
}
} else {
panic!("wrong channel selected");
}
/* Enable both channels */
(*self.awgReg).state_machine_conf = 0x110011;
}
}
cHViIGZuIHdyaXRlX2RhdGEoJm11dCBzZWxmLCBjaDogdTMyLCBkYXRhOiAqbXV0IFtpMzI7IG5dLCBhd2c6ICptdXQgYXdnUGFyYW0pIHsKCQlsZXQgaTogdTMyOwoKCQl1bnNhZmUgewoJCQlpZihjaCA9PSAwKSB7CgkJCQkvKiBDaGFubmVsIEEgKi8KCQkJCSgqc2VsZi5hd2dSZWcpLnN0YXRlX21hY2hpbmVfY29uZiA9IDB4MDAwMDQxOwoJCQkJKCpzZWxmLmF3Z1JlZykuY2hhX3NjYWxlX29mZiA9ICgqYXdnKS5vZmZzZ2FpbiBhcyB1MzI7CgkJCQkoKnNlbGYuYXdnUmVnKS5jaGFfY291bnRfd3JhcCA9ICgqYXdnKS53cmFwOwoJCQkJKCpzZWxmLmF3Z1JlZykuY2hhX2NvdW50X3N0ZXAgPSAoKmF3Zykuc3RlcDsKCQkJCSgqc2VsZi5hd2dSZWcpLmNoYV9zdGFydF9vZmYgPSAwOwoKCQkJCWZvciBpIGluIDAuLm4gewoJCQkJCSgqc2VsZi5jaGFNZW0pW2ldID0gKCpkYXRhKVtpXSBhcyB1MzI7CgkJCQl9CgkJCX0gZWxzZSBpZiAoY2ggPT0gMSkgewoJCQkJLyogQ2hhbm5lbCBCICovCgkJCQkoKnNlbGYuYXdnUmVnKS5zdGF0ZV9tYWNoaW5lX2NvbmYgPSAweDQxMDAwMDsKCQkJCSgqc2VsZi5hd2dSZWcpLmNoYl9zY2FsZV9vZmYgPSAoKmF3Zykub2Zmc2dhaW4gYXMgdTMyOwoJCQkJKCpzZWxmLmF3Z1JlZykuY2hiX2NvdW50X3dyYXAgPSAoKmF3Zykud3JhcDsKCQkJCSgqc2VsZi5hd2dSZWcpLmNoYl9jb3VudF9zdGVwID0gKCphd2cpLnN0ZXA7CgkJCQkoKnNlbGYuYXdnUmVnKS5jaGJfc3RhcnRfb2ZmID0gMDsKCgkJCQlmb3IgaSBpbiAwLi5uIHsKCQkJCQkoKnNlbGYuY2hiTWVtKVtpXSA9ICgqZGF0YSlbaV0gYXMgdTMyOwoJCQkJfQoJCQl9IGVsc2UgewoJCQkJcGFuaWMhKCJ3cm9uZyBjaGFubmVsIHNlbGVjdGVkIik7CgkJCX0KCgkJCS8qIEVuYWJsZSBib3RoIGNoYW5uZWxzICovCgkJCSgqc2VsZi5hd2dSZWcpLnN0YXRlX21hY2hpbmVfY29uZiA9IDB4MTEwMDExOwoJCX0KCX0=