mirror of
https://gitlab.cern.ch/wotsubo/PSBoardDataBase.git
synced 2025-06-07 21:45:43 +09:00
229 lines
7 KiB
Julia
229 lines
7 KiB
Julia
### A Pluto.jl notebook ###
|
|
# v0.20.8
|
|
|
|
using Markdown
|
|
using InteractiveUtils
|
|
|
|
# ╔═╡ 1d057382-316a-11f0-1fbd-c9c7f879bbb1
|
|
begin
|
|
using Pkg
|
|
Pkg.activate(".")
|
|
using CSV
|
|
using SQLite
|
|
using DataFrames
|
|
using PlutoUI
|
|
using PSBoardDataBase
|
|
end
|
|
|
|
# ╔═╡ 3bf488c4-cd2a-4b2c-b2ee-a6f8d84368df
|
|
TableOfContents(depth = 3)
|
|
|
|
# ╔═╡ f8b25d6d-5756-42fa-ac9f-a238d815dad2
|
|
second_run_result = let
|
|
result_file = PSBoardDataBase.DownloadCSVs.download_second_run_csv()
|
|
df = CSV.read(result_file, DataFrame)
|
|
PSBoardDataBase.prepare_eighth_campaign_result(df)
|
|
df
|
|
end
|
|
|
|
# ╔═╡ 7d7c80a3-800f-48cf-908b-172730320571
|
|
md"""
|
|
# Count summary
|
|
"""
|
|
|
|
# ╔═╡ d597786d-3112-476e-a640-d494aed630bd
|
|
filter(:motherboard_id => ismissing, second_run_result)
|
|
|
|
# ╔═╡ da2d6bb7-d970-4eeb-9a1a-bbdda6506312
|
|
findall(ismissing, second_run_result.motherboard_id)
|
|
|
|
# ╔═╡ 9dae37ff-614a-4d50-9f32-908e799e325e
|
|
@view(second_run_result[1315, :])
|
|
|
|
# ╔═╡ c3954e6c-5239-445e-bdeb-6caad6b3b377
|
|
sdf_wrong_psbid = @view(second_run_result[1:1315, :])
|
|
|
|
# ╔═╡ 157a0ca3-a92a-4f6d-a3d3-c9650b4bf573
|
|
sdf_correct_psbid = @view(second_run_result[1315:end, :])
|
|
|
|
# ╔═╡ 346993ff-fdb0-4f0f-a83f-23584e2bc540
|
|
let
|
|
correct_psbs = Set(sdf_correct_psbid.motherboard_id |> skipmissing)
|
|
filter(Set(sdf_wrong_psbid.motherboard_id |> skipmissing)) do psbid
|
|
!(psbid in correct_psbs)
|
|
end
|
|
end
|
|
|
|
# ╔═╡ c7adb9ed-ef92-4727-a446-556d65cf6f3f
|
|
falied_boards = [895, 896, 1142, 1276, 1094, 1095]
|
|
|
|
# ╔═╡ b8b31ee3-ffc9-4d55-80ff-001dfebfc776
|
|
md"""
|
|
# slave log validation
|
|
"""
|
|
|
|
# ╔═╡ f464ed57-7d42-42e5-a388-c815bba0ad60
|
|
map(eachrow(second_run_result)) do row
|
|
row
|
|
end
|
|
|
|
# ╔═╡ 2bd267ea-78ab-454e-93e4-81a2f7a5d671
|
|
second_run_writing_result = filter(:motherboard_id => (id -> begin
|
|
coalesce(id != 999999, false)
|
|
end), second_run_result)
|
|
|
|
# ╔═╡ 383e1e04-ba3e-49bf-9f99-46c53b37204b
|
|
combined_result = map(eachrow(second_run_writing_result)) do row
|
|
slavelog_dir = "../test/input/slavelogs/main/"
|
|
logfilename = "$(row.motherboard_id)_$(row.runid).txt"
|
|
logfilepath = joinpath(slavelog_dir, logfilename)
|
|
if !ispath(logfilepath)
|
|
return (psbid = row.motherboard_id, slavelog_psbid = missing, qspip = row.qspip)
|
|
end
|
|
if row.qspip != 1
|
|
return (psbid = row.motherboard_id, slavelog_psbid = missing, qspip = row.qspip)
|
|
end
|
|
psbid = PSBoardDataBase.SlaveLogParserV2.parse_slave_log_v2(logfilepath)
|
|
(psbid = row.motherboard_id, slavelog_psbid = psbid, qspip = row.qspip)
|
|
end |> DataFrame
|
|
|
|
# ╔═╡ 162ef015-7acd-4431-91bd-f3c5f1d26f8a
|
|
md"""
|
|
## result
|
|
**Looks OK**
|
|
"""
|
|
|
|
# ╔═╡ a721c7e2-a19e-4a8a-87ba-6809fb9d1cc4
|
|
combined_result.psbid |> unique |> length
|
|
|
|
# ╔═╡ e0411f36-fa75-445c-a275-b58cfa5ec73c
|
|
filter(:qspip => ==(1), combined_result).psbid |> unique |> length
|
|
|
|
# ╔═╡ 5d66892d-3d12-4f0a-a128-18b95eab7123
|
|
filter(:qspip => ==(0), combined_result).psbid |> unique |> length
|
|
|
|
# ╔═╡ abcf438d-7ebe-461d-bc19-1dedcf4861cc
|
|
filter(:slavelog_psbid => ismissing, combined_result).psbid |> unique |> length
|
|
|
|
# ╔═╡ 8ccfce73-9fdf-48bd-a78f-39bfda3c7121
|
|
combined_by_psbid = combine(groupby(combined_result, :psbid), [:slavelog_psbid, :qspip] => ((slavelog_psbid, qspip) -> begin
|
|
# @info "" slavelog_psbid qspip
|
|
if any(==(1), qspip)
|
|
[(; qspip_ok = true)]
|
|
else
|
|
[(; qspip_ok = false)]
|
|
end
|
|
end) => [:qspip_ok])
|
|
|
|
# ╔═╡ eb77e281-1d5e-4ba1-a6d8-8e7235d5a7d0
|
|
filter(:qspip_ok => !, combined_by_psbid).psbid
|
|
|
|
# ╔═╡ cb2d2f25-e008-4f62-a6a0-83febaddb2ef
|
|
md"""
|
|
# Compare with QAQC
|
|
"""
|
|
|
|
# ╔═╡ c0d22530-f0a0-461d-b15c-779b1b6a2a42
|
|
db = SQLite.DB("../psboard_qaqc.db")
|
|
|
|
# ╔═╡ 2244386c-5608-4914-abdd-c7403c1f0a74
|
|
SQLite.tables(db)
|
|
|
|
# ╔═╡ 0d502ae5-a7a3-44f7-bfb9-49cf77e22cfe
|
|
ps_boards = DBInterface.execute(db, "select * from ps_boards") |> DataFrame
|
|
|
|
# ╔═╡ 516e6255-63d4-4e83-9d9d-4a3dc46b8e56
|
|
qaqc_single_result = DBInterface.execute(db, "select * from qaqc_single_run_results") |> DataFrame |> (df -> groupby(df, :psboard_id))
|
|
|
|
# ╔═╡ 9a1eb3d1-ed35-4032-b345-e18fa0657268
|
|
qaqc_extra_result = DBInterface.execute(db, "select * from qaqc_extra_run_results") |> DataFrame |> (df -> groupby(df, :psboard_id))
|
|
|
|
# ╔═╡ f7710e79-86e4-4048-b3cf-03c7097b388c
|
|
qaqc_dispatch = DBInterface.execute(db, "select * from qaqc_dispatch") |> DataFrame
|
|
|
|
# ╔═╡ 2beefcb1-a3e7-485c-bcca-d2fb1624119f
|
|
qaqc_dispatch.psb_id .∈ Ref(filter(:qspip_ok => identity, combined_by_psbid).psbid)
|
|
|
|
# ╔═╡ f334909b-0a09-42fc-8fc0-64978ca6e067
|
|
let
|
|
passed = filter(:qspip_ok => identity, combined_by_psbid).psbid
|
|
@info "" passed
|
|
filter(qaqc_dispatch.psb_id) do psbid
|
|
!(psbid in passed)
|
|
end
|
|
end
|
|
|
|
# ╔═╡ 2ef8303f-84a9-4053-a38e-b31fcd766796
|
|
let
|
|
qspi_tried = combined_by_psbid.psbid
|
|
qspi_passed = filter(:qspip_ok => identity, combined_by_psbid).psbid
|
|
Iterators.flatmap(qaqc_dispatch.psb_id) do psbid
|
|
if psbid in qspi_passed
|
|
return []
|
|
end
|
|
[(; psbid, qspi_tried = psbid in qspi_tried, qspi_passed = psbid in qspi_passed)]
|
|
end |> DataFrame
|
|
end
|
|
|
|
# ╔═╡ f16b9b80-242e-4349-99ee-a8de614a7b3e
|
|
md"""
|
|
## diff from dispatch list
|
|
差分は全て、以下の2通りのいずれかに該当する。
|
|
また、61はプレ量産なので、出荷リストに含まれない。
|
|
|
|
### QSPIパラメータ書き込みしようとしたが、失敗したもの
|
|
```
|
|
61
|
|
896
|
|
1094
|
|
1142
|
|
1160
|
|
```
|
|
|
|
### 通常のファームウェア・QSPIパラメータ書き込み試験で漏れていて、あとで手動で統合試験ベンチで書き込んだもの
|
|
```
|
|
110
|
|
108
|
|
483
|
|
484
|
|
1402
|
|
1401
|
|
1553
|
|
1533
|
|
```
|
|
"""
|
|
|
|
# ╔═╡ Cell order:
|
|
# ╠═1d057382-316a-11f0-1fbd-c9c7f879bbb1
|
|
# ╠═3bf488c4-cd2a-4b2c-b2ee-a6f8d84368df
|
|
# ╠═f8b25d6d-5756-42fa-ac9f-a238d815dad2
|
|
# ╠═7d7c80a3-800f-48cf-908b-172730320571
|
|
# ╠═d597786d-3112-476e-a640-d494aed630bd
|
|
# ╠═da2d6bb7-d970-4eeb-9a1a-bbdda6506312
|
|
# ╠═9dae37ff-614a-4d50-9f32-908e799e325e
|
|
# ╠═c3954e6c-5239-445e-bdeb-6caad6b3b377
|
|
# ╠═157a0ca3-a92a-4f6d-a3d3-c9650b4bf573
|
|
# ╠═346993ff-fdb0-4f0f-a83f-23584e2bc540
|
|
# ╠═c7adb9ed-ef92-4727-a446-556d65cf6f3f
|
|
# ╠═b8b31ee3-ffc9-4d55-80ff-001dfebfc776
|
|
# ╠═f464ed57-7d42-42e5-a388-c815bba0ad60
|
|
# ╠═2bd267ea-78ab-454e-93e4-81a2f7a5d671
|
|
# ╠═383e1e04-ba3e-49bf-9f99-46c53b37204b
|
|
# ╠═162ef015-7acd-4431-91bd-f3c5f1d26f8a
|
|
# ╠═a721c7e2-a19e-4a8a-87ba-6809fb9d1cc4
|
|
# ╠═e0411f36-fa75-445c-a275-b58cfa5ec73c
|
|
# ╠═5d66892d-3d12-4f0a-a128-18b95eab7123
|
|
# ╠═abcf438d-7ebe-461d-bc19-1dedcf4861cc
|
|
# ╠═8ccfce73-9fdf-48bd-a78f-39bfda3c7121
|
|
# ╠═eb77e281-1d5e-4ba1-a6d8-8e7235d5a7d0
|
|
# ╠═cb2d2f25-e008-4f62-a6a0-83febaddb2ef
|
|
# ╠═c0d22530-f0a0-461d-b15c-779b1b6a2a42
|
|
# ╠═2244386c-5608-4914-abdd-c7403c1f0a74
|
|
# ╠═0d502ae5-a7a3-44f7-bfb9-49cf77e22cfe
|
|
# ╠═516e6255-63d4-4e83-9d9d-4a3dc46b8e56
|
|
# ╠═9a1eb3d1-ed35-4032-b345-e18fa0657268
|
|
# ╠═f7710e79-86e4-4048-b3cf-03c7097b388c
|
|
# ╠═2beefcb1-a3e7-485c-bcca-d2fb1624119f
|
|
# ╠═f334909b-0a09-42fc-8fc0-64978ca6e067
|
|
# ╠═2ef8303f-84a9-4053-a38e-b31fcd766796
|
|
# ╠═f16b9b80-242e-4349-99ee-a8de614a7b3e
|