1
1
Fork 0
mirror of https://github.com/QB64Official/qb64.git synced 2024-07-05 00:40:26 +00:00

Changes communication protocol so it doesn't rely on end markers.

The message length precedes the message, so no <END> marker is required anymore.
This commit is contained in:
FellippeHeitor 2021-08-15 13:56:22 -03:00
parent 97c7d164c9
commit ecfb439ff0
2 changed files with 12 additions and 14 deletions

View file

@ -5,8 +5,8 @@ SUB vwatch (globalVariables AS _OFFSET, localVariables AS _OFFSET)
STATIC AS LONG vw_runToLine
STATIC AS _BYTE vw_pauseMode, vw_stepOver, vw_bypass, vw_setNextLine, vw_hwndsent
STATIC AS _OFFSET vw_idehwnd
STATIC vw_buffer$, vw_endc$
DIM AS LONG vw_i, vw_tempIndex, vw_localIndex, vw_varSize, vw_sequence
STATIC vw_buffer$
DIM AS LONG vw_i, vw_tempIndex, vw_localIndex, vw_varSize, vw_sequence, vw_cmdsize
DIM AS _OFFSET vw_address
DIM AS _MEM vw_m, vw_m2
DIM vw_start!, vw_temp$, vw_cmd$, vw_value$, vw_k&, vw_buf$, vw_scope$
@ -31,7 +31,6 @@ SUB vwatch (globalVariables AS _OFFSET, localVariables AS _OFFSET)
IF vw_ideHost = 0 THEN
vw_timeout = 10
vw_endc$ = "<END>"
'initial setup
GOSUB Connect
@ -360,9 +359,10 @@ SUB vwatch (globalVariables AS _OFFSET, localVariables AS _OFFSET)
GET #vw_ideHost, , vw_temp$
vw_buffer$ = vw_buffer$ + vw_temp$
IF INSTR(vw_buffer$, vw_endc$) THEN
vw_cmd$ = LEFT$(vw_buffer$, INSTR(vw_buffer$, vw_endc$) - 1)
vw_buffer$ = MID$(vw_buffer$, INSTR(vw_buffer$, vw_endc$) + LEN(vw_endc$))
IF LEN(vw_buffer$) >= 4 THEN vw_cmdsize = CVL(LEFT$(vw_buffer$, 4)) ELSE vw_cmdsize = 0
IF vw_cmdsize > 0 AND LEN(vw_buffer$) >= vw_cmdsize THEN
vw_cmd$ = MID$(vw_buffer$, 5, vw_cmdsize)
vw_buffer$ = MID$(vw_buffer$, 5 + vw_cmdsize)
IF INSTR(vw_cmd$, ":") THEN
vw_value$ = MID$(vw_cmd$, INSTR(vw_cmd$, ":") + 1)
@ -391,7 +391,7 @@ SUB vwatch (globalVariables AS _OFFSET, localVariables AS _OFFSET)
RETURN
SendCommand:
vw_cmd$ = vw_cmd$ + vw_endc$
vw_cmd$ = MKL$(LEN(vw_cmd$)) + vw_cmd$
PUT #vw_ideHost, , vw_cmd$
vw_cmd$ = ""
RETURN

View file

@ -6343,7 +6343,6 @@ END SUB
SUB DebugMode
STATIC AS _BYTE PauseMode, noFocusMessage, EnteredInput
STATIC buffer$
STATIC endc$
STATIC currentSub$
STATIC debuggeehwnd AS _OFFSET
@ -6461,8 +6460,6 @@ SUB DebugMode
END IF
END IF
endc$ = "<END>"
'wait for client to connect
start! = TIMER
DO
@ -7554,9 +7551,10 @@ SUB DebugMode
END IF
buffer$ = buffer$ + temp$
IF INSTR(buffer$, endc$) THEN
cmd$ = LEFT$(buffer$, INSTR(buffer$, endc$) - 1)
buffer$ = MID$(buffer$, INSTR(buffer$, endc$) + LEN(endc$))
IF LEN(buffer$) >= 4 THEN cmdsize = CVL(LEFT$(buffer$, 4)) ELSE cmdsize = 0
IF cmdsize > 0 AND LEN(buffer$) >= cmdsize THEN
cmd$ = MID$(buffer$, 5, cmdsize)
buffer$ = MID$(buffer$, 5 + cmdsize)
IF INSTR(cmd$, ":") THEN
value$ = MID$(cmd$, INSTR(cmd$, ":") + 1)
@ -7570,7 +7568,7 @@ SUB DebugMode
RETURN
SendCommand:
cmd$ = cmd$ + endc$
cmd$ = MKL$(LEN(cmd$)) + cmd$
PUT #debugClient&, , cmd$
IF os$ = "WIN" AND _CONNECTED(debugClient&) = 0 THEN
clearStatusWindow 0