From c8e2ff356b52b5edda4f73e659dd3caeb8a29918 Mon Sep 17 00:00:00 2001 From: Wataru Otsubo Date: Thu, 19 Dec 2024 17:47:48 +0900 Subject: [PATCH] update(examples): pllld_wait_scan - also, it was formatted --- examples/pllld_wait_scan.jl | 229 +++++++++++++++++++++++++----------- 1 file changed, 158 insertions(+), 71 deletions(-) diff --git a/examples/pllld_wait_scan.jl b/examples/pllld_wait_scan.jl index 89db559..d884272 100644 --- a/examples/pllld_wait_scan.jl +++ b/examples/pllld_wait_scan.jl @@ -10,15 +10,15 @@ begin Pkg.activate(".") using PSBoardDataBase - using DataFrames + using DataFrames using CairoMakie using FHist using LinearAlgebra using Printf - using Measurements - using Unitful - using Statistics - using Missings + using Measurements + using Unitful + using Statistics + using Missings using PlutoUI end @@ -29,15 +29,50 @@ md""" # ╔═╡ 8c8f15fb-508f-4068-8fc0-d6ad5905891d df_psboards = DataFrame( - position = ["B-$(i)-$(j)" for j in 1:9 for i in 0:1], - psbid = [001142, 000973, 000990, 000992, 001113, 001030, 001121, 001141, 001050, 001053, 001110, 001248, 001242, 001276, 000872, 000861, 000525, 000862] + position = ["B-$(i)-$(j)" for j in 1:9 for i in 0:1], + psbid = [ + 001142, + 000973, + 000990, + 000992, + 001113, + 001030, + 001121, + 001141, + 001050, + 001053, + 001110, + 001248, + 001242, + 001276, + 000872, + 000861, + 000525, + 000862, + ], ) # ╔═╡ 4ebadb4f-ba6f-412e-9def-450ca9d3f6b8 df_setups = DataFrame( - runid = [384, 386, 388, 389, 390, 391, 393, 396, 397, 398, 400, 401], - firmware = [fill("PS_firmware_top_2024_11_27.zip", 6); fill("PS_firmware_top_CPdrivability_2b00.zip", 6);], - wait_length = [missing, 100u"ns", 1u"μs", 10u"μs", 100u"μs", 1u"ms", 1u"ms", 100u"ns", 10u"μs", 1u"μs", 100u"μs", 100u"μs"], + runid = [384, 386, 388, 389, 390, 391, 393, 396, 397, 398, 400, 401], + firmware = [ + fill("PS_firmware_top_2024_11_27.zip", 6) + fill("PS_firmware_top_CPdrivability_2b00.zip", 6) + ], + wait_length = [ + missing, + 100u"ns", + 1u"μs", + 10u"μs", + 100u"μs", + 1u"ms", + 1u"ms", + 100u"ns", + 10u"μs", + 1u"μs", + 100u"μs", + 100u"μs", + ], ) # ╔═╡ 8ae734be-7a93-4257-ad2a-02cdee82066a @@ -45,92 +80,144 @@ df_configs = crossjoin(df_setups, df_psboards) # ╔═╡ d6da8dca-e7f0-4f9e-88dd-53e91c8c55ad function get_pllld_counter_hist(slaveresult) - h1 = Hist1D(; binedges = 1:1:11) - for asdtp_result in slaveresult.asdtp - push!(h1, asdtp_result.pllld_fail_counter + 1) - end - return h1 + h1 = Hist1D(; binedges = 1:1:11) + for asdtp_result in slaveresult.asdtp + push!(h1, asdtp_result.pllld_fail_counter + 1) + end + return h1 end # ╔═╡ bc78bf6e-2d1f-4922-8b9e-48aaf1e8b0af -df_pllld_fail_counts = transform(df_configs, [:runid, :psbid] => ByRow((runid, psbid) -> begin - slavelog = "../test/input/slavelogs/main/$(psbid)_$(runid)_longrun.txt" - if !ispath(slavelog) - @info "file $(slavelog) not found" - return missing - end - slaveresult = PSBoardDataBase.SlaveLogParser.parse_slavelog_file(slavelog) - # @info "" slaveresult - h_pllld_fail_count = get_pllld_counter_hist(slaveresult) - h_pllld_fail_count -end) => :pllld_count) +df_pllld_fail_counts = transform( + df_configs, + [:runid, :psbid] => + ByRow( + (runid, psbid) -> begin + slavelog = "../test/input/slavelogs/main/$(psbid)_$(runid)_longrun.txt" + if !ispath(slavelog) + @info "file $(slavelog) not found" + return missing + end + slaveresult = + PSBoardDataBase.SlaveLogParser.parse_slavelog_file(slavelog) + # @info "" slaveresult + h_pllld_fail_count = get_pllld_counter_hist(slaveresult) + h_pllld_fail_count + end, + ) => :pllld_count, +) # ╔═╡ 6100e4a6-30ed-4540-9e8d-0171272e41e9 let df - df = filter([:firmware, :wait_length] => ((firmware, wait_length) -> begin - firmware == "PS_firmware_top_2024_11_27.zip" && ismissing(wait_length) -end), df_pllld_fail_counts) - @info "" nrow(df) nrow(df) == 18 * 1 + df = filter( + [:firmware, :wait_length] => ( + (firmware, wait_length) -> begin + firmware == "PS_firmware_top_2024_11_27.zip" && ismissing(wait_length) + end + ), + df_pllld_fail_counts, + ) + @info "" nrow(df) nrow(df) == 18 * 1 - combine(groupby(df, :wait_length), :pllld_count => sum) + combine(groupby(df, :wait_length), :pllld_count => sum) end # ╔═╡ 0100a27a-70a3-4d1d-916e-00be7b436f7e let df - fig = Figure() - ax = Axis(fig[1, 1], xlabel = "number of reset", title = "same setup as 6th QAQC") - - df = filter([:firmware, :wait_length] => ((firmware, wait_length) -> begin - firmware == "PS_firmware_top_2024_11_27.zip" && ismissing(wait_length) - end), df_pllld_fail_counts) + fig = Figure() + ax = Axis(fig[1, 1], xlabel = "number of reset", title = "same setup as 6th QAQC") - normhist = normalize(sum(df.pllld_count)) - stephist!(ax, normhist) - errorbars!(ax, normhist) + df = filter( + [:firmware, :wait_length] => ( + (firmware, wait_length) -> begin + firmware == "PS_firmware_top_2024_11_27.zip" && ismissing(wait_length) + end + ), + df_pllld_fail_counts, + ) - fig + normhist = normalize(sum(df.pllld_count)) + stephist!(ax, normhist) + errorbars!(ax, normhist) + + fig end # ╔═╡ d1be7028-6c2d-40bc-8a76-352d59d1f91a let df - df = filter([:firmware, :wait_length] => ((firmware, wait_length) -> begin - firmware == "PS_firmware_top_2024_11_27.zip" && !ismissing(wait_length) -end), df_pllld_fail_counts) - @info "" nrow(df) nrow(df) == 18 * 5 + df = filter( + [:firmware, :wait_length] => ( + (firmware, wait_length) -> begin + firmware == "PS_firmware_top_2024_11_27.zip" && !ismissing(wait_length) + end + ), + df_pllld_fail_counts, + ) + @info "" nrow(df) nrow(df) == 18 * 5 - df_summarized = combine(groupby(df, :wait_length), :pllld_count => sum) + df_summarized = combine(groupby(df, :wait_length), :pllld_count => sum) - fig = Figure(size = (600, 1000)) - Label(fig[0, 1], "normal firmware, softreset software for scanning", tellwidth = false) - for (i, row) in enumerate(eachrow(df_summarized)) - ax = Axis(fig[i, 1], yscale = log10, xlabel = "number of resets", ylabel = "fraction", title = "$(row.wait_length)") - normhist = normalize(row.pllld_count_sum) - stephist!(ax, normhist) - errorbars!(ax, normhist) - end - - fig + fig = Figure(size = (600, 1000)) + Label(fig[0, 1], "normal firmware, softreset software for scanning", tellwidth = false) + for (i, row) in enumerate(eachrow(df_summarized)) + ax = Axis( + fig[i, 1], + yscale = log10, + xlabel = "number of resets", + ylabel = "fraction", + title = "$(row.wait_length)", + limits = ((1, 11), (eps(), 100)), + ) + normhist = normalize(row.pllld_count_sum) + stephist!(ax, normhist) + errorbars!(ax, normhist) + text!( + ax, + bincenters(normhist), + bincounts(normhist), + text = [@sprintf "%.4f" r for r in bincounts(normhist)], + ) + end + fig end # ╔═╡ ae97c43d-34dd-4aad-8cf5-7158b717e5c1 let df - df = filter([:firmware, :wait_length] => ((firmware, wait_length) -> begin - firmware == "PS_firmware_top_CPdrivability_2b00.zip" -end), df_pllld_fail_counts) - dropmissing!(df, :pllld_count) - @info "" nrow(df) nrow(df) == 18 * 6 + df = filter( + [:firmware, :wait_length] => ( + (firmware, wait_length) -> begin + firmware == "PS_firmware_top_CPdrivability_2b00.zip" + end + ), + df_pllld_fail_counts, + ) + dropmissing!(df, :pllld_count) + @info "" nrow(df) nrow(df) == 18 * 6 - df_summarized = combine(groupby(df, :wait_length), :pllld_count => sum) + df_summarized = combine(groupby(df, :wait_length, sort = true), :pllld_count => sum) - fig = Figure(size = (600, 1000)) - Label(fig[0, 1], "minimum charge pump bias current", tellwidth = false) - for (i, row) in enumerate(eachrow(df_summarized)) - ax = Axis(fig[i, 1]) - normhist = normalize(row.pllld_count_sum) - stephist!(ax, normhist) - errorbars!(ax, normhist) - end - fig + fig = Figure(size = (600, 1000)) + Label(fig[0, 1], "minimum charge pump bias current", tellwidth = false) + for (i, row) in enumerate(eachrow(df_summarized)) + ax = Axis( + fig[i, 1], + yscale = log10, + xlabel = "number of resets", + ylabel = "fraction", + title = "$(row.wait_length)", + limits = ((1, 11), (eps(), 100)), + ) + normhist = normalize(row.pllld_count_sum) + stephist!(ax, normhist) + errorbars!(ax, normhist) + text!( + ax, + bincenters(normhist), + bincounts(normhist), + text = [@sprintf "%.4f" r for r in bincounts(normhist)], + ) + end + fig end # ╔═╡ 6206becc-364c-47b6-bfe3-d295b784cade