Skip to content

Commit

Permalink
Updated logging.
Browse files Browse the repository at this point in the history
  • Loading branch information
interkosmos committed Mar 5, 2024
1 parent df4012c commit 4753fd3
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 42 deletions.
24 changes: 14 additions & 10 deletions app/dmfs.f90
Original file line number Diff line number Diff line change
Expand Up @@ -255,16 +255,15 @@ integer function read_observ(observ, node_id, sensor_id, source, debug) result(r
! Get pointer to next request.
request => observ%requests(i)

if (debug_) call dm_log_debug('starting ' // request_name_string(request%name, i, n), observ=observ)
if (debug_) call dm_log_debug('starting ' // request_name_string(request%name, i, n, observ%name), observ=observ)

! Initialise request.
request%timestamp = dm_time_now()
request%error = E_IO

! Check if file path passed as observation request exists.
if (.not. dm_file_exists(request%request)) then
call dm_log_error('file ' // trim(request%request) // ' not found', &
observ=observ, error=request%error)
call dm_log_error('file ' // trim(request%request) // ' not found', observ=observ, error=request%error)
cycle req_loop
end if

Expand All @@ -273,8 +272,7 @@ integer function read_observ(observ, node_id, sensor_id, source, debug) result(r
if (stat == 0) request%error = E_NONE

if (dm_is_error(request%error)) then
call dm_log_error('failed to open file ' // trim(request%request), &
observ=observ, error=request%error)
call dm_log_error('failed to open file ' // trim(request%request), observ=observ, error=request%error)
cycle req_loop
end if

Expand All @@ -285,8 +283,15 @@ integer function read_observ(observ, node_id, sensor_id, source, debug) result(r
if (is_iostat_end(stat)) exit read_loop
if (stat /= 0) cycle read_loop

! Try to extract the response values.
request%response = dm_ascii_escape(raw)

! Try to extract the response values.
if (len_trim(request%pattern) == 0) then
rc = E_NONE
if (debug_) call dm_log_debug('no pattern in ' // request_name_string(request%name, i), observ=observ)
exit read_loop
end if

rc = dm_regex_request(request)

if (dm_is_error(rc)) then
Expand All @@ -303,9 +308,8 @@ integer function read_observ(observ, node_id, sensor_id, source, debug) result(r
response => request%responses(j)
if (dm_is_ok(response%error)) cycle

call dm_log_warning('failed to extract response ' // trim(response%name) // &
' of ' // request_name_string(request%name, i), &
observ=observ, error=response%error)
call dm_log_warning('failed to extract response ' // trim(response%name) // ' of ' // &
request_name_string(request%name, i), observ=observ, error=response%error)
end do

! Cycle on error or exit on success.
Expand All @@ -325,7 +329,7 @@ integer function read_observ(observ, node_id, sensor_id, source, debug) result(r
cycle req_loop
end if

if (debug_) call dm_log_debug('finished ' // request_name_string(request%name, i, n), observ=observ)
if (debug_) call dm_log_debug('finished ' // request_name_string(request%name, i, n, observ%name), observ=observ)

! Wait the set delay time of the request.
delay = max(0, request%delay)
Expand Down
17 changes: 8 additions & 9 deletions app/dmpipe.f90
Original file line number Diff line number Diff line change
Expand Up @@ -248,8 +248,8 @@ integer function read_observ(pipe, observ, node_id, sensor_id, source, debug) re
n = observ%nrequests

if (n == 0) then
if (debug_) call dm_log_debug('no requests in observ ' // observ%name, observ=observ)
observ%error = rc
if (debug_) call dm_log_debug('no requests in observ ' // observ%name, observ=observ)
return
end if

Expand All @@ -258,7 +258,7 @@ integer function read_observ(pipe, observ, node_id, sensor_id, source, debug) re
! Get pointer to next request.
request => observ%requests(i)

if (debug_) call dm_log_debug('starting ' // request_name_string(request%name, i, n), observ=observ)
if (debug_) call dm_log_debug('starting ' // request_name_string(request%name, i, n, observ%name), observ=observ)

! Initialise request.
request%timestamp = dm_time_now()
Expand All @@ -283,9 +283,10 @@ integer function read_observ(pipe, observ, node_id, sensor_id, source, debug) re
request%response = dm_ascii_escape(raw)

! Try to extract the response values.
if (debug_) then
call dm_log_debug('parsing response of ' // request_name_string(request%name, i), &
observ=observ)
if (len_trim(request%pattern) == 0) then
rc = E_NONE
if (debug_) call dm_log_debug('no pattern in ' // request_name_string(request%name, i), observ=observ)
exit pipe_loop
end if

rc = dm_regex_request(request)
Expand All @@ -295,21 +296,19 @@ integer function read_observ(pipe, observ, node_id, sensor_id, source, debug) re
call dm_log_debug('response of ' // request_name_string(request%name, i) // &
' does not match pattern', observ=observ, error=request%error)
end if

cycle pipe_loop
end if

! Check responses.
do j = 1, request%nresponses
response => request%responses(j)
if (dm_is_ok(response%error)) cycle

call dm_log_warning('failed to extract response ' // trim(response%name) // &
' of ' // request_name_string(request%name, i), &
observ=observ, error=response%error)
end do

! Cycle on error.
! Re-read on error.
if (dm_is_error(rc)) cycle pipe_loop

exit pipe_loop
Expand All @@ -326,7 +325,7 @@ integer function read_observ(pipe, observ, node_id, sensor_id, source, debug) re
cycle req_loop
end if

if (debug_) call dm_log_debug('finished ' // request_name_string(request%name, i, n), observ=observ)
if (debug_) call dm_log_debug('finished ' // request_name_string(request%name, i, n, observ%name), observ=observ)

! Wait the set delay time of the request.
delay = max(0, request%delay)
Expand Down
39 changes: 16 additions & 23 deletions app/dmserial.f90
Original file line number Diff line number Diff line change
Expand Up @@ -346,8 +346,8 @@ integer function read_observ(tty, observ, node_id, sensor_id, source, debug) res
n = observ%nrequests

if (n == 0) then
call dm_log_info('no requests in observ ' // observ%name, observ=observ)
observ%error = rc
call dm_log_info('no requests in observ ' // observ%name, observ=observ)
return
end if

Expand All @@ -356,8 +356,7 @@ integer function read_observ(tty, observ, node_id, sensor_id, source, debug) res
request => observ%requests(i)

if (debug_) then
call dm_log_debug('sending ' // request_name_string(request%name, i, n) // &
': ' // request%request, observ=observ)
call dm_log_debug('starting ' // request_name_string(request%name, i, n, observ%name), observ=observ)
end if

! Prepare request.
Expand All @@ -367,9 +366,14 @@ integer function read_observ(tty, observ, node_id, sensor_id, source, debug) res
request%timestamp = dm_time_now()

! Send request to sensor.
if (debug_) then
call dm_log_debug('sending request to TTY ' // trim(app%tty) // ': ' // &
request%request, observ=observ)
end if

rc = dm_tty_write(tty, request, flush=.true.)

if (dm_is_error(request%error)) then
if (dm_is_error(rc)) then
request%error = rc
call dm_log_error('failed to write ' // request_name_string(request%name, i) // &
' to TTY ' // app%tty, observ=observ, error=rc)
Expand All @@ -378,10 +382,7 @@ integer function read_observ(tty, observ, node_id, sensor_id, source, debug) res

! Ignore sensor response if no delimiter is set.
if (len_trim(request%delimiter) == 0) then
if (debug_) then
call dm_log_debug('no delimiter in ' // request_name_string(request%name, i), observ=observ)
end if

if (debug_) call dm_log_debug('no delimiter in ' // request_name_string(request%name, i), observ=observ)
cycle req_loop
end if

Expand All @@ -396,8 +397,8 @@ integer function read_observ(tty, observ, node_id, sensor_id, source, debug) res
end if

if (debug_) then
call dm_log_debug('received response for ' // request_name_string(request%name, i) // &
': ' // request%response, observ=observ)
call dm_log_debug('received response from TTY ' // trim(app%tty) // ': ' // &
request%response, observ=observ)
end if

! Do not extract responses if no pattern is set.
Expand All @@ -409,17 +410,12 @@ integer function read_observ(tty, observ, node_id, sensor_id, source, debug) res
end if

! Try to extract the response values if a regex pattern is given.
if (debug_) then
call dm_log_debug('parsing response of ' // request_name_string(request%name, i), &
observ=observ)
end if

rc = dm_regex_request(request)

if (dm_is_error(rc)) then
request%error = rc
call dm_log_warning('response of ' // request_name_string(request%name, i) // &
' does not match pattern', observ=observ, error=request%error)
call dm_log_warning('response of ' // request_name_string(request%name, i) // ' does not match pattern', &
observ=observ, error=request%error)
cycle req_loop
end if

Expand All @@ -428,16 +424,13 @@ integer function read_observ(tty, observ, node_id, sensor_id, source, debug) res
response => request%responses(j)

if (dm_is_error(response%error)) then
call dm_log_warning('failed to extract response ' // trim(response%name) // &
' of ' // request_name_string(request%name, i), &
observ=observ, error=response%error)
call dm_log_warning('failed to extract response ' // trim(response%name) // ' of ' // &
request_name_string(request%name, i), observ=observ, error=response%error)
cycle
end if
end do

if (debug_) then
call dm_log_debug('finished ' // request_name_string(request%name, i, n), observ=observ)
end if
if (debug_) call dm_log_debug('finished ' // request_name_string(request%name, i, n, observ%name), observ=observ)

! Wait the set delay time of the request.
delay = max(0, request%delay)
Expand Down

0 comments on commit 4753fd3

Please sign in to comment.