class CNS(Control_data): ''' - Shared_mem : shared_mem[0] - 해당 에이전트의 Main 메모리가 보내짐. : self.all_mem[0] : 1번 에이전트의 메모리 : self.all_mem[0][0] : 1번 에이전트의 메모리 중 Main 메모리 <- 현재 수준에 전달된 메모리 : self.all_mem[0][0]['ZSGNOR1'] : 1번 에이전트의 메모리 중 Main 메모리에서 'ZSG..'의 정보 : 현재 클레스에서 값을 접근하려면 ex) self.CNS_condition['ZSGNOR1'] ''' def __init__(self, mem, ip, port, s_para, t_para): Control_data.__init__(self, s_para, t_para) self.CNS_condition = mem self.cns_udp = CNSUDP(ip=ip, port=port) def cns_run(self): ''' cns에 동작 신호를 보내고 1step 진행이 완료되면 0을 반환 :return: 0 : 1Step 진행 완료 ''' old_line = len(self.CNS_condition['KFZRUN']['L']) self.cns_udp._send_control_signal(['KFZRUN'], [3]) while True: new_line = len(self.CNS_condition['KFZRUN']['L']) if self.CNS_condition['KFZRUN'][ 'V'] == 4: # Run하고 1초 대기후 Freeze한 상태 if old_line != new_line: break time.sleep(1) return 0 def cns_initial(self): ''' cns에 초기화 동작 신호를 보내고 완료되면 0을 반환 :return: 0 : CNS 초기화 완료 ''' self.cns_udp._send_control_signal(['KFZRUN'], [5]) while True: if self.CNS_condition['KCNTOMS']['V'] == 0 and self.CNS_condition[ 'KFZRUN']['V'] == 6: # Initial이 완료된 상태 break time.sleep(1) return 0 def cns_mal_fun(self, mal_nub, mal_opt, mal_time): ''' cns에 malfunction 신호를 보냄 :param mal_nub: malfunction nuber :param mal_opt: malfunction option :param mal_time: malfunction 발생 time :return: - ''' return self.cns_udp._send_malfunction_signal(mal_nub, mal_opt, mal_time) def cns_control(self, para, val): return self.cns_udp._send_control_signal(para=para, val=val)
def __init__(self, mem, ip, port, s_para, t_para): Control_data.__init__(self, s_para, t_para) self.CNS_condition = mem self.cns_udp = CNSUDP(ip=ip, port=port)