--- cs:140/Experiment/TripLogger.cs +++ cs:141/Experiment/TripLogger.cs @@ -57,6 +57,22 @@ /// 止まりの回数と秒数を、狭い通路の中と外に分けたもの(⑦の読み分け用) public int stopsInNarrow, stopsOutNarrow; public float stoppedInNarrowS, stoppedOutNarrowS; + + // ---- 後ろに足した列(依頼 v8 の 2。今ある列の並びは変えない)---- + /// その往復を始めた時刻(店の中, 秒。ほかの _s 列と同じ基準) + public float runStartS; + + /// その往復で載せた皿の番号(dishes.csv の dish_id と同じ) + public int[] dishIds; + + /// 止まる所ごとに着いた時刻(着かなかった所は -1) + public float[] stopArrivedS; + + /// + /// 打ち切りで置き直した先(依頼 v8b の A)。pass / standby1 / standby2 …。 + /// 打ち切りでない往復は空 + /// + public string resetTo; } /// groups.csv の1行(1組ぶん) @@ -72,6 +88,9 @@ public int tableSeats; public float arriveS, guideStartS, seatedS, eatEndS, payS, leftS; + /// 食べ始めた時刻(秒)。食べ始めなかった組は -1(依頼 v8 の 2) + public float eatStartS; + /// 会計を始めた時刻(食べ終わって会計待ちに入った時刻, 秒) public float payStartS; public float waitedMin; @@ -196,7 +215,11 @@ "table_ids,dishes,dish_ready_s,dish_arrived_s,undelivered," + // v5 3章:往復ごとの測り(設計書2章の4つ)。⑦は狭い通路の中と外を分ける "speed_mps,stuck_count,stuck_wait_s,via_narrow," + - "stops_in_narrow,stops_out_narrow,stopped_in_narrow_s,stopped_out_narrow_s"; + "stops_in_narrow,stops_out_narrow,stopped_in_narrow_s,stopped_out_narrow_s," + + // 依頼 v8 の 2:後ろに足した列 + "run_start_s,dish_ids,stop_arrived_s," + + // 依頼 v8b の A:打ち切りで置き直した先 + "reset_to"; public void WriteTripsCsv(string path) { @@ -239,7 +262,11 @@ .Append(r.stopsInNarrow).Append(',') .Append(r.stopsOutNarrow).Append(',') .Append(F(r.stoppedInNarrowS)).Append(',') - .Append(F(r.stoppedOutNarrowS)) + .Append(F(r.stoppedOutNarrowS)).Append(',') + .Append(F(r.runStartS)).Append(',') + .Append(JoinInt(r.dishIds)).Append(',') + .Append(Join(r.stopArrivedS)).Append(',') + .Append(r.resetTo ?? "") .Append('\n'); } @@ -281,7 +308,9 @@ /// table_seats は座った卓の大きさ(2=2人席・4=4人席・0=座れなかった) public const string GroupHeader = "condition_id,seed,group_id,size,table_id,table_seats,arrive_s,guide_start_s,seated_s," + - "eat_end_s,pay_start_s,pay_s,left_s,waited_min,warmup,state"; + "eat_end_s,pay_start_s,pay_s,left_s,waited_min,warmup,state," + + // 依頼 v8 の 2:後ろに足した列 + "eat_start_s"; public void WriteGroupsCsv(string path) { @@ -298,7 +327,8 @@ .Append(F(r.payStartS)).Append(',') .Append(F(r.payS)).Append(',').Append(F(r.leftS)).Append(',') .Append(F(r.waitedMin)).Append(',').Append(r.warmup ? 1 : 0).Append(',') - .Append(r.state).Append('\n'); + .Append(r.state).Append(',') + .Append(F(r.eatStartS)).Append('\n'); } File.WriteAllText(path, sb.ToString(), new UTF8Encoding(false)); } @@ -892,6 +922,8 @@ sb.Append(" \"written_at\": ").Append(Str(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"))).Append(",\n"); sb.Append(" \"unity_version\": ").Append(Str(Application.unityVersion)).Append(",\n"); sb.Append(" \"trips_csv_columns\": ").Append(Str(Header)).Append(",\n"); + sb.Append(" \"groups_csv_columns\": ").Append(Str(GroupHeader)).Append(",\n"); + sb.Append(" \"dishes_csv_columns\": ").Append(Str(DishHeader)).Append(",\n"); sb.Append(" \"settings\": {\n"); sb.Append(" \"store_layout\": ").Append(Dump(layout)).Append(",\n");