Миландр

Ключевым подразделением нашей компании
является Центр Проектирования интегральных микросхем
Текущее время: 2021-окт-23 16:59

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 50 сообщений ]  На страницу « 1 2 3 4 »
Автор Сообщение
 Заголовок сообщения: Re: Протокол UDP для 1986ВЕ1Т
СообщениеДобавлено: 2016-окт-01 11:20 
Не в сети

Зарегистрирован: 2012-апр-23 12:55
Сообщения: 47
А что за компилятор так чудит? Просто интересно.


Вернуться к началу
 Заголовок сообщения: Re: Протокол UDP для 1986ВЕ1Т
СообщениеДобавлено: 2016-окт-01 14:52 
Не в сети

Зарегистрирован: 2015-ноя-05 10:50
Сообщения: 21
Сергей86 писал(а):
А что за компилятор так чудит? Просто интересно.
ARM Compiler v5.05.
Не уверен, что к компилятору могут быть какие-то претензии. Подобно рода вещи, типа выравнивания и упаковки структур, задача программиста, которому не всегда просто все предусмотреть. Отладчик здесь незаменим.


Вернуться к началу
 Заголовок сообщения: Re: Протокол UDP для 1986ВЕ1Т
СообщениеДобавлено: 2016-окт-01 16:30 
Не в сети

Зарегистрирован: 2012-апр-23 12:55
Сообщения: 47
Погодите, выравнивание членов внутри структуры безусловно задача программиста, но чтобы компилятор на 32-битной архитектуре саму структуру по умолчанию не выравнивал на 4 байта - это что-то новенькое или нет?


Вернуться к началу
 Заголовок сообщения: Re: Протокол UDP для 1986ВЕ1Т
СообщениеДобавлено: 2016-окт-01 17:15 
Не в сети

Зарегистрирован: 2015-ноя-05 10:50
Сообщения: 21
Справедливое замечание. Ради интереса надо посмотреть что там с другими структурами.
Вообще, может есть какой ключ для компиллера, чтобы тот выдавал предупреждения типа unaligned access...?


Вернуться к началу
 Заголовок сообщения: Re: Протокол UDP для 1986ВЕ1Т
СообщениеДобавлено: 2016-окт-04 15:13 
Не в сети
Аватара пользователя

Зарегистрирован: 2015-май-06 14:32
Сообщения: 10
noob писал(а):
А аппаратную ошибку я вычистил :) Всё работает :)
Добрый день, noob - похожая проблема: Ethernet - канал с UDP обменом на ВЕ1Т - работает 1-2 мин, затем самопроизвольно падает link, может вспомните, что была за ошибка, как исправить?


Вернуться к началу
 Заголовок сообщения: Re: Протокол UDP для 1986ВЕ1Т
СообщениеДобавлено: 2016-окт-10 23:30 
Не в сети

Зарегистрирован: 2014-май-20 09:07
Сообщения: 96
Откуда: ЗАО "Московский Прожекторный завод"
Постарался на вопросы ответить в личных сообщениях. Видимо, придётся проект развивать...


Вернуться к началу
 Заголовок сообщения: Re: Протокол UDP для 1986ВЕ1Т
СообщениеДобавлено: 2016-окт-10 23:32 
Не в сети

Зарегистрирован: 2014-май-20 09:07
Сообщения: 96
Откуда: ЗАО "Московский Прожекторный завод"
i-MAN писал(а):
noob писал(а):
А аппаратную ошибку я вычистил :) Всё работает :)
Добрый день, noob - похожая проблема: Ethernet - канал с UDP обменом на ВЕ1Т - работает 1-2 мин, затем самопроизвольно падает link, может вспомните, что была за ошибка, как исправить?
Насколько я помню, была проблема при считывании данных из буфера Ethernet, а именно обращение по невыровненному адресу. Но это устранено в последних версиях программы. Может быть Вы что-то раннее скачали? Вообще стоит проверить выравнивание структур в памяти и обращение. Ну, я там в ЛС Вам понаписал свои предположения :)


Вернуться к началу
 Заголовок сообщения: Re: Протокол UDP для 1986ВЕ1Т
СообщениеДобавлено: 2016-окт-10 23:37 
Не в сети

