Changes between Version 2 and Version 3 of LessonsLearned


Ignore:
Timestamp:
01/12/2018 03:37:32 PM (8 years ago)
Author:
jdalbey
Comment:

Minor edits for clarity

Legend:

Unmodified
Added
Removed
Modified
  • LessonsLearned

    v2 v3  
    3535=== Gathering Resources and Documentation for Existing System Components === #gatheringresources 
    3636 
    37 Gathering resources and documentation for the existing system components, such as the ATMS and FEP, proved to be difficult and took more time than expected. Also, the documentation received had a lot of extra fluff. It took a considerable amount of time to gather the information from developers and CalTrans. The UCI Paramics plugin code's location was unknown. We never received any documentation on the ATMS, which made design and development particularly difficult. Luckily, we were able to get enough information from the FEP documentation, UCI Paramics plugin code, and files on the ATMS to make things work. 
     37Gathering resources and documentation for the existing system components, such as the ATMS and FEP, proved to be difficult and took more time than expected. Also, the documentation received had a lot of extra fluff. It took a considerable amount of time to gather the information from developers and !CalTrans. The UCI Paramics plugin code's location was unknown. We never received any documentation on the ATMS, which made design and development particularly difficult. Luckily, we were able to get enough information from the FEP documentation, UCI Paramics plugin code, and files on the ATMS to make things work. 
    3838 
    3939Another challenge in documentation for the existing system was that there was a lot of extra fluff. It took a considerable amount of time to find what we needed out of the immense amount of technical documentation for our system. For example, the FEP documentation was the documentation for the production FEP, so it included a lot of information that was not pertinent to our simulation system. We also received about three our four different versions of the FEP documentation, some versions relevant, some not. Deciphering through these docs took a great deal of time and effort. 
     
    5454=== RPC Platform Problems === #rpcprobs 
    5555 
    56 When developing the FEP Simulator, we did so on a Linux operating system which supports RPC natively. We did not realize that putting our program on our production computers, which run a Windows operating system, would not work. RPC is outdated and the current 64 bit versions of windows just did not want to work with our program to make RPC calls. 
     56When developing the FEP Simulator, we did so on a Linux operating system which supports RPC natively. We did not realize that putting our program on our production computers, which run a Windows operating system, would not work. RPC is outdated and the current 64 bit versions of Windows just did not want to work with our program to make RPC calls. 
    5757 
    5858For this problem, we proposed the solution of running the FEP Simulator on a Linux operating system on the TMC network and communicating with it over the network. 
     
    6262Also, at first, we were writing traffic conditions to a file on the Linux Virtual Machine and having a cronjob run the FEP Simulator at a scheduled interval. We later changed the FEP Simulator to run persistently and await socket messages from the CAD Server, to avoid file system dependency and timing complications. 
    6363 
    64 Although this adds an extra device to the system, our FEP Simulator actually resembles the FEP in that it is a both a separate hardware and software component in the system, and that's sort of cool how that worked out. 
     64Although this adds an extra device to the system, our FEP Simulator actually resembles the FEP in that it is a both a separate hardware and software component in the system with clearly specified interfaces and protocols so it is easily maintained.  In the future it would be possible to integrate it into the TMC Simulation software if a good Java RPC library becomes available.  
    6565 
    6666=== The Green Dot === #greendot 
    6767 
    68 One of the biggest challenges in developing this system was setting up the FEP Sim to send a single fep_reply to the ATMS successfully. Initially, we didn't even know to send an fep_reply struct, we only knew to communicate with it via RPC. A single successful fep_reply is resembled by a "green dot" on the ATMS Client. It took weeks of work setting up RPC correctly, reading FEP documentation and picking apart UCI plugin code to achieve this feat. 
     68One of the biggest challenges in developing this system was setting up the FEP Sim to send a single fep_reply to the ATMS successfully. Initially, we didn't even know to send an fep_reply struct, we only knew to communicate with it via RPC. A single successful fep_reply is indicated by a "green dot" on the ATMS Client GUI. It took weeks of work setting up RPC correctly, reading FEP documentation and picking apart UCI plugin code to achieve this feat. 
    6969 
    7070=== The Yellow and Red Dots === #otherdots 
     
    9696=== ATMS Client Lag === #clientlag 
    9797 
    98 For unknown reasons, the ATMS Client lags when the fep_replys are being sent to the ATMS. This issue needs to be investigated further and solved because it severely impacts the user experience. 
     98For unknown reasons, the ATMS Client lags when the fep_replys are being sent to the ATMS. During the time the fep_replys are transmitted the ATMS Client appears to hang and will accept no user input.  This issue needs to be investigated further and solved because it severely impacts the user experience. 
    9999 
    100100== Future Work == #futurework 
    101101 
    102 1. ATMS Client Lag problem. 
     1021. Solve the ATMS Client Lag problem. 
    1031032. Implementing TrafficLaneEvents into the TrafficModelManager. 
    104 3. Improving the TrafficEventsEditor. 
    105 4. Developing an agent that simulates traffic conditions as opposed to loading traffic conditions from a batch script. 
    106 5. Daemonize FEP Simulator. 
     1043. Improving the TrafficEventsEditor as necessary based on user feedback. 
     1054. Developing an agent that simulates traffic conditions as opposed to loading traffic conditions from a data file.  
     1065. Start the FEP Simulator automatically upon system startup and have it run in the background as a system service (daemon). 
     107