--- 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");