Зарегистрирован: 2012-апр-23 12:55
Сообщения: 47
noob писал(а):
Постарался на вопросы ответить в личных сообщениях.
Спасибо за ответ, но, думаю, лучше отвечать в теме форума, вдруг ваш ответ кому-то еще пригодится. А оповещения в любом случае на почту приходят.


Вернуться к началу
 Заголовок сообщения: Re: Протокол UDP для 1986ВЕ1Т
СообщениеДобавлено: 2016-окт-11 13:55 
Не в сети
Аватара пользователя

Зарегистрирован: 2015-май-06 14:32
Сообщения: 10
...абсолютно согласен с сергей86, тем более, что лозунг "Все для победы Разума с Чудовищем техники" никто не отменял! Огромный респект noob, его предложение форм`ировать данные в структурах с помощью директив
#pragma pack(push, n)
#pragma pack (pop)
где n - можно почитать в хелпе кейла(на пример) - волшебным образом работает, вот текстик:

#pragma pack(push, 1)
typedef struct {
unsigned short Data[288];
unsigned short Count;
unsigned short Status;
} FrameDef;
#pragma pack (pop)

и дальше в том же духе....

#pragma pack(push, 1)
typedef struct {//physical parametrs alfa1,alfa2,PC,N1,N2,DD1-DD6,DV1-DV4;
uint32_t AngleCel1;
uint32_t tAngleCel1;
uint32_t AngleCel2;
uint32_t tAngleCel2;
uint32_t AngleCel3;
uint32_t tAngleCel3;
uint16_t DD1;
uint32_t t_DD1;
uint16_t DD2;
uint32_t t_DD2;
...
} ParamsDef;
#pragma pack (pop)

...но не всегда, выкл-вкл питания девайса с промежутком менее минуты - все равно ложит LINK стабильно, восстанавливается только кнопкой Reset ...буду продолжать искать причину.
...из шаманства - замечена зависимость стабильности сигнала LINK от порядка подпрограмм инициализации портов и контроллера Ethernet, даже на примере ПО noob, т.е. :

int main(void)
{
ini_CLKs();
ini_BKP();
ini_SysTick();

ini_Ethernet();
ini_Ports();
ini_Timers();
ini_ADC();
link - держит....а

int main(void)
{
ini_CLKs();
ini_BKP();
ini_SysTick();
ini_Ports();
ini_Ethernet();

ini_Timers();
ini_ADC();
link - сразу пропадает после вкл и никак не восстановить - может кому-нибудь это да и поможет :), всем удачи...


Вернуться к началу
 Заголовок сообщения: Re: Протокол UDP для 1986ВЕ1Т
СообщениеДобавлено: 2016-дек-13 13:56 
Не в сети

Зарегистрирован: 2016-янв-29 17:53
Сообщения: 55
Организация: частное лицо
Здравствуйте, у меня вопросы:
1) что это за библиотека opora.h. Почему не использовать MDR1986VE1T.h?
2) перенес проект на эти самые библиотеки и у меня не работает, хотя оригинальный проект noob работает. Из за чего может быть?
Кидаю 2 куска кода и сам проект
Открыть __Application_c__
#ifndef __Application_c__
#define __Application_c__

#include "Application.h"
	#include "MDR32F9Qx_config.h"           // Milandr::Device:Startup
	#include "MDR32F9Qx_adc.h"              // Milandr::Drivers:ADC
	#include "MDR32F9Qx_bkp.h"              // Milandr::Drivers:BKP
	#include "MDR32F9Qx_dac.h"              // Milandr::Drivers:DAC
	#include "MDR32F9Qx_dma.h"              // Milandr::Drivers:DMA
	#include "MDR32F9Qx_ebc.h"              // Milandr::Drivers:EBC
	#include "MDR32F9Qx_eeprom.h"           // Milandr::Drivers:EEMPROM
	#include "MDR32F9Qx_eth.h"              // Milandr::Drivers:Ethernet
	#include "MDR32F9Qx_port.h"             // Milandr::Drivers:PORT
	#include "MDR32F9Qx_power.h"            // Milandr::Drivers:POWER
	#include "MDR32F9Qx_rst_clk.h"          // Milandr::Drivers:RST_CLK
	#include "MDR32F9Qx_timer.h"            // Milandr::Drivers:TIMER
	#include "MDR32F9Qx_arinc429r.h"        // Milandr::Drivers:ARINC429R
	#include "MDR32F9Qx_arinc429t.h"        // Milandr::Drivers:ARINC429T
	#include "math.h"
//#include "CAN1.h"
#include "RST_CLK.h"
#include "ETHERNET.h"
//#include "PORTA.h"
#include "PORTB.h"
//#include "PORTC.h"
#include "PORTD.h"
//#include "PORTE.h"
//#include "PORTF.h"

#include "MAC.h"
#include "ARP.h"
#include "IP.h"
#include "UDP.h"
#include "ICMP.h"

#define htons(A) ((((uint16_t)(A) & 0xff00) >> 8) | (((uint16_t)(A) & 0x00ff) << 8))

IP_Address MyIP = { 192, 168, 1, 163 };

UDP_Port p2054 = { 0x08, 0x06 };
UDP_Port pCB99 = { 0xCB, 0x99 };

#pragma pack ( push, 2)
const MAC_Address MyMAC = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xAB };
#pragma pack (pop)

_Rec_Frame Rec;

int main ()
{
//	__disable_irq();
	RST_CLKConfig ();
  // CAN1Config ();
  // UART1Config ();
	ETHERNETConfig ();
	PORTBConfig ();
	PORTDConfig ();
	
	NVIC_EnableIRQ (ETHERNET_IRQn);
	while(1)
	{
		if ((MDR_ETHERNET1->PHY_Status&0x02) == 0x00) MDR_PORTB->SETTX = 1<<15;	// FIXME
		else MDR_PORTB->CLRTX = 1<<15;																			// FIXME
		if ((MDR_ETHERNET1->PHY_Status&0x08) == 0x00) MDR_PORTB->SETTX = 1<<14;	// FIXME
		else MDR_PORTB->CLRTX = 1<<14;																			// FIXME
	}
}

void ETHERNET_Handler()
{
	uint16_t Status;
	uint16_t Size[2];
	void* Buf;
	Status=MDR_ETHERNET1->ETH_IFR;
	MDR_ETHERNET1->ETH_IFR=Status;

	if((Status&0x01)==0x01)
	{
		// ReadDataFromR_Buffer (&Size, 4); 
		// Buf = MallocEthInPacket (Size[0]);
		// ReadDataFromR_Buffer (Buf, Size[0]);
		// ReadEthInPacket (Buf, Size[0]);
		Rec.Counter = ReadPacket (&Rec);
		ReadEthInPacket ( Rec.Data, Rec.Counter );
	}
}

// *** Функции, вызываемые драйверами протоколов при получении пакетов протокола.
// Можно использовать только OnUDPReceive, для того, чтобы получить данные, переданные нам по протоколу UDP.
// При желании также можно анализировать данные других пакетов, но это не желательно, т.к. может нарушить даннные
// и привести к сбою штатной обработки пакетов драйверами протоколов.
void OnEthReceive ( void* pIPData, uint16_t Size) {}
void OnIPReceive ( void* pIPData, uint16_t Size) {}
void OnARPReceive (void* pARPData, uint16_t Size) {}
	
void OnUDPReceive (IP_Address SrcIP, uint16_t SrcPort, uint16_t DstPort, void* pUDPData, uint16_t Size) { 
  uint16_t SendMe, i;
	uint32_t counter;
	unsigned char data[16] = "Hello, I'm MDR!";
	
	MDR_PORTD->CLRTX = 0xFFFF;
	MDR_PORTD->SETTX = *((uint8_t*)pUDPData) << 7;
	
	SendViaUDP (SrcIP, 0x0608 , 0x0608, data, 16);
}

void OnICMPReceive (void* pICMPData, uint16_t Size) {}
void SendEthPacket (void* pHeader, uint16_t Size) {}

#endif // __Application_c__
Закрыть
Открыть __Application_h__
#ifndef __Application_h__
#define __Application_h__

	#include "MDR32F9Qx_config.h"           // Milandr::Device:Startup
	#include "MDR32F9Qx_adc.h"              // Milandr::Drivers:ADC
	#include "MDR32F9Qx_bkp.h"              // Milandr::Drivers:BKP
	#include "MDR32F9Qx_dac.h"              // Milandr::Drivers:DAC
	#include "MDR32F9Qx_dma.h"              // Milandr::Drivers:DMA
	#include "MDR32F9Qx_ebc.h"              // Milandr::Drivers:EBC
	#include "MDR32F9Qx_eeprom.h"           // Milandr::Drivers:EEMPROM
	#include "MDR32F9Qx_eth.h"              // Milandr::Drivers:Ethernet
	#include "MDR32F9Qx_port.h"             // Milandr::Drivers:PORT
	#include "MDR32F9Qx_power.h"            // Milandr::Drivers:POWER
	#include "MDR32F9Qx_rst_clk.h"          // Milandr::Drivers:RST_CLK
	#include "MDR32F9Qx_timer.h"            // Milandr::Drivers:TIMER
	#include "MDR32F9Qx_arinc429r.h"        // Milandr::Drivers:ARINC429R
	#include "MDR32F9Qx_arinc429t.h"        // Milandr::Drivers:ARINC429T
	#include "math.h"
#include "IP.h"
#include "UDP.h"

#pragma pack (push, 1)
typedef struct {
	uint8_t Byte1;
	uint8_t Byte2;
} Remote_Control_Request;
#pragma pack (pop)

#pragma pack(push, 1)
typedef struct {
	uint8_t LastCommand;
	unsigned LowResist400Hz220V : 1;
	unsigned LowResist50Hz380V : 1;
	unsigned FireAlarm : 1;
	unsigned LocalManage : 1;
	unsigned Reserved : 4;
	unsigned RemoteEngineReady : 1;
	unsigned HasFaults : 1;
	unsigned EngineModeOn : 1;
	unsigned EngineModeOff : 1;
	unsigned RemotePowsupReady : 1;
} Remote_Control_Reply;
#pragma pack (pop)

void OnEthReceive ( void* pIPData, uint16_t Size);
void OnIPReceive ( void* pIPData, uint16_t Size);
void OnARPReceive (void* pARPData, uint16_t Size);
void OnUDPReceive (IP_Address SrcIP, uint16_t SrcPort, uint16_t DstPort, void* pUDPData, uint16_t Size);
void OnICMPReceive (void* pICMPData, uint16_t Size);
void SendEthPacket (void* pHeader, uint16_t Size);

#endif // __Application_h__
Закрыть


Вложения:
Комментарий к файлу: Мой проект (который не отвечает)
eth_UDP.zip [3.2 МБ]
326 скачиваний
Вернуться к началу
 Заголовок сообщения: Re: Протокол UDP для 1986ВЕ1Т
СообщениеДобавлено: 2016-дек-13 15:26 
Не в сети

Зарегистрирован: 2009-июл-21 14:13
Сообщения: 1588
Откуда: Тула
fryn3 писал(а):
1) что это за библиотека opora.h. Почему не использовать MDR1986VE1T.h?
2) перенес проект на эти самые библиотеки и у меня не работает, хотя оригинальный проект noob работает. Из за чего может быть?
1. опора старый файл описания мк, MDR1986VE1T.h - новый (уже года три как, а то и больше).
2. если с opora.h на MDR1986VE1T.h возможно надо исправить определения имени переферии на MDR_* (например UART1 на MDR_UART1)

_________________
сочувствующий…


Вернуться к началу
 Заголовок сообщения: Re: Протокол UDP для 1986ВЕ1Т
СообщениеДобавлено: 2016-дек-13 15:52 
Не в сети

Зарегистрирован: 2016-янв-29 17:53
Сообщения: 55
Организация: частное лицо
prostoRoman писал(а):
fryn3 писал(а):
1) что это за библиотека opora.h. Почему не использовать MDR1986VE1T.h?
2) перенес проект на эти самые библиотеки и у меня не работает, хотя оригинальный проект noob работает. Из за чего может быть?
1. опора старый файл описания мк, MDR1986VE1T.h - новый (уже года три как, а то и больше).
2. если с opora.h на MDR1986VE1T.h возможно надо исправить определения имени переферии на MDR_* (например UART1 на MDR_UART1)
1. Спасибо за пояснение
2. Увидел. У себя соответственно поменял. Из единственного что отличается не только название, а структурой, это MDR_ETHERNET_TypeDef, поле G_CFG
Открыть MDR1986VE1T.h
typedef struct {
  __IO uint16_t ETH_Dilimiter;		//0
  __IO uint16_t ETH_MAC_T;			//2
  __IO uint16_t ETH_MAC_M;			//4
  __IO uint16_t ETH_MAC_H;			//6
  __IO uint16_t ETH_HASH0;			//8
  __IO uint16_t ETH_HASH1;			//A
  __IO uint16_t ETH_HASH2;			//C
  __IO uint16_t ETH_HASH3;			//E
  __IO uint16_t ETH_IPG;			//10
  __IO uint16_t ETH_PSC;			//12
  __IO uint16_t ETH_BAG;			//14
  __IO uint16_t ETH_JitterWnd;		//16
  __IO uint16_t ETH_R_CFG;			//18
  __IO uint16_t ETH_X_CFG;			//1A
        __IO uint16_t ETH_G_CFGl;			//1C
        __IO uint16_t ETH_G_CFGh;			//1E
  __IO uint16_t ETH_IMR;			//20
  __IO uint16_t ETH_IFR;			//22
  __IO uint16_t ETH_MDIO_CTRL;		//24
  __IO uint16_t ETH_MDIO_DATA;		//26
  __IO uint16_t ETH_R_Head;			//28
  __IO uint16_t ETH_X_Tail;			//2A
  __IO uint16_t ETH_R_Tail;			//2C
  __IO uint16_t ETH_X_Head;			//2E
  __IO uint16_t ETH_STAT;			//30
  __IO uint16_t Reserved;			//32
  __IO uint16_t PHY_Control;		//34
  __IO uint16_t PHY_Status;			//36
} MDR_ETHERNET_TypeDef;
Закрыть
Открыть opora_ethernet_defs.h
typedef struct {
  __IO uint16_t Delimiter;	//00 offset
  __IO uint16_t MAC_T;		//02
  __IO uint16_t MAC_M;		//04
  __IO uint16_t MAC_H;		//06
  __IO uint16_t HASH0;		//08
  __IO uint16_t HASH1;		//0A
  __IO uint16_t HASH2;		//0C
  __IO uint16_t HASH3;		//0E
  __IO uint16_t IPG;		//10
  __IO uint16_t PSC;		//12
  __IO uint16_t BAG;		//14
  __IO uint16_t JitterWnd;	//16
  __IO uint16_t R_CFG;		//18
  __IO uint16_t X_CFG;		//1A
          __IO uint32_t G_CFG;		//1C
  __IO uint16_t IMR;		//20
  __IO uint16_t IFR;		//22
  __IO uint16_t MDIO_CTRL;	//24
  __IO uint16_t MDIO_DATA;	//26
  __IO uint16_t R_Head;		//28
  __IO uint16_t X_Tail;		//2A
  __IO uint16_t R_Tail;		//2C
  __IO uint16_t X_Head;		//2E
  __IO uint16_t STAT;		//30
  __IO uint16_t RESERV;		//32
  __IO uint16_t PHY_CTRL;	//34
  __IO uint16_t PHY_STATUS;	//36
} ETHERNET_TypeDef;
Закрыть
Так что делать, что бы заработало? при прошивке на компьютере появляется неопознанная сеть, но эхо не работает.
Как отдебажить? На что обратить внимание? Как работают прерывания и где они настраиваются?


Вернуться к началу
 Заголовок сообщения: Re: Протокол UDP для 1986ВЕ1Т
СообщениеДобавлено: 2016-дек-13 17:04 
Не в сети

Зарегистрирован: 2009-июл-21 14:13
Сообщения: 1588
Откуда: Тула
fryn3 писал(а):
2. Увидел. У себя соответственно поменял. Из единственного что отличается не только название, а структурой, это MDR_ETHERNET_TypeDef, поле G_CFG
Открыть MDR1986VE1T.h
typedef struct {
  __IO uint16_t ETH_Dilimiter;		//0
  __IO uint16_t ETH_MAC_T;			//2
  __IO uint16_t ETH_MAC_M;			//4
  __IO uint16_t ETH_MAC_H;			//6
  __IO uint16_t ETH_HASH0;			//8
  __IO uint16_t ETH_HASH1;			//A
  __IO uint16_t ETH_HASH2;			//C
  __IO uint16_t ETH_HASH3;			//E
  __IO uint16_t ETH_IPG;			//10
  __IO uint16_t ETH_PSC;			//12
  __IO uint16_t ETH_BAG;			//14
  __IO uint16_t ETH_JitterWnd;		//16
  __IO uint16_t ETH_R_CFG;			//18
  __IO uint16_t ETH_X_CFG;			//1A
        __IO uint16_t ETH_G_CFGl;			//1C
        __IO uint16_t ETH_G_CFGh;			//1E
  __IO uint16_t ETH_IMR;			//20
  __IO uint16_t ETH_IFR;			//22
  __IO uint16_t ETH_MDIO_CTRL;		//24
  __IO uint16_t ETH_MDIO_DATA;		//26
  __IO uint16_t ETH_R_Head;			//28
  __IO uint16_t ETH_X_Tail;			//2A
  __IO uint16_t ETH_R_Tail;			//2C
  __IO uint16_t ETH_X_Head;			//2E
  __IO uint16_t ETH_STAT;			//30
  __IO uint16_t Reserved;			//32
  __IO uint16_t PHY_Control;		//34
  __IO uint16_t PHY_Status;			//36
} MDR_ETHERNET_TypeDef;
Закрыть
Открыть opora_ethernet_defs.h
typedef struct {
  __IO uint16_t Delimiter;	//00 offset
  __IO uint16_t MAC_T;		//02
  __IO uint16_t MAC_M;		//04
  __IO uint16_t MAC_H;		//06
  __IO uint16_t HASH0;		//08
  __IO uint16_t HASH1;		//0A
  __IO uint16_t HASH2;		//0C
  __IO uint16_t HASH3;		//0E
  __IO uint16_t IPG;		//10
  __IO uint16_t PSC;		//12
  __IO uint16_t BAG;		//14
  __IO uint16_t JitterWnd;	//16
  __IO uint16_t R_CFG;		//18
  __IO uint16_t X_CFG;		//1A
          __IO uint32_t G_CFG;		//1C
  __IO uint16_t IMR;		//20
  __IO uint16_t IFR;		//22
  __IO uint16_t MDIO_CTRL;	//24
  __IO uint16_t MDIO_DATA;	//26
  __IO uint16_t R_Head;		//28
  __IO uint16_t X_Tail;		//2A
  __IO uint16_t R_Tail;		//2C
  __IO uint16_t X_Head;		//2E
  __IO uint16_t STAT;		//30
  __IO uint16_t RESERV;		//32
  __IO uint16_t PHY_CTRL;	//34
  __IO uint16_t PHY_STATUS;	//36
} ETHERNET_TypeDef;
Закрыть
Так что делать, что бы заработало? при прошивке на компьютере появляется неопознанная сеть, но эхо не работает.
Как отдебажить? На что обратить внимание? Как работают прерывания и где они настраиваются?
Судя по СП должно быть два регистра. А вообще - надо больше исходных данных.
Прерывания работают, включаются где угодно примерно так NVIC_EnableIRQ(ETHERNET_IRQn);

_________________
сочувствующий…


Вернуться к началу
 Заголовок сообщения: Re: Протокол UDP для 1986ВЕ1Т
СообщениеДобавлено: 2016-дек-21 11:17 
Не в сети

Зарегистрирован: 2016-янв-29 17:53
Сообщения: 55
Организация: частное лицо
моя реализация udp на основе tcpip.с и проекта от noob . До конца не разобрался что да как работает, так что скорее всего есть неточности. Но вроде работает без сбоев. Любой совет приветствуется!)
UDP случайно! читай следующее сообщение


Последний раз редактировалось fryn3 2016-дек-21 12:17, всего редактировалось 1 раз.

Вернуться к началу
 Заголовок сообщения: Re: Протокол UDP для 1986ВЕ1Т
СообщениеДобавлено: 2016-дек-21 11:19 
Не в сети

Зарегистрирован: 2016-янв-29 17:53
Сообщения: 55
Организация: частное лицо
моя реализация udp на основе tcpip.с и проекта от noob . До конца не разобрался что да как работает, так что скорее всего есть неточности. Но вроде работает без сбоев. Любой совет приветствуется!)


Вложения:
Комментарий к файлу: exe-файл клиента udp
ClientUDP_Framework4.zip [3.01 КБ]
436 скачиваний
Комментарий к файлу: Проект клиента UDP на visual studio c#
ClientUDP_Framework4.zip [64.83 КБ]
424 скачивания
Комментарий к файлу: Проект в kail
udp.zip [1.26 МБ]
556 скачиваний
Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 50 сообщений ]  На страницу « 1 2 3 4 »

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти: 

Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB