*통신 방식을 정하였고 일부 코드를 짜두었다.
while과 trigger를 이용하는 경우 while에 빠져 버리는 경우 어떻게 될지 모르겠다.
일단은 전체적으로 코드를 한번씩 짜두고 나중에 수정하는 방식으로 할 계획이다.
*아래 흐름대로 통신이 진행된다.
*코드 (bNano : Flight만 제작되어있다)
#include <SoftwareSerial.h>
SoftwareSerial HC12(2,3);
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
HC12.begin(9600);
Serial.println(" B HC-12 Module");
pinMode(5, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
}
void rcvJoyData(struct * joyData){//joyData에 분리한 값을 넣는 것이다.
int trigger=1;
int step=1;
while(trigger){
if(step ==1){
if(HC12.available){
String input = HC12.readString();
Serial.println(input);
if(input == "RDYJOY1\r\n"){
HC12.println("RDYJOY2");
HC12.listen();
step=2;
}
}
}
if(step ==2 ){
int condition =-1;
if(HC12.available){
String input = HC12.readString();
Serial.println(input);
//condition = formatCheck(input); //****데이터의 포맷이 맞는지 여부만 파악하는 함수
if(condition==1){// 받은 데이터가 옳은 형식이면
HC12.println("RCVDT");
//*******data 분리해서 구조체에 넣는 함수 만들어
}
else if(condition ==0){// 받은 데이터가 틀린 형식이면
HC12.println("WRGDT");
}
step=3;
trigger =0;
}
}
}
}
void sendSenserVal(){
int trigger=1;
while(trigger){
if(HC12.available){
String input = HC12.readString();
Serial.println(input);
if(input == "RDYSND\r\n"){
HC12.println("");// 센서 데이터값
trigger=0;
}
}
}
}
'6_Project > Zigner' 카테고리의 다른 글
비행기 제작 재료 : 카드보드지 (0) | 2023.12.10 |
---|---|
통신 알고리즘 - HC12 테스트 (2) | 2023.12.03 |
통신 알고리즘 - HC12 테스트0 (0) | 2023.12.02 |
배터리 잔량표시 - 레퍼런스 (0) | 2023.09.27 |
SharpDx 레퍼런스 (0) | 2023.09.24 |