|
From: subversion c. n. <tra...@li...> - 2018-05-03 01:03:02
|
Revision: 1706
http://sourceforge.net/p/transims/code/1706
Author: davidroden
Date: 2018-05-03 01:02:58 +0000 (Thu, 03 May 2018)
Log Message:
-----------
TRANSIMS Version 7 updated from AECOM branch 1705
Modified Paths:
--------------
version7/trunk/Transims70/ArcPerf/ArcPerf.cpp
version7/trunk/Transims70/ArcPerf/ArcPerf.hpp
version7/trunk/Transims70/ArcPerf/ArcPerf.vcxproj
version7/trunk/Transims70/ArcPerf/ArcPerf.vcxproj.filters
version7/trunk/Transims70/ArcPerf/Control.cpp
version7/trunk/Transims70/ArcPerf/Execute.cpp
version7/trunk/Transims70/ArcPerf/Write_Performance.cpp
version7/trunk/Transims70/ArcPerf/Write_Vol_Spd_Diff.cpp
version7/trunk/Transims70/ArcPlan/ArcPlan.cpp
version7/trunk/Transims70/ArcPlan/Get_Trip_Data.cpp
version7/trunk/Transims70/Converge_Service/Demand_Updates.cpp
version7/trunk/Transims70/Data_Service/Read_Connections.cpp
version7/trunk/Transims70/Data_Service/Set_Link_Direction.cpp
version7/trunk/Transims70/FileFormat/Control.cpp
version7/trunk/Transims70/FileFormat/FileFormat.cpp
version7/trunk/Transims70/FileFormat/FileFormat.hpp
version7/trunk/Transims70/File_Service/File_Service.vcxproj
version7/trunk/Transims70/File_Service/File_Service.vcxproj.filters
version7/trunk/Transims70/File_Service/Trip_File.cpp
version7/trunk/Transims70/GTFSData/Build_Routes.cpp
version7/trunk/Transims70/GTFSData/GTFSData.cpp
version7/trunk/Transims70/GTFSData/Offset_Points.cpp
version7/trunk/Transims70/GridData/Control.cpp
version7/trunk/Transims70/GridData/Execute.cpp
version7/trunk/Transims70/GridData/GridData.cpp
version7/trunk/Transims70/GridData/GridData.hpp
version7/trunk/Transims70/GridData/GridData.vcxproj
version7/trunk/Transims70/GridData/GridData.vcxproj.filters
version7/trunk/Transims70/GridData/Write_Grid.cpp
version7/trunk/Transims70/Include/Best_List.hpp
version7/trunk/Transims70/Include/Control_Service.hpp
version7/trunk/Transims70/Include/Data_Pack.hpp
version7/trunk/Transims70/Include/Message_Service.hpp
version7/trunk/Transims70/Include/Static_Service.hpp
version7/trunk/Transims70/Include/System_Defines.hpp
version7/trunk/Transims70/NetPrep/Input_Links.cpp
version7/trunk/Transims70/PathSkim/Execute.cpp
version7/trunk/Transims70/PathSkim/PathSkim.cpp
version7/trunk/Transims70/PerfPrep/Control.cpp
version7/trunk/Transims70/PerfPrep/Execute.cpp
version7/trunk/Transims70/PerfPrep/Get_Performance_Data.cpp
version7/trunk/Transims70/PerfPrep/PerfPrep.cpp
version7/trunk/Transims70/PerfPrep/PerfPrep.hpp
version7/trunk/Transims70/PlanSelect/Control.cpp
version7/trunk/Transims70/PlanSelect/Execute.cpp
version7/trunk/Transims70/PlanSelect/PlanSelect.cpp
version7/trunk/Transims70/PlanSelect/PlanSelect.hpp
version7/trunk/Transims70/PlanSelect/PlanSelect.vcxproj
version7/trunk/Transims70/PlanSelect/PlanSelect.vcxproj.filters
version7/trunk/Transims70/PlanSelect/Read_Plans.cpp
version7/trunk/Transims70/Simulator/Execute.cpp
version7/trunk/Transims70/Simulator/Simulator.cpp
version7/trunk/Transims70/Simulator_Service/Check_Behind.cpp
version7/trunk/Transims70/Simulator_Service/Control.cpp
version7/trunk/Transims70/Simulator_Service/Global_Data.cpp
version7/trunk/Transims70/Simulator_Service/Load_Vehicle.cpp
version7/trunk/Transims70/Simulator_Service/Look_Ahead.cpp
version7/trunk/Transims70/Simulator_Service/Move_Vehicle.cpp
version7/trunk/Transims70/Simulator_Service/Occupancy_Output.cpp
version7/trunk/Transims70/Simulator_Service/Plan_Processing.cpp
version7/trunk/Transims70/Simulator_Service/Sim_Control_Update.cpp
version7/trunk/Transims70/Simulator_Service/Sim_Dir_Data.hpp
version7/trunk/Transims70/Simulator_Service/Sum_Path.cpp
version7/trunk/Transims70/Simulator_Service/Traffic_Control.cpp
version7/trunk/Transims70/Simulator_Service/Travel_Processing.cpp
version7/trunk/Transims70/Simulator_Service/Travel_Step.cpp
version7/trunk/Transims70/SubareaNet/Control.cpp
version7/trunk/Transims70/SubareaNet/Get_Link_Data.cpp
version7/trunk/Transims70/SubareaNet/SubareaNet.cpp
version7/trunk/Transims70/SubareaNet/SubareaNet.hpp
version7/trunk/Transims70/SubareaNet/SubareaNet.vcxproj
version7/trunk/Transims70/SubareaPlans/Plan_Processing.cpp
version7/trunk/Transims70/SubareaPlans/SubareaPlans.cpp
version7/trunk/Transims70/SysLib/Dbfile/Db_File.cpp
version7/trunk/Transims70/SysLib/Dbfile/Db_Header.cpp
version7/trunk/Transims70/SysLib/Dbfile/Db_Matrix.cpp
version7/trunk/Transims70/SysLib/Service/Control_Service.cpp
version7/trunk/Transims70/SysLib/Service/Execution_Service.cpp
version7/trunk/Transims70/SysLib/Service/Message_Service.cpp
version7/trunk/Transims70/SysLib/Service/Static_Service.cpp
version7/trunk/Transims70/SysLib/Tools/Best_List.cpp
version7/trunk/Transims70/SysLib/Tools/Projection.cpp
version7/trunk/Transims70/SysLib/Tools/String.cpp
version7/trunk/Transims70/TransimsNet/Control.cpp
version7/trunk/Transims70/TransimsNet/Execute.cpp
version7/trunk/Transims70/TransimsNet/TransimsNet.cpp
version7/trunk/Transims70/TransimsNet/TransimsNet.hpp
version7/trunk/Transims70/TripSum/Control.cpp
version7/trunk/Transims70/TripSum/TripSum.cpp
version7/trunk/Transims70/VolSpdData/Control.cpp
version7/trunk/Transims70/VolSpdData/Read_Selection.cpp
version7/trunk/Transims70/VolSpdData/VolSpdData.cpp
version7/trunk/Transims70/VolSpdData/VolSpdData.hpp
version7/trunk/Transims70/VolSpdData/Write_Vol_Spd_Diff.cpp
Added Paths:
-----------
version7/trunk/Transims70/ArcPerf/Write_Vol_Spd_Diff_Data.cpp
version7/trunk/Transims70/File_Service/Vol_Spd_Diff_Data_File.cpp
version7/trunk/Transims70/GridData/Read_Grid_Select.cpp
version7/trunk/Transims70/Include/Vol_Spd_Diff_Data_File.hpp
version7/trunk/Transims70/PlanSelect/Read_Vol_Cnt.cpp
Modified: version7/trunk/Transims70/ArcPerf/ArcPerf.cpp
===================================================================
--- version7/trunk/Transims70/ArcPerf/ArcPerf.cpp 2018-05-03 00:56:08 UTC (rev 1705)
+++ version7/trunk/Transims70/ArcPerf/ArcPerf.cpp 2018-05-03 01:02:58 UTC (rev 1706)
@@ -11,7 +11,7 @@
ArcPerf::ArcPerf (void) : Draw_Service ()
{
Program ("ArcPerf");
- Version (10);
+ Version (11);
Title ("ArcView Performance Files");
System_File_Type required_files [] = {
@@ -44,6 +44,8 @@
{ LINK_DIRECTION_FORMAT, "LINK_DIRECTION_FORMAT", LEVEL0, OPT_KEY, TEXT_KEY, "TAB_DELIMITED", FORMAT_RANGE, NO_HELP },
{ VOL_SPD_DIFF_FILE, "VOL_SPD_DIFF_FILE", LEVEL0, OPT_KEY, IN_KEY, "", FILE_RANGE, NO_HELP },
{ VOL_SPD_DIFF_FORMAT, "VOL_SPD_DIFF_FORMAT", LEVEL0, OPT_KEY, TEXT_KEY, "TAB_DELIMITED", FORMAT_RANGE, NO_HELP },
+ { VOL_SPD_DIFF_DATA_FILE, "VOL_SPD_DIFF_DATA_FILE", LEVEL0, OPT_KEY, IN_KEY, "", FILE_RANGE, NO_HELP},
+ { VOL_SPD_DIFF_DATA_FORMAT, "VOL_SPD_DIFF_DATA_FORMAT", LEVEL0, OPT_KEY, TEXT_KEY, "TAB_DELIMITED", FORMAT_RANGE, NO_HELP},
{ SYSTEM_EVENT_FILE, "SYSTEM_EVENT_FILE", LEVEL0, OPT_KEY, IN_KEY, "", FILE_RANGE, NO_HELP },
{ SYSTEM_EVENT_FORMAT, "SYSTEM_EVENT_FORMAT", LEVEL0, OPT_KEY, TEXT_KEY, "TAB_DELIMITED", FORMAT_RANGE, NO_HELP },
{ NEW_ARC_LINK_DATA_FILE, "NEW_ARC_LINK_DATA_FILE", LEVEL0, OPT_KEY, OUT_KEY, "", FILE_RANGE, NO_HELP },
@@ -53,6 +55,7 @@
{ NEW_ARC_PERFORMANCE_FILE, "NEW_ARC_PERFORMANCE_FILE", LEVEL0, OPT_KEY, OUT_KEY, "", FILE_RANGE, NO_HELP },
{ NEW_ARC_VOLUME_SPEED_FILE, "NEW_ARC_VOLUME_SPEED_FILE", LEVEL0, OPT_KEY, OUT_KEY, "", FILE_RANGE, NO_HELP },
{ NEW_ARC_VOL_SPD_DIFF_FILE, "NEW_ARC_VOL_SPD_DIFF_FILE", LEVEL0, OPT_KEY, OUT_KEY, "", FILE_RANGE, NO_HELP },
+ { NEW_ARC_VOL_SPD_DIFF_DATA_FILE, "NEW_ARC_VOL_SPD_DIFF_DATA_FILE", LEVEL0, OPT_KEY, OUT_KEY, "", FILE_RANGE, NO_HELP},
{ NEW_ARC_INTERSECTION_FILE, "NEW_ARC_INTERSECTION_FILE", LEVEL0, OPT_KEY, OUT_KEY, "", FILE_RANGE, NO_HELP },
{ NEW_ARC_TURN_DELAY_FILE, "NEW_ARC_TURN_DELAY_FILE", LEVEL0, OPT_KEY, OUT_KEY, "", FILE_RANGE, NO_HELP },
{ NEW_ARC_TRAFFIC_IMAGE, "NEW_ARC_TRAFFIC_IMAGE", LEVEL1, OPT_KEY, OUT_KEY, "", FILE_RANGE, NO_HELP },
@@ -81,10 +84,10 @@
Sum_Flow_Flag (true);
vc_field = cong_time_field = cong_vmt_field = cong_vht_field = max_period_field = -1;
- center_flag = lanes_flag = turn_flag = subarea_flag = index_flag = image_flag = shape_flag = max_period_flag = person_flag = false;
+ center_flag = lanes_flag = turn_flag = subarea_flag = index_flag = image_flag = shape_flag = max_period_flag = person_flag = vol_spd_diff_data_flag = false;
perf_flag = vol_spd_flag = vol_spd_diff_flag = link_dir_flag = link_data_flag = intersection_flag = event_flag = link_period_flag = dir_period_flag = false;
green_field = yellow_field = red_field = split_field = 0;
- link_data_width_fld = link_dir_width_fld = perf_width_fld = vol_spd_width_fld = vol_spd_diff_width_fld = -1;
+ link_data_width_fld = link_dir_width_fld = perf_width_fld = vol_spd_width_fld = vol_spd_diff_width_fld = vol_spd_diff_data_width_fld = -1;
}
//---------------------------------------------------------
Modified: version7/trunk/Transims70/ArcPerf/ArcPerf.hpp
===================================================================
--- version7/trunk/Transims70/ArcPerf/ArcPerf.hpp 2018-05-03 00:56:08 UTC (rev 1705)
+++ version7/trunk/Transims70/ArcPerf/ArcPerf.hpp 2018-05-03 01:02:58 UTC (rev 1706)
@@ -14,6 +14,7 @@
#include "Dtime.hpp"
#include "Shape_Tools.hpp"
#include "Vol_Spd_Diff_File.hpp"
+#include "Vol_Spd_Diff_Data_File.hpp"
//---------------------------------------------------------
// ArcPerf - execution class definition
@@ -29,9 +30,9 @@
protected:
enum ArcPerf_Keys {
LINK_DATA_FILE = 1, LINK_DATA_FORMAT, LINK_DIRECTION_FILE, LINK_DIRECTION_FORMAT,
- VOL_SPD_DIFF_FILE, VOL_SPD_DIFF_FORMAT, SYSTEM_EVENT_FILE, SYSTEM_EVENT_FORMAT,
+ VOL_SPD_DIFF_FILE, VOL_SPD_DIFF_FORMAT, VOL_SPD_DIFF_DATA_FILE, VOL_SPD_DIFF_DATA_FORMAT, SYSTEM_EVENT_FILE, SYSTEM_EVENT_FORMAT,
NEW_ARC_LINK_DATA_FILE, LINK_DATA_BY_PERIOD, NEW_ARC_LINK_DIR_FILE, LINK_DIR_BY_PERIOD,
- NEW_ARC_PERFORMANCE_FILE, NEW_ARC_VOLUME_SPEED_FILE, NEW_ARC_VOL_SPD_DIFF_FILE,
+ NEW_ARC_PERFORMANCE_FILE, NEW_ARC_VOLUME_SPEED_FILE, NEW_ARC_VOL_SPD_DIFF_FILE, NEW_ARC_VOL_SPD_DIFF_DATA_FILE,
NEW_ARC_INTERSECTION_FILE, NEW_ARC_TURN_DELAY_FILE, NEW_ARC_TRAFFIC_IMAGE, TRAFFIC_IMAGE_ATTRIBUTE,
VEHICLE_TYPE_DISTRIBUTION, ADD_LINK_DIRECTION_INDEX, IGNORE_TIME_RANGE_FIELDS, PERIOD_MAXIMUM_FIELD,
PERSON_BASED_STATISTICS,
@@ -47,10 +48,11 @@
Performance_File *perf_file;
Volume_Speed_File *vol_spd_file;
Vol_Spd_Diff_File vol_spd_diff_file;
+ Vol_Spd_Diff_Data_File vol_spd_diff_data_file;
Turn_Delay_File *turn_file;
Arcview_File arcview_perf, arcview_turn, arcview_link_dir, arcview_node;
- Arcview_File arcview_link_data, arcview_vol_spd, arcview_vol_spd_diff;
+ Arcview_File arcview_link_data, arcview_vol_spd, arcview_vol_spd_diff, arcview_vol_spd_diff_data;
Points points;
@@ -57,10 +59,10 @@
int length_field, lane_len_field, vc_field, vhd_field;
int cong_time_field, cong_vmt_field, cong_vht_field, max_period_field;
int max_angle, min_length, green_field, yellow_field, red_field, split_field;
- int perf_width_fld, vol_spd_width_fld, vol_spd_diff_width_fld, link_dir_width_fld, link_data_width_fld;
+ int perf_width_fld, vol_spd_width_fld, vol_spd_diff_width_fld, vol_spd_diff_data_width_fld, link_dir_width_fld, link_data_width_fld;
bool turn_flag, subarea_flag, index_flag, image_flag, link_period_flag, dir_period_flag, person_flag;
bool perf_flag, vol_spd_flag, link_dir_flag, link_data_flag, intersection_flag, event_flag, max_period_flag;
- bool vol_spd_diff_flag;
+ bool vol_spd_diff_flag, vol_spd_diff_data_flag;
String shapename, volspdname, diffname, turnname, nodename, linkname, dirname;
Doubles type_share;
@@ -104,6 +106,7 @@
void Write_Performance (void);
void Write_Volume_Speed (void);
void Write_Vol_Spd_Diff (void);
+ void Write_Vol_Spd_Diff_Data (void);
void Maximum_Performance (void);
void Write_Turn (void);
void Write_Image (void);
Modified: version7/trunk/Transims70/ArcPerf/ArcPerf.vcxproj
===================================================================
--- version7/trunk/Transims70/ArcPerf/ArcPerf.vcxproj 2018-05-03 00:56:08 UTC (rev 1705)
+++ version7/trunk/Transims70/ArcPerf/ArcPerf.vcxproj 2018-05-03 01:02:58 UTC (rev 1706)
@@ -173,6 +173,7 @@
<ClCompile Include="Write_Turn.cpp" />
<ClCompile Include="Write_Volume_Speed.cpp" />
<ClCompile Include="Write_Vol_Spd_Diff.cpp" />
+ <ClCompile Include="Write_Vol_Spd_Diff_Data.cpp" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Data_Service\Data_Service.vcxproj">
Modified: version7/trunk/Transims70/ArcPerf/ArcPerf.vcxproj.filters
===================================================================
--- version7/trunk/Transims70/ArcPerf/ArcPerf.vcxproj.filters 2018-05-03 00:56:08 UTC (rev 1705)
+++ version7/trunk/Transims70/ArcPerf/ArcPerf.vcxproj.filters 2018-05-03 01:02:58 UTC (rev 1706)
@@ -58,5 +58,8 @@
<ClCompile Include="Write_Vol_Spd_Diff.cpp">
<Filter>Source Files</Filter>
</ClCompile>
+ <ClCompile Include="Write_Vol_Spd_Diff_Data.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
</ItemGroup>
</Project>
\ No newline at end of file
Modified: version7/trunk/Transims70/ArcPerf/Control.cpp
===================================================================
--- version7/trunk/Transims70/ArcPerf/Control.cpp 2018-05-03 00:56:08 UTC (rev 1705)
+++ version7/trunk/Transims70/ArcPerf/Control.cpp 2018-05-03 01:02:58 UTC (rev 1706)
@@ -72,7 +72,18 @@
vol_spd_diff_file.Open (Project_Filename (key));
}
- if (!perf_in && !vol_spd_in && !link_data_flag && !link_dir_flag && !vol_spd_diff_flag) {
+ //---- get the vol-spd diff data file ----
+
+ key = Get_Control_String (VOL_SPD_DIFF_DATA_FILE);
+
+ if (!key.empty ()) {
+ vol_spd_diff_data_flag = true;
+
+ Print (1);
+ vol_spd_diff_data_file.Open (Project_Filename (key));
+ }
+
+ if (!perf_in && !vol_spd_in && !link_data_flag && !link_dir_flag && !vol_spd_diff_flag && !vol_spd_diff_data_flag) {
Error ("A Performance, Volume-Speed, Vol-Spd Diff, Link Data, or Link Direction file are Required");
}
@@ -356,6 +367,47 @@
Print_Filename (2, arcview_vol_spd_diff.File_Type (), key);
}
+ //---- get the arcview vol spd diff data file ----
+
+ key = Get_Control_String (NEW_ARC_VOL_SPD_DIFF_DATA_FILE);
+
+ if (!key.empty ()) {
+ if (!vol_spd_diff_data_flag) {
+ Error ("The Input Vol Spd Diff Data File is Missing");
+ }
+ key.Split_Last (ext, ".");
+
+ diffname = Project_Filename (key);
+
+ arcview_vol_spd_diff_data.File_Type ("New Arc Vol Spd Diff Data File");
+ arcview_vol_spd_diff_data.File_Access (CREATE);
+ if (bandwidth_flag) {
+ arcview_vol_spd_diff_data.Shape_Type (POLYGON);
+ vol_spd_diff_data_width_fld = vol_spd_diff_data_file.Required_Field (bandwidth_field);
+ } else {
+ arcview_vol_spd_diff_data.Shape_Type (VECTOR);
+ }
+ arcview_vol_spd_diff_data.Set_Projection ();
+
+ //---- copy the link fields ----
+
+ binary = (vol_spd_diff_data_file.Record_Format () == BINARY);
+ nfield = vol_spd_diff_data_file.Num_Fields ();
+
+ for (i = 0; i < nfield; i++) {
+ fld = vol_spd_diff_data_file.Field (i);
+ if (fld != 0) {
+ arcview_vol_spd_diff_data.Add_Field (fld->Name (), fld->Type (), fld->Size (), fld->Units (), binary, NO_NEST);
+ }
+ }
+
+ //---- set the file name ----
+
+ key = diffname + "_time_of_day.shp";
+
+ Print_Filename (2, arcview_vol_spd_diff.File_Type (), key);
+ }
+
//---- get the arcview intersection file ----
key = Get_Control_String (NEW_ARC_INTERSECTION_FILE);
Modified: version7/trunk/Transims70/ArcPerf/Execute.cpp
===================================================================
--- version7/trunk/Transims70/ArcPerf/Execute.cpp 2018-05-03 00:56:08 UTC (rev 1705)
+++ version7/trunk/Transims70/ArcPerf/Execute.cpp 2018-05-03 01:02:58 UTC (rev 1706)
@@ -42,6 +42,12 @@
Write_Vol_Spd_Diff ();
}
+ //---- write the arcview vol spd diff data file ----
+
+ if (vol_spd_diff_data_flag) {
+ Write_Vol_Spd_Diff_Data ();
+ }
+
//---- write the arcview intersection file ----
if (intersection_flag) {
Modified: version7/trunk/Transims70/ArcPerf/Write_Performance.cpp
===================================================================
--- version7/trunk/Transims70/ArcPerf/Write_Performance.cpp 2018-05-03 00:56:08 UTC (rev 1705)
+++ version7/trunk/Transims70/ArcPerf/Write_Performance.cpp 2018-05-03 01:02:58 UTC (rev 1706)
@@ -11,7 +11,7 @@
void ArcPerf::Write_Performance (void)
{
int dir, period, index, use_index, num;
- double length;
+ double length, speed;
Dtime low, high, time, delay;
String buffer;
@@ -97,6 +97,13 @@
perf_file->Enter (data.Enter ());
perf_file->Exit (data.Exit ());
perf_file->Flow (data.Flow ());
+
+ //if (data.Speed () > 0) {
+ // speed = data.Speed () * data.Time_Ratio () / 100.0;
+ // if (speed < 36.67) {
+ // data.Time_Ratio (36.67 * 100.0 / data.Speed ());
+ // }
+ //}
perf_file->Speed (data.Speed ());
perf_file->Time_Ratio (data.Time_Ratio ());
perf_file->Delay (data.Delay ());
Modified: version7/trunk/Transims70/ArcPerf/Write_Vol_Spd_Diff.cpp
===================================================================
--- version7/trunk/Transims70/ArcPerf/Write_Vol_Spd_Diff.cpp 2018-05-03 00:56:08 UTC (rev 1705)
+++ version7/trunk/Transims70/ArcPerf/Write_Vol_Spd_Diff.cpp 2018-05-03 01:02:58 UTC (rev 1706)
@@ -76,7 +76,7 @@
link_ptr = &link_array [map_itr->second];
- Draw_Link (arcview_vol_spd_diff, link_ptr, dir, vol_spd_width_fld);
+ Draw_Link (arcview_vol_spd_diff, link_ptr, dir, vol_spd_diff_width_fld);
}
}
link = dir = -1;
Copied: version7/trunk/Transims70/ArcPerf/Write_Vol_Spd_Diff_Data.cpp (from rev 1705, version7/branches/aecom/Transims70/ArcPerf/Write_Vol_Spd_Diff_Data.cpp)
===================================================================
--- version7/trunk/Transims70/ArcPerf/Write_Vol_Spd_Diff_Data.cpp (rev 0)
+++ version7/trunk/Transims70/ArcPerf/Write_Vol_Spd_Diff_Data.cpp 2018-05-03 01:02:58 UTC (rev 1706)
@@ -0,0 +1,147 @@
+//*********************************************************
+// Write_Vol_Spd_Diff_Data.cpp - write the arcview vol-spd diff data file
+//*********************************************************
+
+#include "ArcPerf.hpp"
+
+//---------------------------------------------------------
+// Write_Vol_Spd_Diff_Data
+//---------------------------------------------------------
+
+void ArcPerf::Write_Vol_Spd_Diff_Data (void)
+{
+ int link, dir, period, num;
+ double vht;
+ Dtime low, high, start, end;
+ String buffer;
+ bool found;
+
+ Int_Map_Itr map_itr;
+ Link_Data *link_ptr;
+ Vol_Spd_Diff_Data_File vol_spd_diff_out;
+
+ vol_spd_diff_out.Lane_Use_Flag (vol_spd_diff_data_file.Lane_Use_Flag ());
+ vol_spd_diff_out.Data_Type (vol_spd_diff_data_file.Data_Type ());
+
+ vol_spd_diff_out.Copy_Fields (vol_spd_diff_data_file);
+
+ vol_spd_diff_out.Create_Fields ();
+
+ //---- process each time period ----
+
+ Print (1);
+ num = sum_periods.Num_Periods ();
+
+ for (period = 0; period < num; period++) {
+
+ sum_periods.Period_Range (period, low, high);
+
+ //---- create a new shape file ----
+
+ buffer = String ("%s_%s_%s.shp") % diffname % low.Time_Label (true) % high.Time_Label (true);
+
+ arcview_vol_spd_diff.First_Open (true);
+
+ if (!arcview_vol_spd_diff_data.Open (buffer)) {
+ File_Error ("Opening ArcView Vol Spd Diff Data File", arcview_vol_spd_diff_data.Shape_Filename ());
+ }
+ arcview_vol_spd_diff_data.Write_Header ();
+
+ Show_Message (String ("Writing %s %s -- Link") % arcview_vol_spd_diff_data.File_Type () % high.Time_String ());
+ Set_Progress ();
+
+ vol_spd_diff_out.Start (low);
+ vol_spd_diff_out.End (high);
+
+ vol_spd_diff_data_file.Rewind ();
+
+ link = dir = -1;
+ found = false;
+
+ while (vol_spd_diff_data_file.Read ()) {
+ Show_Progress ();
+
+ start = vol_spd_diff_data_file.Start ();
+ end = vol_spd_diff_data_file.End ();
+
+ if (start < low || end > high || (link > 0 && link != vol_spd_diff_data_file.Link ()) || (dir >= 0 && dir != vol_spd_diff_data_file.Dir ())) {
+ if (found) {
+ map_itr = link_map.find (link);
+
+ if (map_itr != link_map.end ()) {
+ vol_spd_diff_out.Link (link);
+ vol_spd_diff_out.Dir (dir);
+
+ arcview_vol_spd_diff_data.Copy_Fields (vol_spd_diff_out);
+
+ link_ptr = &link_array [map_itr->second];
+
+ Draw_Link (arcview_vol_spd_diff_data, link_ptr, dir, vol_spd_diff_data_width_fld);
+ }
+ }
+ link = dir = -1;
+ found = false;
+ if (start < low || end > high) continue;
+ }
+ if (link < 0) {
+ link = vol_spd_diff_data_file.Link ();
+ dir = vol_spd_diff_data_file.Dir ();
+ found = true;
+
+ vol_spd_diff_out.Vol0 (vol_spd_diff_data_file.Vol0 ());
+ vol_spd_diff_out.Vol1 (vol_spd_diff_data_file.Vol1 ());
+ vol_spd_diff_out.Vdiff (vol_spd_diff_data_file.Vdiff ());
+ vol_spd_diff_out.Spd0 (vol_spd_diff_data_file.Spd0 ());
+ vol_spd_diff_out.Spd1 (vol_spd_diff_data_file.Spd1 ());
+ vol_spd_diff_out.Sdiff (vol_spd_diff_data_file.Sdiff ());
+ vol_spd_diff_out.Use_Vol0 (vol_spd_diff_data_file.Use_Vol0 ());
+ vol_spd_diff_out.Use_Vol1 (vol_spd_diff_data_file.Use_Vol1 ());
+ vol_spd_diff_out.Use_Vdiff (vol_spd_diff_data_file.Use_Vdiff ());
+ vol_spd_diff_out.Use_Spd0 (vol_spd_diff_data_file.Use_Spd0 ());
+ vol_spd_diff_out.Use_Spd1 (vol_spd_diff_data_file.Use_Spd1 ());
+ vol_spd_diff_out.Use_Sdiff (vol_spd_diff_data_file.Use_Sdiff ());
+ vol_spd_diff_out.Notes (vol_spd_diff_data_file.Notes ());
+ } else {
+ vht = (vol_spd_diff_out.Vol0 () * vol_spd_diff_out.Spd0 () + vol_spd_diff_data_file.Vol0 () * vol_spd_diff_data_file.Spd0 ());
+ vol_spd_diff_out.Vol0 (vol_spd_diff_out.Vol0 () + vol_spd_diff_data_file.Vol0 ());
+ if (vol_spd_diff_out.Vol0 () != 0) {
+ vol_spd_diff_out.Spd0 (vht / vol_spd_diff_out.Vol0 ());
+ } else {
+ vol_spd_diff_out.Spd0 (0);
+ }
+
+ vht = (vol_spd_diff_out.Vol1 () * vol_spd_diff_out.Spd1 () + vol_spd_diff_data_file.Vol1 () * vol_spd_diff_data_file.Spd1 ());
+ vol_spd_diff_out.Vol1 (vol_spd_diff_out.Vol1 () + vol_spd_diff_data_file.Vol1 ());
+ if (vol_spd_diff_out.Vol1 () != 0) {
+ vol_spd_diff_out.Spd1 (vht / vol_spd_diff_out.Vol1 ());
+ } else {
+ vol_spd_diff_out.Spd1 (0);
+ }
+
+ vol_spd_diff_out.Vdiff (vol_spd_diff_out.Vdiff () + vol_spd_diff_data_file.Vdiff ());
+ vol_spd_diff_out.Sdiff (vol_spd_diff_out.Spd1 () - vol_spd_diff_out.Spd0 ());
+
+ vht = (vol_spd_diff_out.Use_Vol0 () * vol_spd_diff_out.Use_Spd0 () + vol_spd_diff_data_file.Use_Vol0 () * vol_spd_diff_data_file.Use_Spd0 ());
+ vol_spd_diff_out.Use_Vol0 (vol_spd_diff_out.Use_Vol0 () + vol_spd_diff_data_file.Use_Vol0 ());
+ if (vol_spd_diff_out.Use_Vol0 () != 0) {
+ vol_spd_diff_out.Use_Spd0 (vht / vol_spd_diff_out.Use_Vol0 ());
+ } else {
+ vol_spd_diff_out.Use_Spd0 (0);
+ }
+
+ vht = (vol_spd_diff_out.Use_Vol1 () * vol_spd_diff_out.Use_Spd1 () + vol_spd_diff_data_file.Use_Vol1 () * vol_spd_diff_data_file.Use_Spd1 ());
+ vol_spd_diff_out.Use_Vol1 (vol_spd_diff_out.Use_Vol1 () + vol_spd_diff_data_file.Use_Vol1 ());
+ if (vol_spd_diff_out.Use_Vol1 () != 0) {
+ vol_spd_diff_out.Use_Spd1 (vht / vol_spd_diff_out.Use_Vol1 ());
+ } else {
+ vol_spd_diff_out.Use_Spd1 (0);
+ }
+ vol_spd_diff_out.Use_Vdiff (vol_spd_diff_out.Use_Vdiff () + vol_spd_diff_data_file.Use_Vdiff ());
+ vol_spd_diff_out.Use_Sdiff (vol_spd_diff_out.Use_Spd1 () - vol_spd_diff_out.Use_Spd0 ());
+ }
+ }
+ End_Progress ();
+
+ arcview_vol_spd_diff_data.Close ();
+ }
+}
Modified: version7/trunk/Transims70/ArcPlan/ArcPlan.cpp
===================================================================
--- version7/trunk/Transims70/ArcPlan/ArcPlan.cpp 2018-05-03 00:56:08 UTC (rev 1705)
+++ version7/trunk/Transims70/ArcPlan/ArcPlan.cpp 2018-05-03 01:02:58 UTC (rev 1706)
@@ -11,7 +11,7 @@
ArcPlan::ArcPlan (void) : Draw_Service ()
{
Program ("ArcPlan");
- Version (5);
+ Version (6);
Title ("Plan File Display Utility");
System_File_Type required_files [] = {
Modified: version7/trunk/Transims70/ArcPlan/Get_Trip_Data.cpp
===================================================================
--- version7/trunk/Transims70/ArcPlan/Get_Trip_Data.cpp 2018-05-03 00:56:08 UTC (rev 1705)
+++ version7/trunk/Transims70/ArcPlan/Get_Trip_Data.cpp 2018-05-03 01:02:58 UTC (rev 1706)
@@ -17,7 +17,6 @@
Point_Map_Itr pt_itr;
if (Data_Service::Get_Trip_Data (file, data)) {
-
if (select_households && !hhold_range.In_Range (data.Household ())) return (false);
if (data.Mode () < MAX_MODE && !select_mode [data.Mode ()]) return (false);
if (select_purposes && !purpose_range.In_Range (data.Purpose ())) return (false);
@@ -77,6 +76,10 @@
attractions [index]++;
}
}
+
+ if (problem_out) {
+ return (true);
+ }
}
return (false);
}
Modified: version7/trunk/Transims70/Converge_Service/Demand_Updates.cpp
===================================================================
--- version7/trunk/Transims70/Converge_Service/Demand_Updates.cpp 2018-05-03 00:56:08 UTC (rev 1705)
+++ version7/trunk/Transims70/Converge_Service/Demand_Updates.cpp 2018-05-03 01:02:58 UTC (rev 1706)
@@ -11,6 +11,7 @@
void Converge_Service::Demand_Updates (void)
{
if (Time_Updates () || Toll_Updates () || Transit_Updates () || Parking_Updates ()) {
+
Show_Message ("Updating Demand Impacts -- Record");
Set_Progress ();
Modified: version7/trunk/Transims70/Data_Service/Read_Connections.cpp
===================================================================
--- version7/trunk/Transims70/Data_Service/Read_Connections.cpp 2018-05-03 00:56:08 UTC (rev 1705)
+++ version7/trunk/Transims70/Data_Service/Read_Connections.cpp 2018-05-03 01:02:58 UTC (rev 1706)
@@ -77,12 +77,20 @@
connect_ptr = &connect_array [num];
dir_ptr = &dir_array [connect_ptr->Dir_Index ()];
- in_cap = dir_ptr->Capacity () / dir_ptr->Lanes ();
+ if (dir_ptr->Lanes () > 0) {
+ in_cap = dir_ptr->Capacity () / dir_ptr->Lanes ();
+ } else {
+ in_cap = 0;
+ }
connect_ptr->Next_To (dir_ptr->First_Connect_To ());
dir_ptr->First_Connect_To (num);
dir_ptr = &dir_array [connect_ptr->To_Index ()];
- out_cap = dir_ptr->Capacity () / dir_ptr->Lanes ();
+ if (dir_ptr->Lanes () > 0) {
+ out_cap = dir_ptr->Capacity () / dir_ptr->Lanes ();
+ } else {
+ out_cap = 0;
+ }
connect_ptr->Next_From (dir_ptr->First_Connect_From ());
dir_ptr->First_Connect_From (num);
Modified: version7/trunk/Transims70/Data_Service/Set_Link_Direction.cpp
===================================================================
--- version7/trunk/Transims70/Data_Service/Set_Link_Direction.cpp 2018-05-03 00:56:08 UTC (rev 1705)
+++ version7/trunk/Transims70/Data_Service/Set_Link_Direction.cpp 2018-05-03 01:02:58 UTC (rev 1706)
@@ -62,14 +62,15 @@
dir = node;
}
}
- if (offset < 0 || offset > link_ptr->Length ()) {
- Warning (String ("%s %d Link %d Offset %.1lf is Out of Range (0..%.1lf)") %
- file.File_ID () % Progress_Count () % link_ptr->Link () % UnRound (offset) % UnRound (link_ptr->Length ()));
-
- if (offset < 0) {
- offset = 0;
+ if (offset <= 0 || offset >= link_ptr->Length ()) {
+ if (offset < 0 || offset > link_ptr->Length ()) {
+ Warning (String ("%s %d Link %d Offset %.1lf is Out of Range (0..%.1lf)") %
+ file.File_ID () % Progress_Count () % link_ptr->Link () % UnRound (offset) % UnRound (link_ptr->Length ()));
+ }
+ if (offset <= 0) {
+ offset = Round (10);
} else {
- offset = link_ptr->Length ();
+ offset = link_ptr->Length () - Round (10);
}
}
if (file.Version () <= 40) {
Modified: version7/trunk/Transims70/FileFormat/Control.cpp
===================================================================
--- version7/trunk/Transims70/FileFormat/Control.cpp 2018-05-03 00:56:08 UTC (rev 1705)
+++ version7/trunk/Transims70/FileFormat/Control.cpp 2018-05-03 01:02:58 UTC (rev 1706)
@@ -32,6 +32,18 @@
Print (2, String ("%s Control Keys:") % Program ());
+ key = Get_Control_String (SCAN_FILE);
+
+ if (!key.empty ()) {
+ scan_file.Open (Project_Filename (key));
+
+ for (i = 0; i < 100; i++) {
+ scan_file.Read ();
+ Write (1, "Record=") << scan_file.Record_String ();
+ }
+ Exit_Stat (DONE);
+ }
+
//---- initialize the file list ----
num = Highest_Control_Group (DATA_FILE, 0);
Modified: version7/trunk/Transims70/FileFormat/FileFormat.cpp
===================================================================
--- version7/trunk/Transims70/FileFormat/FileFormat.cpp 2018-05-03 00:56:08 UTC (rev 1705)
+++ version7/trunk/Transims70/FileFormat/FileFormat.cpp 2018-05-03 01:02:58 UTC (rev 1706)
@@ -11,11 +11,11 @@
FileFormat::FileFormat (void) : Execution_Service ()
{
Program ("FileFormat");
- Version (6);
+ Version (7);
Title ("File Format Conversion");
Control_Key keys [] = { //--- code, key, level, status, type, default, range, help ----
- { DATA_FILE, "DATA_FILE", LEVEL1, REQ_KEY, IN_KEY, "", FILE_RANGE, NO_HELP },
+ { DATA_FILE, "DATA_FILE", LEVEL1, OPT_KEY, IN_KEY, "", FILE_RANGE, NO_HELP },
{ DATA_FORMAT, "DATA_FORMAT", LEVEL1, OPT_KEY, TEXT_KEY, "TAB_DELIMITED", FORMAT_RANGE, FORMAT_HELP },
{ DATA_SELECT_FIELD, "DATA_SELECT_FIELD", LEVEL1, OPT_KEY, TEXT_KEY, "", "NAME = VALUE", NO_HELP },
{ NEW_DATA_FILE, "NEW_DATA_FILE", LEVEL1, OPT_KEY, OUT_KEY, "", FILE_RANGE, NO_HELP },
@@ -37,6 +37,7 @@
{ NEW_COMBINE_FIELDS_FORMAT, "NEW_COMBINE_FIELDS_FORMAT", LEVEL0, OPT_KEY, TEXT_KEY, "TAB_DELIMITED", FORMAT_RANGE, FORMAT_HELP },
{ CONVERSION_SCRIPT, "CONVERSION_SCRIPT", LEVEL0, OPT_KEY, IN_KEY, "", FILE_RANGE, NO_HELP },
+ { SCAN_FILE, "SCAN_FILE", LEVEL0, OPT_KEY, IN_KEY, "", FILE_RANGE, NO_HELP},
END_CONTROL
};
const char *reports [] = {
Modified: version7/trunk/Transims70/FileFormat/FileFormat.hpp
===================================================================
--- version7/trunk/Transims70/FileFormat/FileFormat.hpp 2018-05-03 00:56:08 UTC (rev 1705)
+++ version7/trunk/Transims70/FileFormat/FileFormat.hpp 2018-05-03 01:02:58 UTC (rev 1706)
@@ -30,7 +30,7 @@
DATA_FIELD_MAP, DATA_INDEX_FIELD,
NEW_MERGE_DATA_FILE, NEW_MERGE_DATA_FORMAT, NEW_CONCATENATE_DATA_FILE, NEW_CONCATENATE_DATA_FORMAT,
NEW_COMBINE_FIELDS_FILE, NEW_COMBINE_FIELDS_FORMAT,
- CONVERSION_SCRIPT,
+ CONVERSION_SCRIPT, SCAN_FILE,
};
virtual void Program_Control (void);
virtual void Page_Header (void);
@@ -43,6 +43,7 @@
bool script_flag, stats_flag, combine_flag, index_flag, merge_flag, concat_flag;
Db_Header combine_file, merge_file, concat_file;
+ Db_File scan_file;
//---- field statistics ----
Modified: version7/trunk/Transims70/File_Service/File_Service.vcxproj
===================================================================
--- version7/trunk/Transims70/File_Service/File_Service.vcxproj 2018-05-03 00:56:08 UTC (rev 1705)
+++ version7/trunk/Transims70/File_Service/File_Service.vcxproj 2018-05-03 01:02:58 UTC (rev 1706)
@@ -77,6 +77,7 @@
<ClInclude Include="..\Include\Vehicle_File.hpp" />
<ClInclude Include="..\Include\Veh_Type_File.hpp" />
<ClInclude Include="..\Include\Volume_Speed_File.hpp" />
+ <ClInclude Include="..\Include\Vol_Spd_Diff_Data_File.hpp" />
<ClInclude Include="..\Include\Vol_Spd_Diff_File.hpp" />
<ClInclude Include="..\Include\Zone_File.hpp" />
</ItemGroup>
@@ -141,6 +142,7 @@
<ClCompile Include="Vehicle_File.cpp" />
<ClCompile Include="Veh_Type_File.cpp" />
<ClCompile Include="Volume_Speed_File.cpp" />
+ <ClCompile Include="Vol_Spd_Diff_Data_File.cpp" />
<ClCompile Include="Vol_Spd_Diff_File.cpp" />
<ClCompile Include="Zone_File.cpp" />
</ItemGroup>
Modified: version7/trunk/Transims70/File_Service/File_Service.vcxproj.filters
===================================================================
--- version7/trunk/Transims70/File_Service/File_Service.vcxproj.filters 2018-05-03 00:56:08 UTC (rev 1705)
+++ version7/trunk/Transims70/File_Service/File_Service.vcxproj.filters 2018-05-03 01:02:58 UTC (rev 1706)
@@ -197,6 +197,9 @@
<ClInclude Include="..\Include\Travel_Time_File.hpp">
<Filter>Header Files</Filter>
</ClInclude>
+ <ClInclude Include="..\Include\Vol_Spd_Diff_Data_File.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="File_Service.cpp">
@@ -385,5 +388,8 @@
<ClCompile Include="Travel_Time_File.cpp">
<Filter>Source Files\Files</Filter>
</ClCompile>
+ <ClCompile Include="Vol_Spd_Diff_Data_File.cpp">
+ <Filter>Source Files\Files</Filter>
+ </ClCompile>
</ItemGroup>
</Project>
\ No newline at end of file
Modified: version7/trunk/Transims70/File_Service/Trip_File.cpp
===================================================================
--- version7/trunk/Transims70/File_Service/Trip_File.cpp 2018-05-03 00:56:08 UTC (rev 1705)
+++ version7/trunk/Transims70/File_Service/Trip_File.cpp 2018-05-03 01:02:58 UTC (rev 1706)
@@ -90,7 +90,7 @@
Trip_Data & Trip_File::Get_Data (Trip_Data &trip_rec)
{
if (Version () < 60) {
- exe->Error (String ("Version %.1lf %s files should be converted to Version %.1lf using NewFormat") % (Version () / 10.0) % File_ID () % (VERSION_CODE / 10.0));
+ exe->Error (String ("Version %.1lf %s files should be converted to Version %.1lf using NewFormat") % (Version () / 10.0) % File_ID () % (Release () / 10.0));
}
trip_rec.Household (Household ());
trip_rec.Person (Person ());
Copied: version7/trunk/Transims70/File_Service/Vol_Spd_Diff_Data_File.cpp (from rev 1705, version7/branches/aecom/Transims70/File_Service/Vol_Spd_Diff_Data_File.cpp)
===================================================================
--- version7/trunk/Transims70/File_Service/Vol_Spd_Diff_Data_File.cpp (rev 0)
+++ version7/trunk/Transims70/File_Service/Vol_Spd_Diff_Data_File.cpp 2018-05-03 01:02:58 UTC (rev 1706)
@@ -0,0 +1,234 @@
+//*********************************************************
+// Vol_Spd_Diff_Data_File.cpp - Volume-Speed Difference Data File
+//*********************************************************
+
+#include "Vol_Spd_Diff_Data_File.hpp"
+
+//-----------------------------------------------------------
+// Vol_Spd_Diff_Data_File constructors
+//-----------------------------------------------------------
+
+Vol_Spd_Diff_Data_File::Vol_Spd_Diff_Data_File (Access_Type access, string format, bool lane_use_flag, int data_type) :
+ Db_Header (access, format)
+{
+ Lane_Use_Flag (lane_use_flag);
+ Data_Type (data_type);
+ Setup ();
+}
+
+Vol_Spd_Diff_Data_File::Vol_Spd_Diff_Data_File (string filename, Access_Type access, string format, bool lane_use_flag, int data_type) :
+ Db_Header (access, format)
+{
+ Lane_Use_Flag (lane_use_flag);
+ Data_Type (data_type);
+ Setup ();
+
+ Open (filename);
+}
+
+Vol_Spd_Diff_Data_File::Vol_Spd_Diff_Data_File (Access_Type access, Format_Type format, bool lane_use_flag, int data_type) :
+ Db_Header (access, format)
+{
+ Lane_Use_Flag (lane_use_flag);
+ Data_Type (data_type);
+ Setup ();
+}
+
+Vol_Spd_Diff_Data_File::Vol_Spd_Diff_Data_File (string filename, Access_Type access, Format_Type format, bool lane_use_flag, int data_type) :
+ Db_Header (access, format)
+{
+ Lane_Use_Flag (lane_use_flag);
+ Data_Type (data_type);
+ Setup ();
+
+ Open (filename);
+}
+
+//-----------------------------------------------------------
+// Setup
+//-----------------------------------------------------------
+
+void Vol_Spd_Diff_Data_File::Setup (void)
+{
+ File_Type ("Vol Spd Diff Data File");
+ File_ID ("VolSpdDiffData");
+
+ link = dir = start = end = length = max_spd = -1;
+ vol0 = vol1 = vdiff = spd0 = spd1 = sdiff = -1;
+ use_vol0 = use_vol1 = vdiff = use_spd0 = use_spd1 = use_sdiff = -1;
+ vmt0 = vmt1 = vmtx = vht0 = vht1 = vhtx = vhd0 = vhd1 = vhdx = -1;
+ use_vmt0 = use_vmt1 = use_vmtx = use_vht0 = use_vht1 = use_vhtx = use_vhd0 = use_vhd1 = use_vhdx = -1;
+}
+
+//---------------------------------------------------------
+// Create_Fields
+//---------------------------------------------------------
+
+bool Vol_Spd_Diff_Data_File::Create_Fields (void)
+{
+ Clear_Fields ();
+
+ Add_Field ("LINK", DB_INTEGER, 10);
+ Add_LinkDir_Field ();
+
+ Add_Field ("START", DB_TIME, TIME_FIELD_SIZE, Time_Format ());
+ Add_Field ("END", DB_TIME, TIME_FIELD_SIZE, Time_Format ());
+
+ double value = 10.1;
+ if (data_type == VMT_DATA || data_type == PMT_DATA || data_type == VHT_DATA || data_type == PHT_DATA) {
+ value = 12.6;
+ }
+ Add_Field ("VOL0", DB_DOUBLE, value, Performance_Units_Map (data_type));
+ Add_Field ("VOL1", DB_DOUBLE, value, Performance_Units_Map (data_type));
+ Add_Field ("VOL_DIFF", DB_DOUBLE, value, Performance_Units_Map (data_type));
+
+ Add_Field ("SPD0", DB_DOUBLE, 5.1, MPH);
+ Add_Field ("SPD1", DB_DOUBLE, 5.1, MPH);
+ Add_Field ("SPD_DIFF", DB_DOUBLE, 5.1, MPH);
+
+ if (lane_use_flag) {
+ Add_Field ("USE_VOL0", DB_DOUBLE, value, Performance_Units_Map (data_type));
+ Add_Field ("USE_VOL1", DB_DOUBLE, value, Performance_Units_Map (data_type));
+ Add_Field ("USE_VDIFF", DB_DOUBLE, value, Performance_Units_Map (data_type));
+
+ Add_Field ("USE_SPD0", DB_DOUBLE, 5.1, MPH);
+ Add_Field ("USE_SPD1", DB_DOUBLE, 5.1, MPH);
+ Add_Field ("USE_SDIFF", DB_DOUBLE, 5.1, MPH);
+ }
+ if (exe->Notes_Name_Flag ()) {
+ Add_Field ("NOTES", DB_STRING, STRING_FIELD_SIZE);
+ }
+ Add_Field ("LENGTH", DB_DOUBLE, 8.1, FEET);
+ Add_Field ("MAX_SPD", DB_DOUBLE, 6.1, MPH);
+
+ Add_Field ("VMT0", DB_DOUBLE, 12.6, EMT);
+ Add_Field ("VMT1", DB_DOUBLE, 12.6, EMT);
+ Add_Field ("VMTX", DB_DOUBLE, 12.6, EMT);
+
+ Add_Field ("VHT0", DB_DOUBLE, 12.6, EHT);
+ Add_Field ("VHT1", DB_DOUBLE, 12.6, EHT);
+ Add_Field ("VHTX", DB_DOUBLE, 12.6, EHT);
+
+ Add_Field ("VHD0", DB_DOUBLE, 12.6, EHD);
+ Add_Field ("VHD1", DB_DOUBLE, 12.6, EHD);
+ Add_Field ("VHDX", DB_DOUBLE, 12.6, EHD);
+
+ if (lane_use_flag) {
+ Add_Field ("USE_VMT0", DB_DOUBLE, 12.6, EMT);
+ Add_Field ("USE_VMT1", DB_DOUBLE, 12.6, EMT);
+ Add_Field ("USE_VMTX", DB_DOUBLE, 12.6, EMT);
+
+ Add_Field ("USE_VHT0", DB_DOUBLE, 12.6, EHT);
+ Add_Field ("USE_VHT1", DB_DOUBLE, 12.6, EHT);
+ Add_Field ("USE_VHTX", DB_DOUBLE, 12.6, EHT);
+
+ Add_Field ("USE_VHD0", DB_DOUBLE, 12.6, EHD);
+ Add_Field ("USE_VHD1", DB_DOUBLE, 12.6, EHD);
+ Add_Field ("USE_VHDX", DB_DOUBLE, 12.6, EHD);
+ }
+ return (Set_Field_Numbers ());
+}
+
+//-----------------------------------------------------------
+// Set_Field_Numbers
+//-----------------------------------------------------------
+
+bool Vol_Spd_Diff_Data_File::Set_Field_Numbers (void)
+{
+ //---- required fields ----
+
+ link = Required_Field ("LINK");
+
+ if (link < 0) return (false);
+
+ //---- optional fields ----
+
+ dir = LinkDir_Type_Field ();
+ start = Optional_Field (START_FIELD_NAMES);
+ end = Optional_Field (END_FIELD_NAMES);
+
+ vol0 = Optional_Field ("VOL0", "VOL_BASE");
+ vol1 = Optional_Field ("VOL1", "VOL_ALT");
+ vdiff = Optional_Field ("VOL_DIFF", "VDIFF");
+
+ spd0 = Optional_Field ("SPD0", "SPD_BASE");
+ spd1 = Optional_Field ("SPD1", "SPD_ALT");
+ sdiff = Optional_Field ("SPD_DIFF", "SDIFF");
+
+ use_vol0 = Optional_Field ("USE_VOL0", "USE_V_BASE");
+ use_vol1 = Optional_Field ("USE_VOL1", "USE_V_ALT");
+ use_vdiff = Optional_Field ("USE_VDIFF");
+
+ use_spd0 = Optional_Field ("USE_SPD0", "USE_S_BASE");
+ use_spd1 = Optional_Field ("USE_SPD1", "USE_S_ALT");
+ use_sdiff = Optional_Field ("USE_SDIFF");
+
+ Lane_Use_Flag (use_vol0 >= 0 || use_spd0 >= 0);
+
+ Notes_Field (Optional_Field (NOTES_FIELD_NAMES));
+
+ length = Optional_Field ("LENGTH");
+ max_spd = Optional_Field ("MAX_SPD");
+
+ vmt0 = Optional_Field ("VMT0", "VMT_BASE");
+ vmt1 = Optional_Field ("VMT1", "VMT_ALT");
+ vmtx = Optional_Field ("VMTX", "VMT_DIFF");
+ vht0 = Optional_Field ("VHT0", "VHT_BASE");
+ vht1 = Optional_Field ("VHT1", "VHT_ALT");
+ vhtx = Optional_Field ("VHTX", "VHT_DIFF");
+ vhd0 = Optional_Field ("VHD0", "VHD_BASE");
+ vhd1 = Optional_Field ("VHD1", "VHD_ALT");
+ vhdx = Optional_Field ("VHDX", "VHD_DIFF");
+
+ use_vmt0 = Optional_Field ("USE_VMT0", "USE_VMT_BASE");
+ use_vmt1 = Optional_Field ("USE_VMT1", "USE_VMT_ALT");
+ use_vmtx = Optional_Field ("USE_VMTX", "USE_VMT_DIFF");
+ use_vht0 = Optional_Field ("USE_VHT0", "USE_VHT_BASE");
+ use_vht1 = Optional_Field ("USE_VHT1", "USE_VHT_ALT");
+ use_vhtx = Optional_Field ("USE_VHTX", "USE_VHT_DIFF");
+ use_vhd0 = Optional_Field ("USE_VHD0", "USE_VHD_BASE");
+ use_vhd1 = Optional_Field ("USE_VHD1", "USE_VHD_ALT");
+ use_vhdx = Optional_Field ("USE_VHDX", "USE_VHD_DIFF");
+
+ //---- set default units ----
+
+ Set_Units (start, HOUR_CLOCK);
+ Set_Units (end, HOUR_CLOCK);
+ Set_Units (vol0, Performance_Units_Map (data_type));
+ Set_Units (vol1, Performance_Units_Map (data_type));
+ Set_Units (vdiff, Performance_Units_Map (data_type));
+ Set_Units (spd0, MPH);
+ Set_Units (spd1, MPH);
+ Set_Units (sdiff, MPH);
+ Set_Units (use_vol0, Performance_Units_Map (data_type));
+ Set_Units (use_vol1, Performance_Units_Map (data_type));
+ Set_Units (use_vdiff, Performance_Units_Map (data_type));
+ Set_Units (use_spd0, MPH);
+ Set_Units (use_spd1, MPH);
+ Set_Units (use_sdiff, MPH);
+
+ Set_Units (length, FEET);
+ Set_Units (max_spd, MPH);
+
+ Set_Units (vmt0, EMT);
+ Set_Units (vmt1, EMT);
+ Set_Units (vmtx, EMT);
+ Set_Units (vht0, EHT);
+ Set_Units (vht1, EHT);
+ Set_Units (vhtx, EHT);
+ Set_Units (vhd0, EHD);
+ Set_Units (vhd1, EHD);
+ Set_Units (vhdx, EHD);
+
+ Set_Units (use_vmt0, EMT);
+ Set_Units (use_vmt1, EMT);
+ Set_Units (use_vmtx, EMT);
+ Set_Units (use_vht0, EHT);
+ Set_Units (use_vht1, EHT);
+ Set_Units (use_vhtx, EHT);
+ Set_Units (use_vhd0, EHD);
+ Set_Units (use_vhd1, EHD);
+ Set_Units (use_vhdx, EHD);
+
+ return (true);
+}
Modified: version7/trunk/Transims70/GTFSData/Build_Routes.cpp
===================================================================
--- version7/trunk/Transims70/GTFSData/Build_Routes.cpp 2018-05-03 00:56:08 UTC (rev 1705)
+++ version7/trunk/Transims70/GTFSData/Build_Routes.cpp 2018-05-03 01:02:58 UTC (rev 1706)
@@ -107,7 +107,7 @@
for (stop_time_itr = trip_ptr->stop_time_map.begin (); stop_time_itr != trip_ptr->stop_time_map.end (); stop_time_itr++) {
stop_time_ptr = &stop_time_itr->second;
-
+
distance = stop_time_ptr->Distance ();
//---- build the stop list ----
@@ -116,7 +116,6 @@
if (xy_ptr != 0) {
stop_ptr = &stop_array [stop_time_ptr->Stop ()];
-
//---- create a TRANSIMS stop ----
if (stop_ptr->Space () == 0) {
@@ -144,9 +143,9 @@
if (diff < buffer) {
diff1 = Shape_Tools::Point_Shape_Distance_Offset (pt1, shape_itr->shape, off1);
diff2 = Shape_Tools::Point_Shape_Distance_Offset (pt2, shape_itr->shape, off2);
-
- if ((diff1 < buffer && off1 < offset) && (diff2 < buffer && off2 > offset)) {
- if (diff < best_diff) {
+
+ if ((diff1 < buffer && off1 <= offset) && (diff2 < buffer && off2 >= offset)) {
+ if (diff < best_diff) {
best_diff = diff;
best_offset = offset;
link = shape_itr->link;
Modified: version7/trunk/Transims70/GTFSData/GTFSData.cpp
===================================================================
--- version7/trunk/Transims70/GTFSData/GTFSData.cpp 2018-05-03 00:56:08 UTC (rev 1705)
+++ version7/trunk/Transims70/GTFSData/GTFSData.cpp 2018-05-03 01:02:58 UTC (rev 1706)
@@ -11,7 +11,7 @@
GTFSData::GTFSData (void) : Select_Service (), Projection ()
{
Program ("GTFSData");
- Version (1);
+ Version (2);
Title ("Convert GTFS Data to TRANSIMS");
System_File_Type required_files [] = {
Modified: version7/trunk/Transims70/GTFSData/Offset_Points.cpp
===================================================================
--- version7/trunk/Transims70/GTFSData/Offset_Points.cpp 2018-05-03 00:56:08 UTC (rev 1705)
+++ version7/trunk/Transims70/GTFSData/Offset_Points.cpp 2018-05-03 01:02:58 UTC (rev 1706)
@@ -38,6 +38,8 @@
if (offset == 0.0) {
start_flag = true;
+ pt1.x = x2;
+ pt1.y = y2;
}
} else {
dx = x2 - x1;
@@ -44,7 +46,7 @@
dy = y2 - y1;
length += max_len = sqrt (dx * dx + dy * dy);
-
+
if (!start_flag) {
if (length >= offset) {
if (length > offset) {
@@ -55,6 +57,9 @@
}
pt1.x = x1 + dx * factor;
pt1.y = y1 + dy * factor;
+ } else {
+ pt1.x = x2;
+ pt1.y = y2;
}
start_flag = true;
if (point_flag) break;
@@ -62,8 +67,11 @@
}
if (start_flag) {
if (length <= end_offset) {
- if (length == offset) continue;
- if (length == end_offset) break;
+ if (length != offset && length == end_offset) {
+ pt2.x = x2;
+ pt2.y = y2;
+ break;
+ }
} else {
if (max_len > 0.0) {
factor = (end_offset + max_len - length) / max_len;
@@ -79,5 +87,9 @@
x1 = x2;
y1 = y2;
}
+ if (length < end_offset) {
+ pt2.x = x2;
+ pt2.y = y2;
+ }
}
Modified: version7/trunk/Transims70/GridData/Control.cpp
===================================================================
--- version7/trunk/Transims70/GridData/Control.cpp 2018-05-03 00:56:08 UTC (rev 1705)
+++ version7/trunk/Transims70/GridData/Control.cpp 2018-05-03 01:02:58 UTC (rev 1706)
@@ -1081,6 +1081,21 @@
}
new_zone_file->Write_Header ();
}
+
+ //---- grid selection file ----
+
+ key = Get_Control_String (GRID_SELECTION_FILE);
+
+ if (!key.empty ()) {
+ grid_select_flag = true;
+
+ Print (1);
+ grid_select_file.File_Type ("Grid Selection File");
+
+ if (!grid_select_file.Open (Project_Filename (key))) {
+ File_Error ("Opening Grid Selection File", grid_select_file.Filename ());
+ }
+ }
return;
data_error:
Modified: version7/trunk/Transims70/GridData/Execute.cpp
===================================================================
--- version7/trunk/Transims70/GridData/Execute.cpp 2018-05-03 00:56:08 UTC (rev 1705)
+++ version7/trunk/Transims70/GridData/Execute.cpp 2018-05-03 01:02:58 UTC (rev 1706)
@@ -32,6 +32,12 @@
}
}
+ //---- grid_select_file ----
+
+ if (grid_select_flag) {
+ Read_Grid_Select ();
+ }
+
//---- read zone data files ----
if (zone_flag) {
Modified: version7/trunk/Transims70/GridData/GridData.cpp
===================================================================
--- version7/trunk/Transims70/GridData/GridData.cpp 2018-05-03 00:56:08 UTC (rev 1705)
+++ version7/trunk/Transims70/GridData/GridData.cpp 2018-05-03 01:02:58 UTC (rev 1706)
@@ -11,7 +11,7 @@
GridData::GridData (void) : Data_Service () , Shape_Tools ()
{
Program ("GridData");
- Version (22);
+ Version (23);
Title ("Grid Data Processor");
System_File_Type optional_files [] = {
@@ -85,7 +85,7 @@
{ NEW_ZONE_ID_FIELD, "NEW_ZONE_ID_FIELD", LEVEL0, OPT_KEY, TEXT_KEY, "ZONE", "", NO_HELP },
{ NEW_ZONE_SUM_FIELD, "NEW_ZONE_SUM_FIELD", LEVEL1, OPT_KEY, TEXT_KEY, "DATA", "", NO_HELP },
-
+ { GRID_SELECTION_FILE, "GRID_SELECTION_FILE", LEVEL0, OPT_KEY, IN_KEY, "", FILE_RANGE, NO_HELP},
END_CONTROL
};
const char *reports [] = {
@@ -104,7 +104,7 @@
link_cell_size = 10.0;
data_offset = 4;
script_flag = grid_flag = temp_flag = point_flag = arc_point_flag = zone_flag = polygon_flag = summary_flag = sum_data_flag = false;
- link_flag = boundary_flag = arc_link_flag = line_flag = new_zone_flag = point_data_flag = false;
+ link_flag = boundary_flag = arc_link_flag = line_flag = new_zone_flag = point_data_flag = grid_select_flag = false;
int ignore_keys [] = {
TIME_OF_DAY_FORMAT, MODEL_START_TIME, MODEL_END_TIME, MODEL_TIME_INCREMENT,
Modified: version7/trunk/Transims70/GridData/GridData.hpp
===================================================================
--- version7/trunk/Transims70/GridData/GridData.hpp 2018-05-03 00:56:08 UTC (rev 1705)
+++ version7/trunk/Transims70/GridData/GridData.hpp 2018-05-03 01:02:58 UTC (rev 1706)
@@ -56,7 +56,7 @@
SUMMARY_SELECT_FIELD, SUMMARY_SELECT_VALUES,
SUMMARY_DATA_FIELD, SUMMARY_DATA_VALUE, SUMMARY_DATA_FILTER, NORMALIZE_DATA_VALUE,
- NEW_ZONE_ID_FIELD, NEW_ZONE_SUM_FIELD,
+ NEW_ZONE_ID_FIELD, NEW_ZONE_SUM_FIELD, GRID_SELECTION_FILE,
};
virtual void Program_Control (void);
virtual void Page_Header (void);
@@ -70,7 +70,7 @@
int data_offset, in_zone_field, out_zone_field, skip_grid_field, new_zone_id, new_zone_count;
bool script_flag, grid_flag, temp_flag, point_flag, arc_point_flag, zone_flag, polygon_flag, summary_flag, sum_data_flag;
- bool link_flag, boundary_flag, arc_link_flag, line_flag, new_zone_flag, point_data_flag;
+ bool link_flag, boundary_flag, arc_link_flag, line_flag, new_zone_flag, point_data_flag, grid_select_flag;
double grid_size, min_point_dist, max_point_dist, min_link_dist, max_link_dist, link_cell_size, max_line_dist, skip_grid_value;
string temp_name;
@@ -78,6 +78,7 @@
Integers new_zone_in_flds, new_zone_out_flds;
Dbls_Map new_zone_map;
Zone_File *new_zone_file;
+ Int_Set grid_select_list;
Db_Header point_file, summary_file;
Db_Data_Array point_data, link_data, line_data;
@@ -87,7 +88,7 @@
Polygon_Map boundary;
Polygon_Array line_shape;
- Db_File program_file;
+ Db_File program_file, grid_select_file;
User_Program program;
//---- zone data groups ----
@@ -173,6 +174,7 @@
Flts_Array link_cell_shares;
void Set_Files (void);
+ void Read_Grid_Select ();
void Read_Data (void);
void Read_Polygons (void);
void Read_Boundary (void);
Modified: version7/trunk/Transims70/GridData/GridData.vcxproj
===================================================================
--- version7/trunk/Transims70/GridData/GridData.vcxproj 2018-05-03 00:56:08 UTC (rev 1705)
+++ version7/trunk/Transims70/GridData/GridData.vcxproj 2018-05-03 01:02:58 UTC (rev 1706)
@@ -137,6 +137,7 @@
<ClCompile Include="Point_Grid.cpp" />
<ClCompile Include="Read_Boundary.cpp" />
<ClCompile Include="Read_Data.cpp" />
+ <ClCompile Include="Read_Grid_Select.cpp" />
<ClCompile Include="Read_Lines.cpp" />
<ClCompile Include="Read_Links.cpp" />
<ClCompile Include="Read_Points.cpp" />
Modified: version7/trunk/Transims70/GridData/GridData.vcxproj.filters
===================================================================
--- version7/trunk/Transims70/GridData/GridData.vcxproj.filters 2018-05-03 00:56:08 UTC (rev 1705)
+++ version7/trunk/Transims70/GridData/GridData.vcxproj.filters 2018-05-03 01:02:58 UTC (rev 1706)
@@ -79,5 +79,8 @@
<ClCompile Include="Write_Zones.cpp">
<Filter>Source Files</Filter>
</ClCompile>
+ <ClCompile Include="Read_Grid_Select.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
</ItemGroup>
</Project>
\ No newline at end of file
Copied: version7/trunk/Transims70/GridData/Read_Grid_Select.cpp (from rev 1705, version7/branches/aecom/Transims70/GridData/Read_Grid_Select.cpp)
===================================================================
--- version7/trunk/Transims70/GridData/Read_Grid_Select.cpp (rev 0)
+++ version7/trunk/Transims70/GridData/Read_Grid_Select.cpp 2018-05-03 01:02:58 UTC (rev 1706)
@@ -0,0 +1,39 @@
+//*********************************************************
+// Read_Grid_Select.cpp - Read the Grid Selection File
+//*********************************************************
+
+#include "GridData.hpp"
+
+//---------------------------------------------------------
+// Read_Grid_Select
+//---------------------------------------------------------
+
+void GridData::Read_Grid_Select (void)
+{
+ int grid;
+ String data;
+ Strings grids;
+ Str_Itr grid_itr;
+
+ Show_Message (String ("Reading %s -- Record") % grid_select_file.File_Type ());
+ Set_Progress ();
+
+ while (grid_select_file.Read_Record ()) {
+ Show_Progress ();
+
+ data = grid_select_file.Record_String ();
+
+ data.Parse (grids);
+
+ for (grid_itr = grids.begin (); grid_itr != grids.end (); grid_itr++) {
+ grid = grid_itr->Integer ();
+
+ grid_select_list.insert (grid);
+ }
+ }
+ End_Progress ();
+
+ Print (2, "Number of Grid Selection Records = ") << grid_select_list.size ();
+
+ grid_select_file.Close ();
+}
Modified: version7/trunk/Transims70/GridData/Write_Grid.cpp
===================================================================
--- version7/trunk/Transims70/GridData/Write_Grid.cpp 2018-05-03 00:56:08 UTC (rev 1705)
+++ version7/trunk/Transims70/GridData/Write_Grid.cpp 2018-05-03 01:02:58 UTC (rev 1706)
@@ -12,7 +12,7 @@
void GridData::Write_Grid ()
{
- int i, zone, count;
+ int i, zone, count, id;
double value, x0, y0, grid_wt;
Data_Itr data_itr;
@@ -29,6 +29,7 @@
Dbls_Map_Itr zone_map_itr;
Dbls_Map_Stat zone_map_stat;
Doubles zone_sum, *zone_sum_ptr;
+ Int_Set_Itr id_itr;
count = 0;
@@ -38,6 +39,14 @@
while (in_file.Read_Record ()) {
Show_Progress ();
+ if (grid_select_flag) {
+ id = in_file.Get_Integer ("ID");
+
+ id_itr = grid_select_list.find (id);
+
+ if (id_itr == grid_select_list.end ()) continue;
+ }
+
out_file.Reset_Record ();
out_file.Copy_Fields (in_file);
Modified: version7/trunk/Transims70/Include/Best_List.hpp
===================================================================
--- version7/trunk/Transims70/Include/Best_List.hpp 2018-05-03 00:56:08 UTC (rev 1705)
+++ version7/trunk/Transims70/Include/Best_List.hpp 2018-05-03 01:02:58 UTC (rev 1706)
@@ -35,6 +35,19 @@
};
//---------------------------------------------------------
+// Float_List Class definition
+//---------------------------------------------------------
+
+class SYSLIB_API Float_List : public Floats
+{
+public:
+ Float_List (void) {}
+
+ float Best (int num);
+ bool Combine (Float_List &list, int index = 1, bool round_flag = false);
+};
+
+//---------------------------------------------------------
// Dtime_List Class definition
//---------------------------------------------------------
Modified: version7/trunk/Transims70/Include/Control_Service.hpp
===================================================================
--- version7/trunk/Transims70/Include/Control_Service.hpp 2018-05-03 00:56:08 UTC (rev 1705)
+++ version7/trunk/Transims70/Include/Control_Service.hpp 2018-05-03 01:02:58 UTC (rev 1706)
@@ -71,6 +71,7 @@
bool Get_Control_List (int code, Integer_List &list, int nest1 = 0, int nest2 = 0, int nest3 = 0, int nest4 = 0);
bool Get_Control_List (int code, Double_List &list, int nest1 = 0, int nest2 = 0, int nest3 = 0, int nest4 = 0);
+ bool Get_Control_List (int code, Float_List &list, int nest1 = 0, int nest2 = 0, int nest3 = 0, int nest4 = 0);
bool Get_Control_List (int code, Dtime_List &list, int nest1 = 0, int nest2 = 0, int nest3 = 0, int nest4 = 0);
bool Get_Control_List (int code, Bool_List &list, int nest1 = 0, int nest2 = 0, int nest3 = 0, int nest4 = 0);
bool Get_Control_List (int code, String_List &list, int nest1 = 0, int nest2 = 0, int nest3 = 0, int nest4 = 0);
@@ -77,6 +78,7 @@
bool Get_Control_List_Groups (int code, Integer_List &list, bool round_flag = false);
bool Get_Control_List_Groups (int code, Double_List &list, bool scale_flag = false);
+ bool Get_Control_List_Groups (int code, Float_List &list, bool scale_flag = false);
bool Get_Control_List_Groups (int code, Dtime_List &list, bool round_flag = false);
bool Get_Control_List_Groups (int code, Bool_List &list);
bool Get_Control_List_Groups (int code, String_List &list);
@@ -98,6 +100,7 @@
Dtime Time_Range_Check (Dtime value, String range);
bool List_Range_Check (Integer_List &list, String range);
bool List_Range_Check (Double_List &list, String range);
+ bool List_Range_Check (Float_List &list, String range);
bool List_Range_Check (Dtime_List &list, String range);
bool Control_Key_Empty (int code, int nest1 = 0, int nest2 = 0, int nest3 = 0, int nest4 = 0);
Modified: version7/trunk/Transims70/Include/Data_Pack.hpp
===================================================================
--- version7/trunk/Transims70/Include/Data_Pack.hpp 2018-05-03 00:56:08 UTC (rev 1705)
+++ version7/trunk/Transims70/Include/Data_Pack.hpp 2018-05-03 01:02:58 UTC (rev 1706)
@@ -58,6 +58,7 @@
{
public:
Vector (void) {}
+ Vector (int num, Type value) { vector <Type>::assign (num, value); }
bool Pack (Data_Buffer &data, bool type_flag = false)
{
Modified: version7/trunk/Transims70/Include/Message_Service.hpp
===================================================================
--- version7/trunk/Transims70/Include/Message_Service.hpp 2018-05-03 00:56:08 UTC (rev 1705)
+++ version7/trunk/Transims70/Include/Message_Service.hpp 2018-05-03 01:02:58 UTC (rev 1706)
@@ -8,6 +8,7 @@
#include "APIDefs.hpp"
#include "Static_Service.hpp"
#include "Streams.hpp"
+#include "String.hpp"
//---------------------------------------------------------
// Message_Service - general message class
@@ -26,15 +27,15 @@
bool Quiet (void) { return (_message.Quiet ()); }
void Quiet (bool flag) { _message.Quiet (flag); }
+
+ const char * Program (void) { return (_program.c_str ()); }
+ void Program (String p) { _program = p; }
- const char * Program (void) { return (_program); }
- void Program (const char *p) { _program = p; }
-
int Version (void) { return (_version); }
void Version (int number) { _version = number; }
- const char * CopyRight (void) { return (_copyright); }
- void CopyRight (const char *c) { _copyright = c; }
+ String CopyRight (void) { return (_copyright); }
+ void CopyRight (int year);
time_t StartTime (void) { return (_starttime); }
void StartTime (time_t dt) { _starttime = dt; }
@@ -121,7 +122,7 @@
private:
int _version, _progress, _warnings, _max_warnings;
bool _pause, _no_pause, _detail, _send_messages, _warning_flag, _no_warnings;
- const char *_program, *_copyright;
+ String _program, _copyright;
time_t _starttime;
clock_t _first, _last;
Modified: version7/trunk/Transims70/Include/Static_Service.hpp
===================================================================
--- version7/trunk/Transims70/Include/Static_Service.hpp 2018-05-03 00:56:08 UTC (rev 1705)
+++ version7/trunk/Transims70/Include/Static_Service.hpp 2018-05-03 01:02:58 UTC (rev 1706)
@@ -270,6 +270,12 @@
static void Left_Side_Flag (bool flag) { _left_side_flag = flag; }
static bool Left_Side_Flag (void) { return (_left_side_flag); }
+ static const char * Software (void) { return (_software); }
+ static void Software (const char *s) { _software = s; }
+
+ static int Release (void) { return (_release); }
+ static void Release (int num) { _release = num; }
+
private:
static int use_mask [NONE+1];
static Mode_Type trip_mode_map [];
@@ -281,6 +287,9 @@
static Units_Type _time_format;
static Format_Type _default_format;
+ static const char *_software;
+ static int _release;
+
struct Code_Text {
int code;
const char * text;
Modified: version7/trunk/Transims70/Include/System_Defines.hpp
===================================================================
--- version7/trunk/Transims70/Include/System_Defines.hpp 2018-05-03 00:56:08 UTC (rev 1705)
+++ version7/trunk/Transims70/Include/System_Defines.hpp 2018-05-03 01:02:58 UTC (rev 1706)
@@ -7,8 +7,6 @@
#include "APIDefs.hpp"
-#define VERSION_CODE 71
-
#define EXECUTION_OFFSET 200
#define SYSTEM_FILE_OFFSET 300
#define SYSTEM_FORMAT_OFFSET 400
@@ -70,6 +68,7 @@
#define _NAN (-1.79769e+308)
#define END_OF_RECORD -1
#define SCAN_ALL_RECORDS -1
+#define MAX_REC_SIZE 8192
#define STRING_FIELD_SIZE 128
#define TIME_FIELD_SIZE 16
@@ -150,6 +149,10 @@
#define FSPD_BA_FIELD_NAMES "FSPD_BA", "FREESPDA", "FREESPD_BA", "FSPDBA"
#define CAP_BA_FIELD_NAMES "CAP_BA", "CAPACITYA", ...
[truncated message content] |