using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.IO;
using System.IO.Ports;
using System.Diagnostics;
using System.Threading;
using System.Runtime.InteropServices;
using Rfid245ApiLib;
using System.Windows.Forms;
namespace _2._4G
{
public partial class Form2 : Form
{
hComSocket CS;
int hCom = -1;
Socket sockClient = null;
int ConnectFlag = 0;
int Language = 0;
int ResetFlag = 0;
RFID_StandardProtocol rfid_sp = new RFID_StandardProtocol();
int DisplayCnt = 0;
int Displayindex = 0;
[DllImport("msvcrt.dll")]
unsafe private static extern int memcmp(void* b1, void* b2, int count);
[DllImport("msvcrt.dll")]
unsafe private static extern void* memcpy(void* dest, void* src, int count);
[DllImport("msvcrt.dll")]
unsafe private static extern void* malloc(int size);
[DllImport("msvcrt.dll")]
unsafe private static extern void* calloc(int num, int size);
[DllImport("msvcrt.dll")]
unsafe private static extern void free(void* memblock);
public Form2()
{
InitializeComponent();
}
private void QUERYINTERNET_button_Click(object sender, EventArgs e)
{
QueryInternet(255);
}
private void ByteToDecimalstr(ref string ToStr, byte[] Buf)
{
for (int i = 0; i < 4; i++)
{
ToStr = ToStr + IntToInt_Str((int)Buf[i]);
if (3 != i)
ToStr = ToStr + ".";
}
}
private string IntToInt_Str(int value)
{
string str = string.Format("{0:D}", value);
return str;
}
private int QueryInternet(int ReaderNum)
{
string TempStr = "";
string TempStrEnglish = "";
string IPAddr = "";
string MaskCode = "";
string GateWay = "";
int InternetPort = 0;
byte[] IPAddrbuf = new byte[4];
byte[] MaskCodebuf = new byte[4];
byte[] GateWaybuf = new byte[4];
byte[] InternetPortbuf = new byte[2];
byte ReaderAddr = (byte)(ReaderNum & 0xFF);
if (0x00 == rfid_sp.Config_GetInternetAccess(CS, IPAddrbuf, MaskCodebuf, GateWaybuf, InternetPortbuf, ReaderAddr))
{
TempStr = "???????????!";
TempStrEnglish = "Reader ethernet query success!";
ByteToDecimalstr(ref IPAddr, IPAddrbuf);
ByteToDecimalstr(ref MaskCode, MaskCodebuf);
ByteToDecimalstr(ref GateWay, GateWaybuf);
InternetPort = (InternetPortbuf[1] << 8) + (int)InternetPortbuf[0];
}
else
{
TempStr = "???????????!";
TempStrEnglish = "Reader ethernet query fail!";
}
ADDRESS_textBox.Text = IPAddr;
MASK_textBox.Text = MaskCode;
GATEWAY_textBox.Text = GateWay;
PORT_textBox.Text = Convert.ToString(InternetPort);
return 0;
}
private void SETINTERNET_button_Click(object sender, EventArgs e)
{
}
private void Form2_Load(object sender, EventArgs e)
{
int status = 0;
status = ConnectReader();
if (0 == status)
{
CS.hCom = -1;
CS.sockClient = sockClient;
ConnectFlag = 1;
QueryInternet(255);
}
}
private int ConnectReader()
{
int status = 0;
string TempStr = "";
string TempStrEnglish = "";
status = SocketConnect();
switch (status)
{
case 0:
TempStr = "????!";
TempStrEnglish = "Connect success!";
break;
case -1:
TempStr = "????!";
TempStrEnglish = "Connect fail!";
break;
case -2:
TempStr = "???????!";
TempStrEnglish = "Connect parameter incomplete!";
break;
case -3:
TempStr = "??IP????!";
TempStrEnglish = "Input IP Invalid!";
break;
}
return 0;
}
private int SocketConnect()
{
IPAddress ipaddr;
if (!IPAddress.TryParse("192.168.1.178", out ipaddr))
{
return -3;
}
else
{
if (rfid_sp.Socket_ConnectSocket(ref sockClient,
"192.168.1.178",
Convert.ToInt32("100"))
== RFID_StandardProtocol.SUCCESS)
return 0;
else
return -1;
}
}
private void DisconnectHandler()
{
int status = 0;
status = DisConnectReader();
if (0 == status)
{
ConnectFlag = 0;
}
}
private int DisConnectReader()
{
int status = 0;
string TempStr = "";
string TempStrEnglish = "";
status = SocketDisConnect();
switch (status)
{
case 0:
TempStr = "????!";
TempStrEnglish = "Close success!";
break;
case -1:
TempStr = "????!";
TempStrEnglish = "Close fail!";
break;
case -2:
TempStr = "??????!";
TempStrEnglish = "Handle unavailable!";
break;
}
return 0;
}
private int SocketDisConnect()
{
if (sockClient != null)
{
if (rfid_sp.Socket_CloseSocket(sockClient) == RFID_StandardProtocol.SUCCESS)
{
CS.sockClient = null;
return 0;
}
else
return -1;
}
else
{
return -2;
}
}
private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
DisconnectHandler();
}
}
}