Example #1
0
    def solve(self, tra):
        if  tra.type == "BC_TRANSACTION":
            try:
                descriptor, code = self.lookup(tra)
            except LookupException as e:
                #logger.warn(e)
                return
            except HardwareDescriptor:
                return

            if  self.filter and not self.filter.isPass(tra, descriptor, code):
                return

            Module.getModule().call("SOLVING_START", tra, descriptor, code)


            if  not Config.NOT_SOLVE:
                print("==============================")
                #print "#{}[{}] {} ==> {} / [{}]: {}".format(tra.debug_id, datetime.fromtimestamp(tra.time).strftime('%Y-%m-%d %H:%M:%S'), tra.from_proc_name, tra.to_proc_name, descriptor, code)
                print("#{} {} ==> {} / [{}]: {}".format(tra.debug_id, tra.from_proc_name, tra.to_proc_name, descriptor, code))
                #print "{{{"
                result = self.sSolver.solve(descriptor, code, tra.parcel)
                #print "}}}"

                if  result:
                    print("\t{}({})".format(result[0], ", ".join(str(i) for i in result[1:])))
                    Module.getModule().call("SOLVING_SUCCESS", *result)
                else:
                    Module.getModule().call("SOLVING_FAIL")
        """
    def solve(self, tra):
        global json_output;
        if  tra.type == "BC_TRANSACTION":
            try:
                descriptor, code = self.lookup(tra)
            except LookupException as e:
                #logger.warn(e)
                return 
            except HardwareDescriptor:
                return

            if  self.filter and not self.filter.isPass(tra, descriptor, code):
                return

            Module.getModule().call("SOLVING_START", tra, descriptor, code)


            if  not Config.NOT_SOLVE:
                print "=============================="
                #print "#{}[{}] {} ==> {} / [{}]: {}".format(tra.debug_id, datetime.fromtimestamp(tra.time).strftime('%Y-%m-%d %H:%M:%S'), tra.from_proc_name, tra.to_proc_name, descriptor, code)
                
                __builtin__.json_output[tra.debug_id] = {}
                __builtin__.json_output[tra.debug_id]['Source'] = tra.from_proc_name
                __builtin__.json_output[tra.debug_id]['Target'] = tra.to_proc_name
                __builtin__.json_output[tra.debug_id]['Transact_code'] = code
                __builtin__.json_output[tra.debug_id]['Class'] = descriptor
                __builtin__.json_output[tra.debug_id]['Action'] = '?'
                __builtin__.json_output[tra.debug_id]['requestCode'] = '?'
                __builtin__.json_output[tra.debug_id]['resultCode'] = '?'
                __builtin__.json_output[tra.debug_id]['Extras'] = []
                
                print "#{} {} ==> {} / [{}]: {}".format(tra.debug_id, tra.from_proc_name, tra.to_proc_name, descriptor, code)
                #print "{{{"
                
                __builtin__.debugid = tra.debug_id
                result = self.sSolver.solve(descriptor, code, tra.parcel)
                #print "}}}"
            
                

            
                if  result:
                    print "\t{}({})".format(result[0], ", ".join(str(i) for i in result[1:]))
                    Module.getModule().call("SOLVING_SUCCESS", *result)
                    __builtin__.json_output[tra.debug_id]['Result'] = { "Name":result[0], "Params":result[1:] }
                else:
                    Module.getModule().call("SOLVING_FAIL")

                
                __builtin__.debugid = -1
        """