⇒ 스트리밍 중 타이핑하면 문자열 깨지는 문제 해결 방안 제시

== 입력 라인 깨짐을 없애기 위한 방안 모색

추가 : 각 라인 및 단계 출력 추가

image.png


  1. stream_seq, stream_lines 전역 변수 추가
static uint32_t stream_seq = 0;
static uint32_t stream_lines = 0;

stream_seq : 스트리밍 데이터 한 줄마다 붙는 연속 번호

stream_lines : 실제로 스트리밍 라인을 몇 줄 보냈는지 세는 누적 카운터

⇒ UART는 중간에 라인이 유실 됐는지 시각적으로 판단 불가

seq가 있으면 PC에서 …, 10, 11, 13, … 같은 식으로 빠진 것을 즉시 검출 가능

로깅의 신뢰도 증명

  1. stream start에서 초기화 추가
if (strcmp(line, "stream start") == 0) {
    stream_on = 1;
    last_stream_ms = HAL_GetTick();

    stream_seq = 0;
    stream_lines = 0;

    uart_print("OK stream on\\r\\n");
    return;
}

스트리밍 새로 시작할 때마다 seq와 lines를 0으로 리셋

last_stream_ms는 주기 타이밍 기준점을 현재로 맞추는 것

⇒ 이전 세션의 seq가 이어지면 PC 로그를 볼 때 헷갈림

stream start는 새 세션의 시작 의미, 리셋 하는 것이 적합