나는 Jspin
및 Promela
을 처음 사용합니다.Jspin에서 mtype을 사용할 때 선언되지 않은 변수 오류
개인 ID 키 또는 암호를 사용하여 집 경보 시스템을 활성화 및 비활성화 할 수 있습니다. 활성화 후 시스템은 사용자가 대피 할 수있는 대기 시간 (약 30 초)으로 들어갑니다. 경보가 발령 된 보안 구역, 침입이 감지 된 경우에도 경보가 울리는 시간 또는 15 초의 지연이 내장되어있어 침입자가 암호를 입력하거나 카드 키를 스 와이프하여 자신을 식별 할 수 있도록합니다. 식별은 할당 된 15 초 이내에 이루어지지 않고 경보는 울리며 ID 카드 나 암호를 사용하여 비활성화 할 때까지 켜집니다. 내가
Jspin
으로 코드를 실행하면mtype = {sigact, sigdeact}; chan signal = [0] of {mtype}; /*chan syntax for declaring and initializing message passing channels*/ int count; bool alarm_off = true; /*The initial state of the alarm is off*/ active proctype alarm() { off: if :: count >= 30 -> atomic {signal!sigdeact; count = 0;alarm_off = false; goto on;} :: else -> atomic {count++; alarm_off = true; goto off;} fi; on: if :: count >=15 -> atomic { signal!sigact; count = 0; alarm_off = false; goto off;} :: else -> atomic {signal!sigact; alarm_off = true; goto off;} fi; pending: if :: count >= 30 -> atomic {count = 0; alarm_off = false; goto on;} :: count < 30 -> atomic {count++; alarm_off = false; goto pending;} fi; }
나는이 메시지를 얻을 :
Error: undeclared variable: sigact
을하지만 헤더에이 선언
이
는 코드입니다.어떻게 해결할 수 있습니까?
답장을 보내 주셔서 감사합니다. 나는 당신에게 대답하는 두 가지 질문을 가지고있다.''어떻게''alarm '이라 불리는 주어진'proctype' 함수에 입력을 전달할 수 있습니까? (OP 질문에 따라). 또한'key' 나'passoword'를'alarm' 장치로 전달하는'proctype' 함수를 작성했다고 가정 해 보겠습니다. 주어진'password' 또는'key'를 기반으로'alarm' 함수를 어떻게 적용 할 수 있습니까? –
@ Alexandru-IonutMihai stackoverflow에 대한 의견은 아무 이유없이 임의의 시점에 삭제 될 수 있으며 주석의 제한된 공간에서 특정 문제를 논의하기가 어렵 기 때문에 필요한 의사 코드를 포함하여 자신의 질문을 열어야합니다. –
당신이 나를 도울 수 있다면이 대답에서 현상금 보너스를 시작할 수 있습니다. 그것이 제가 여기에 의견을 쓴 이유입니다. 질문을 다른 답변에 게시 하시겠습니까? –