#c# #tcp
#c# #tcp
Вопрос:
Я пытаюсь подключиться к своему RFID-считывателю через ethernet-соединение. Я подключил RFID-считыватель к своему маршрутизатору, а затем подключил свой рабочий стол к тому же маршрутизатору через ethernet-соединение.
Каждый раз, когда RFID-считыватель обнаруживает RFID-метку, идентификатор метки будет отправляться на мой компьютер. Я написал несколько очень простых кодов TCP-сервера / клиента для получения этих данных. ПК — это сервер, а RFID-считыватель — клиент.
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
SimpleTcpServer server;
private void Form1_Load(object sender, EventArgs e)
{
server = new SimpleTcpServer();
server.Delimiter = 0x13;
server.StringEncoder = Encoding.UTF8;
server.DataReceived = Server_DataReceived;
}
private void Server_DataReceived(object sender, SimpleTCP.Message e)
{
txtStatus.Invoke((MethodInvoker)delegate()
{
txtStatus.Text = e.MessageString;
e.ReplyLine(string.Format("RFID: {0}", e.MessageString));
});
}
private void buttonStart_Click(object sender, EventArgs e)
{
System.Net.IPAddress ip = System.Net.IPAddress.Parse("192.168.5.10");
server.Start(ip, Convert.ToInt32("6910"));
}
}
}
Способ настройки RFID для отправки данных метки на ПК через Ethernet — это использование макроса. Это показано ниже. Итак, наиболее важной частью является notifyAddress, который имеет форму hostname:port.
AutoModeReset
persisttime= 1
AntennaSequence = 0
AutoAction = Acquire
AutoStartTrigger = 0,0
AutoStopTimer = 0
AutoTrueOutput = 1
AutoTruePause = 1000
TagListCustomFormat = %k
NotifyAddress = 192.168.5.10:6910
NotifyFormat = Custom
NotifyHeader = Off
NotifyTrigger = True
NotifyMode = On
AutoMode = On
IP-адрес компьютера /сервера — 192.168.5.10 с номером порта 6910. Я создал исключение в своем брандмауэре для этого порта. Однако я по-прежнему не получаю никаких данных от RFID-считывателя. Кто-нибудь может помочь?
Комментарии:
1. Вы используете чужой считыватель?
2. @MarioV да, я
3. Я вижу, что вы используете протокол Alien на стороне считывателя, мне пришлось бы дважды проверить, не пропущен ли у вас параметр, так что, возможно, именно поэтому считыватель не отправляет данные, но мне просто интересно, почему вы не используете Alien SDK C #. Net для разработки серверного клиента, его очень легко реализовать, у него есть хорошая документация, и таким образом вы не изобретаете велосипед. У вас есть Alien SDK?
4. @MarioV я делаю, но я не знаю, как его точно использовать. Есть ли какие-либо примеры или информация, которые могут помочь мне настроить это пошагово?
5. существует очень хорошая документация, к сожалению, zip-файл для последних C#.NET SDK не поставляется с ним, но попробуйте загрузить версию 2.3.0, эта версия поставляется с документацией и примерами, документация и примеры хороши для последней версии, используйте ее для общения с читателем, она подойдетваше кодирование намного проще.