def cb_dac(self, param): """ Callback for the DAC """ #log.debug("DAC CB %s", param) if param is None: self.out_buffer = StringIO("DAC %X, %X\n" % (self.dacval0, self.dacval1)) return dacid = int(param[0].replace(',','')) dacval = int(param[1], 16) #log.debug("DAC id=%s", dacid) if dacid == 0: self.dacval0 = dacval #log.debug("Dacval0=%s",self.dacval0) self.adcval0 = (dacval * self.conf['DACCONST0'] / self.conf['ADCCONST0'] + self.conf['ADCOFFSET0']) elif dacid == 1: self.dacval1 = dacval #log.debug("Dacval1=%s", self.dacval1) self.adcval1 = (dacval * self.conf['DACCONST1'] / self.conf['ADCCONST1'] + self.conf['ADCOFFSET1']) else: log.error("Unknown dac id")
def generate_packet(self): """ Take the data from which we properly arranged and pack it properly to produce our "binary" packet. Ship it to the host for to convert back to python types! """ data = self.generate_packet_data() fmtstruct = self.fmt.get_struct() try: return fmtstruct.pack(*data) except Exception as e: log.error(str(data)) raise e
def cb_ssr(self, param): #""" Callback for the SSR """ #log.debug("SSR CB %s", param) if param is None: self.out_buffer = StringIO("SSR %d, %d\n" % (self.ssrval0, self.ssrval1)) return #log.debug("SSR:param=%s", param) devid = int(param[0]) state = int(param[1].strip()) if not state in (0,1): log.error("Invalid SSR state to CBoxSim") return if devid == 0: self.ssrval0 = state elif devid == 1: self.ssrval1 = state else: log.error("Invalid SSR ID to CBoxSim")