Index: /firmware/FAD/FACT_FAD_20MHz_VAR_PS/FACT_FAD_lib/hdl/fad_board_struct.vhd
===================================================================
--- /firmware/FAD/FACT_FAD_20MHz_VAR_PS/FACT_FAD_lib/hdl/fad_board_struct.vhd	(revision 10077)
+++ /firmware/FAD/FACT_FAD_20MHz_VAR_PS/FACT_FAD_lib/hdl/fad_board_struct.vhd	(revision 10078)
@@ -3,5 +3,5 @@
 -- Created:
 --          by - dneise.UNKNOWN (E5B-LABOR6)
---          at - 18:14:37 04.01.2011
+--          at - 12:19:07 05.01.2011
 --
 -- Generated by Mentor Graphics' HDL Designer(TM) 2009.2 (Build 10)
@@ -79,5 +79,5 @@
 -- Created:
 --          by - dneise.UNKNOWN (E5B-LABOR6)
---          at - 18:14:37 04.01.2011
+--          at - 12:19:08 05.01.2011
 --
 -- Generated by Mentor Graphics' HDL Designer(TM) 2009.2 (Build 10)
Index: /firmware/FAD/FACT_FAD_20MHz_VAR_PS/FACT_FAD_lib/hdl/fad_main_struct.vhd
===================================================================
--- /firmware/FAD/FACT_FAD_20MHz_VAR_PS/FACT_FAD_lib/hdl/fad_main_struct.vhd	(revision 10077)
+++ /firmware/FAD/FACT_FAD_20MHz_VAR_PS/FACT_FAD_lib/hdl/fad_main_struct.vhd	(revision 10078)
@@ -3,5 +3,5 @@
 -- Created:
 --          by - dneise.UNKNOWN (E5B-LABOR6)
---          at - 18:14:35 04.01.2011
+--          at - 12:19:06 05.01.2011
 --
 -- Generated by Mentor Graphics' HDL Designer(TM) 2009.2 (Build 10)
@@ -80,5 +80,5 @@
 -- Created:
 --          by - dneise.UNKNOWN (E5B-LABOR6)
---          at - 18:14:36 04.01.2011
+--          at - 12:19:07 05.01.2011
 --
 -- Generated by Mentor Graphics' HDL Designer(TM) 2009.2 (Build 10)
Index: /firmware/FAD/FACT_FAD_20MHz_VAR_PS/FACT_FAD_lib/hdl/w5300_modul.vhd
===================================================================
--- /firmware/FAD/FACT_FAD_20MHz_VAR_PS/FACT_FAD_lib/hdl/w5300_modul.vhd	(revision 10077)
+++ /firmware/FAD/FACT_FAD_20MHz_VAR_PS/FACT_FAD_lib/hdl/w5300_modul.vhd	(revision 10078)
@@ -243,4 +243,5 @@
 					-- reset W5300
 					when RESET =>
+					  socket_send_mode <= '0';
 					  busy <= '1';
 						zaehler <= zaehler + 1;
@@ -561,8 +562,8 @@
                   case data_read (15 downto 8) is
                     
-                    when CMD_START => -- all data will be send via socket 0
+                    when CMD_START => -- all data will be send via socket 1..7 
                         socket_send_mode <= '1';
                         state_read_data <= RD_5;
-                    when CMD_STOP => -- all data will be send via socket 1..7 
+                    when CMD_STOP => -- all data will be send via socket 0
                         socket_send_mode <= '0';
                         state_read_data <= RD_5;                   
Index: /firmware/FAD/FACT_FAD_20MHz_VAR_PS/FACT_FAD_lib/hdl/w5300_modul.vhd.bak
===================================================================
--- /firmware/FAD/FACT_FAD_20MHz_VAR_PS/FACT_FAD_lib/hdl/w5300_modul.vhd.bak	(revision 10077)
+++ /firmware/FAD/FACT_FAD_20MHz_VAR_PS/FACT_FAD_lib/hdl/w5300_modul.vhd.bak	(revision 10078)
@@ -49,5 +49,5 @@
       ram_addr       : OUT    std_logic_vector (RAM_ADDR_WIDTH-1 DOWNTO 0);
       data_valid     : IN     std_logic;
-	   data_valid_ack : OUT    std_logic := '0';
+      data_valid_ack : OUT    std_logic := '0';
       busy           : OUT    std_logic                     := '1';
       write_header_flag, write_end_flag : IN std_logic;
@@ -74,5 +74,8 @@
       ps_reset : out std_logic := '0'; -- pulse this to reset the variable phase shift
       
-      srclk_enable : out std_logic := '1' -- default SRCLK on.
+      srclk_enable : out std_logic := '1'; -- default SRCLK on.
+      
+      socks_waiting : out std_logic;
+      socks_connected: out std_logic
    );
 
@@ -147,4 +150,8 @@
 --signal last_trigger_id : std_logic_vector (15 downto 0) := (others => '0');
 
+
+-- signals for different socket modes: DN 04.01.11
+signal socket_nr_counter : integer range 1 to 7 :=1; --used to determine which socket is used for data sending
+signal socket_send_mode : std_logic := '0'; -- if 0 data is send via socket 0; if 1 data is send via the other sockets.
 
 begin
@@ -238,4 +245,6 @@
 					  busy <= '1';
 						zaehler <= zaehler + 1;
+						socks_waiting <= '0';
+            socks_connected <= '0';
             wiz_reset <= '0';
 --            led <= X"FF";
@@ -432,4 +441,6 @@
 						
 					when ESTABLISH =>
+					  socks_waiting <= '1';
+            socks_connected <= '0';
 						par_addr <= W5300_S0_SSR + socket_cnt * W5300_S_INC;
 						state_init <= READ_REG;
@@ -463,4 +474,7 @@
           -- main "loop"
 					when MAIN =>
+					  socks_waiting <= '0';
+            socks_connected <= '1';
+
       					  ps_do_phase_shift <= '0';
       					  ps_reset <= '0';
@@ -546,4 +560,13 @@
                 if (next_packet_data = '0') then
                   case data_read (15 downto 8) is
+                    
+                    when CMD_START => -- all data will be send via socket 0
+                        socket_send_mode <= '1';
+                        state_read_data <= RD_5;
+                    when CMD_STOP => -- all data will be send via socket 1..7 
+                        socket_send_mode <= '0';
+                        state_read_data <= RD_5;                   
+                    
+                    
                     when CMD_TRIGGER =>
                       trigger_stop <= '1';
@@ -647,6 +670,14 @@
 							when WR_LENGTH =>
 							  if (local_write_header_flag = '1') then
-							    local_socket_nr <= ram_data (2 downto 0);
---							    local_socket_nr <= "000";
+							    if (socket_send_mode = '1') then -- send via all sockets
+							     local_socket_nr <= conv_std_logic_vector(socket_nr_counter, 3);
+							     if (socket_nr_counter < 7) then
+							       socket_nr_counter <= socket_nr_counter + 1; 
+							     else 
+							       socket_nr_counter <= 1;
+							     end if;
+							    else -- only send via socket 0\
+							      local_socket_nr <= "000";
+							    end if;  
 							  end if;
 								next_state_tmp <= next_state;
