Exemple #1
0
 void Receive()
 {
     intersections.AddRange(intersectionsHolder.GetComponentsInChildren <IntersectionComponent>());
     //tf = TFHolder.GetComponent<sim_map>();
     //lat = tf.lat;
     //lon = tf.lon;
     lat = pos.x - tf_x;
     lon = pos.z - tf_y;
     foreach (var item in intersections)
     {
         if (item.intersection_region > 0)
         {
             var msg = new V2x.single_spat_msg();
             msg                = item.Traffic_Spat_intersection_info();
             id_region          = msg.single_id_region;
             single_group       = msg.single_signal_group;
             single_movement    = msg.single_movement_name;
             movement_cnt       = msg.movement_count;
             single_event_state = msg.single_eventstate;
             single_min_endtime = msg.single_minendtime;
             SendV_x();
         }
         else
         {
             continue;
         }
         single_group.Clear();
         single_movement.Clear();
         single_event_state.Clear();
         single_min_endtime.Clear();
     }
     intersections.Clear();
 }
Exemple #2
0
    //HW_start
    public V2x.single_spat_msg Traffic_Spat_intersection_info()
    {
        var msg = new V2x.single_spat_msg();

        msg.single_id_region = intersection_region;
        single_Sig_group.Clear();
        single_Move_name.Clear();
        single_Event_state.Clear();
        single_Min_end_time.Clear();
        //currentlightGroups.AddRange(transform.GetComponentsInChildren<IntersectionTrafficLightSetComponent>());
        foreach (var item1 in lightGroups)
        {
            //currentIntersectionC.AddRange(transform.GetComponentsInChildren<IntersectionLightComponent>());
            //currentIntersectionC.Lenght;
            //single_Event_state.Add(item1.event_state);
            //single_Min_end_time.Add(item1.min_endtime);
            foreach (var item2 in item1.intersectionLightC)
            {
                single_Sig_group.Add(item2.signal_group);
                single_Move_name.Add(item2.movement_name);
            }
        }
        foreach (var item in currentTrafficLightSet)
        {
            single_Event_state.Add(item.event_state);
            single_Min_end_time.Add(item.min_endtime);
        }
        msg.movement_count       = (uint)single_Move_name.Count;
        msg.single_signal_group  = single_Sig_group;
        msg.single_movement_name = single_Move_name;
        msg.single_eventstate    = single_Event_state;
        msg.single_minendtime    = single_Min_end_time;
        return(msg);
    }//HW_end
Exemple #3
0
    public V2x.single_spat_msg Traffic_light_Info()
    {
        var msg = new V2x.single_spat_msg()
        {
            single_signal_group  = signal_group,
            single_movement_name = movement_name,
        };

        return(msg);
    }
 void ServerCommunication()
 {
     intersections.AddRange(
         intersectionsHolder.GetComponentsInChildren <Inters ectionComponent> ()
         );
     foreach (var item in intersections)
     {
         if (item.intersection_region > 0)
         {
             var msg = new V2x.single_spat_msg();
             msg                = item.Traffic_Spat_intersection_info();
             id_region          = (int)msg.single_id_region;
             single_group       = msg.single_signal_group;
             movement_cnt       = (int)msg.movement_count;
             single_event_state = msg.single_eventstate;
             single_min_endtime = msg.single_minendtime;
             timer             += Time.deltaTime;
             if (timer > 1.0 f)
             {
                 String        tmp    = String.Format("{0} times try: ", counter);
                 NetworkStream stream = Client.GetStream();
                 if (Client != null)
                 {
                     try {
                         uint[] signal_group = single_group.ToArray();
                         uint[] event_state  = single_event_state.ToArray();
                         uint[] min_endtime  = single_min_endtime.ToArray();
                         sz = 0;
                         IntPtr ptr = return_spat(
                             ref sz,
                             id_region,
                             movement_cnt,
                             signal_group,
                             event_state,
                             min_endtime
                             ); //, single_move);
                         _face = new obu_tcp_header[1];
                         _face[0].packet_type      = 0x5432;
                         _face[0].current_sequence = 99;
                         _face[0].payload_size     = 11;
                         _face[0].device_type      = 0x01;
                         _face[0].device_id        = new byte[3];
                         _face[0].device_id[0]     = 0x11;
                         _face[0].device_id[1]     = 0x11;
                         _face[0].device_id[2]     = 0x11;
                         byte[] header = new byte[sz];
                         Debug.Log("hello" + header.Length);
                         Marshal.Copy(ptr, header, 0, header.Length);
                         Marshal.FreeHGlobal(ptr);
                         Debug.Log("sz");
                         Array.Copy(header, 0, sendBuffer, 0, sz);
                         obu_tcp_header o_tmp = ByteToStruct <obu_tcp_header>(sendBuffer);
                         stream.Write(sendBuffer, 0, sz);
                         tmp += "Success \n" + ptr + "\n" + _face[0].packet_type + "\n" + face[0].current_sequence +
                                "\n" + _face[0].payload_size + "\n" + _face[0].device_type + "\n" + _face[0].device_id[0] +
                                "\n" + _face[0].device_id[1] + "\n" + _face[0].device_id[2];  //+"\n"+bsm;
                         ConsoleMessage(tmp);
                     } catch (Exception e) {
                         tmp += "Exception: " + e.Message;
                         ConsoleMessage(tmp);
                         Shutdown();
                     }
                 }
                 counter++;
                 timer = 0.0 f;
             }
         }
         else
         {
             continue;
         }
         single_group.Clear();
         single_event_state.Clear();
         single_min_endtime.Clear();
     }
     intersections.Clear();
 }