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 10075)
+++ firmware/FAD/FACT_FAD_20MHz_VAR_PS/FACT_FAD_lib/hdl/w5300_modul.vhd	(revision 10076)
@@ -150,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
@@ -556,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';
@@ -657,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;
