diff --git a/examples/pllld_count.jl b/examples/pllld_count.jl index 6bd0e8d..9fcd55f 100644 --- a/examples/pllld_count.jl +++ b/examples/pllld_count.jl @@ -12,11 +12,12 @@ begin using PSBoardDataBase using SQLite using DataFrames + using CSV using CairoMakie using FHist using LinearAlgebra using Printf - using PlutoUI + using PlutoUI end # ╔═╡ 3fccbdca-9856-4122-8597-9f267f90d390 @@ -67,9 +68,9 @@ map(eachrow(qaqc_extra_run_campaign_6)) do row logfilename = "$(row.psboard_id)_$(row.runid)_longrun.txt" logfile = joinpath("../test/input/slavelogs/main/", logfilename) !ispath(logfile) && begin - @info "file $(logfile) not found" - return missing - end + @info "file $(logfile) not found" + return missing + end slave_result = PSBoardDataBase.SlaveLogParser.parse_slavelog_file(logfile) map(slave_result.asdtp) do asdtp_result asdtp_result.pllld_fail_counter @@ -77,7 +78,7 @@ map(eachrow(qaqc_extra_run_campaign_6)) do row end # ╔═╡ 34ae2948-bb5a-4086-beb1-cfb77593d678 -df_pllld_counts = combine( +df_pllld_counts_camp6 = combine( groupby(qaqc_extra_run_campaign_6, :id), AsTable([:psboard_id, :runid]) => ( @@ -96,30 +97,34 @@ df_pllld_counts = combine( psboard_id = sdf.psboard_id[1], runid = sdf.runid[1], pllld_count = asdtp_result.pllld_fail_counter + 1, + reset_failed_though_reconfig_done = let + asdtp_result.reconfig_done_2 == 0 && + asdtp_result.pllld_fail_counter == 10 + end, ) end end - ) => [:psboard_id, :runid, :pllld_count], + ) => [:psboard_id, :runid, :pllld_count, :reset_failed_though_reconfig_done], ) # ╔═╡ c084b8f4-dbc2-497b-9132-7e4bd4fd3874 -sort(df_pllld_counts, :pllld_count, rev = true) +sort(df_pllld_counts_camp6, :pllld_count, rev = true) # ╔═╡ 6d85cc29-0d02-43b4-8a50-57f003e4686b let - df = combine(groupby(df_pllld_counts, :id), nrow) - sort!(df, :nrow) + df = combine(groupby(df_pllld_counts_camp6, :id), nrow) + sort!(df, :nrow) end # ╔═╡ e95447c1-a8e2-4a46-9320-e1a88d9e34da -unique(df_pllld_counts.psboard_id) |> sort +unique(df_pllld_counts_camp6.psboard_id) |> sort # ╔═╡ 0433bbe4-1f71-4cf7-96ec-ac9c70170feb -stephist(df_pllld_counts.pllld_count) +stephist(df_pllld_counts_camp6.pllld_count) # ╔═╡ f04d5c95-7308-4129-ba95-49da2e142d5d let - h1 = Hist1D(df_pllld_counts.pllld_count; binedges = 1:1:10, overflow = false) + h1 = Hist1D(df_pllld_counts_camp6.pllld_count; binedges = 1:1:10, overflow = false) h1 = normalize(h1) fig = Figure() ax = Axis( @@ -142,18 +147,97 @@ let fig[1, 1], """ n = $(nentries(h1)) - $(length(unique(df_pllld_counts.psboard_id))) PS-Boards + $(length(unique(df_pllld_counts_camp6.psboard_id))) PS-Boards """, tellwidth = false, tellheight = false, - halign = :right, - padding = (20, 20, 20, 20), + halign = :right, + padding = (20, 20, 20, 20), ) - save("pllld_fail_counts.svg", fig) + save("pllld_fail_counts.svg", fig) fig end +# ╔═╡ 650482e5-9b79-4304-aa5a-2b7c9a377013 +md""" +## "reconfig_done = 0なのにresetしていない" の数 +""" + +# ╔═╡ 4b9c0bd8-b17a-4933-8d6e-2da884fc4b5e +combine( + groupby(df_pllld_counts_camp6, :id), + AsTable(:) => + ( + sdf -> begin + @assert allequal(sdf.psboard_id) + @assert allequal(sdf.runid) + ( + reset_failed_though_reconfig_done = count( + sdf.reset_failed_though_reconfig_done, + ), + psboard_id = first(sdf.psboard_id), + runid = first(sdf.runid), + ) + end + ) => [:reset_failed_though_reconfig_done, :psboard_id, :runid], +) + +# ╔═╡ a0baf37c-8b05-49c1-a6a4-027f3404f8b4 +df_reset_failed_though_reconfig_done = combine( + groupby(qaqc_extra_run_results, :id), + AsTable([:psboard_id, :runid]) => + ( + sdf -> begin + @assert nrow(sdf) == 1 + + logfilename = "$(sdf.psboard_id[1])_$(sdf.runid[1])_longrun.txt" + logfile = joinpath("../test/input/slavelogs/main/", logfilename) + !ispath(logfile) && begin + @warn "logfile $(logfile) not found" + return ( + psboard_id = sdf.psboard_id[1], + runid = sdf.runid[1], + reset_failed_though_reconfig_done = missing, + ) + end + if sdf.runid[1] == 99 + @info "skipping runid 99 since it is not exactly 100 run" + return ( + psboard_id = sdf.psboard_id[1], + runid = sdf.runid[1], + reset_failed_though_reconfig_done = missing, + ) + end + slave_result = + PSBoardDataBase.SlaveLogParser.parse_slavelog_file(logfile) + return ( + psboard_id = sdf.psboard_id[1], + runid = sdf.runid[1], + reset_failed_though_reconfig_done = count( + slave_result.asdtp, + ) do asdtp_result + asdtp_result.reconfig_done_2 == 0 && + asdtp_result.pllld_fail_counter == 10 + end, + ) + end + ) => [:psboard_id, :runid, :reset_failed_though_reconfig_done], +) + +# ╔═╡ 14519d45-a6a9-4ba1-a4f2-9597d1335b2c +let + df_compare = outerjoin( + df_reset_failed_though_reconfig_done, + select(qaqc_extra_run_results, [:id, :reset_failed_though_reconfig_done]), + on = :id, + renamecols = "_old" => "_new", + ) +end + +# ╔═╡ dfeb3900-539f-4d8d-8103-edb67cf4e890 +#CSV.write("reset_failed_though_reconfig_done.csv", df_reset_failed_though_reconfig_done) + # ╔═╡ Cell order: # ╠═3fccbdca-9856-4122-8597-9f267f90d390 # ╠═635dcf78-b6b3-11ef-3a04-f5b7c43ed12d @@ -173,3 +257,8 @@ end # ╠═e95447c1-a8e2-4a46-9320-e1a88d9e34da # ╠═0433bbe4-1f71-4cf7-96ec-ac9c70170feb # ╠═f04d5c95-7308-4129-ba95-49da2e142d5d +# ╟─650482e5-9b79-4304-aa5a-2b7c9a377013 +# ╠═4b9c0bd8-b17a-4933-8d6e-2da884fc4b5e +# ╠═a0baf37c-8b05-49c1-a6a4-027f3404f8b4 +# ╠═14519d45-a6a9-4ba1-a4f2-9597d1335b2c +# ╠═dfeb3900-539f-4d8d-8103-edb67cf4e890