|
|
|
[C#] การสั่งให้ทำงานใน Timer ผมอยากจะให้มันทำงานใน Timer จะเขียนได้ยังไงครับ |
|
|
|
|
|
|
|
ตอนนี้สามารถรับค่าจาก Arduino ได้แล้วครับ แต่ติดตรงที่ว่ามันต้องทำการกดปุ่ม ผมอยากจะให้มันทำงานใน Timer จะเขียนได้ยังไงครับ
Code (C#)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;
using System.Windows.Forms;
using Utility;
namespace Wifi_Control
{
public partial class Form1 : Form
{
private Socket client;
private Thread receiver;
private byte[] data = new byte[1024];
private byte[] data1 = new byte[1024];
public Form1()
{
InitializeComponent();
}
private void connected(IAsyncResult iar)
{
try
{
client.EndConnect(iar);
lblsta.Text = "Connected";
receiver = new Thread(new ThreadStart(ReceiveData));
receiver.Start();
}
catch
{
MessageBox.Show("ไม่สามารถเชื่อต่อได้ โปรดตรวจสอบข้อมูล");
}
}
private void ReceiveData() //รับ packet จาก Client/Server
{
int recv;
string strData;
while (client.Connected)
{
try
{
recv = client.Receive(data); // คืนค่าเป็นความยาวของ Data
strData = Encoding.Default.GetString(data, 0, recv);
string[] getdata = strData.Split(',');
textBox1.Text = getdata[0];
textBox2.Text = getdata[1];
//richTextBox2.AppendText("รับ: " + strData + "\n");
}
catch (SocketException ex)
{
MessageBox.Show(ex.Message, "Client");
}
}
}
private void BtnCon_Click(object sender, EventArgs e)
{
try
{
client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPEndPoint iep = new IPEndPoint(IPAddress.Parse(TxtIP.Text), int.Parse(TxtPort.Text));
client.BeginConnect(iep, new AsyncCallback(connected), client);
}
catch
{
MessageBox.Show("เชื่อมต่อเซิฟเวอร์ไม่สำเร็จ โปรดตรวจความถูกต้อง");
}
}
private void label2_Click(object sender, EventArgs e)
{
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
reg["port"] = TxtPort.Text;
reg["url"] = TxtIP.Text;
try
{
BtnCon_Click(sender, e);
}
catch
{
}
}
string port = "";
string url = "";
MyReg reg = new MyReg("ArduinoAll");
private void Form1_Load(object sender, EventArgs e)
{
timer1.Interval = 1000;
timer1.Enabled = true;
try
{
port = reg["port"].ToString();
url = reg["url"].ToString();
TxtIP.Text = url;
TxtPort.Text = port;
}
catch
{
reg["port"] = "";
reg["url"] = "";
}
}
private void BtnDis_Click(object sender, EventArgs e)
{
if (client.Connected)
{ // receiver.Abort();
receiver.Abort(client);
lblsta.Text = "Disconnected";
client.Close(5);
}
else
{
MessageBox.Show("ไม่มีการเชื่อมต่อ");
}
}
private void SendData(IAsyncResult iar)
{
try
{
Socket remote = (Socket)iar.AsyncState;
int sent = remote.EndSend(iar);
}
catch (SocketException ex)
{
MessageBox.Show(ex.Message);
}
}
private void button1_Click(object sender, EventArgs e)
{
InputTxt.Text = "ON";
BtnSend_Click(sender, e);
}
private void BtnSend_Click(object sender, EventArgs e)
{
if (client.Connected)
{
byte[] input = Encoding.Default.GetBytes(InputTxt.Text);
client.BeginSend(input, 0, input.Length, 0, new AsyncCallback(SendData), client);
richTextBox1.AppendText("ส่ง: " + InputTxt.Text + "\n");
}
else
{
MessageBox.Show("ไม่สามารถเชื่อมต่อเซิฟเวอร์ได้ หรือ ไม่มีการเชื่อมต่อ");
}
}
private void timer1_Tick(object sender, EventArgs e)
{
}
}
}
Tag : .NET, C#
|
|
|
|
|
|
Date :
2016-06-14 19:35:12 |
By :
meatspin |
View :
1054 |
Reply :
10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
หน้า design ลาก timer มา 1 ตัว และ double click ที่ timer จะได้ even timer1_tick จะทำอะไรก็ใส่ใน even นี้ได้เลยครับ และก็ให้มัน timer1.start ใน form_load ด้วยนะครับ เพื่อไปเรียก timer ให้ ใช้งาน
|
|
|
|
|
Date :
2016-06-15 14:17:11 |
By :
bigsuntat |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองแล้วครับ ReceiveData(); ไว้ใน Timer1 แต่ Error object reference not set to an instance of an object
|
ประวัติการแก้ไข 2016-06-15 15:46:23
|
|
|
|
Date :
2016-06-15 15:45:56 |
By :
meatspin |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Date :
2016-06-16 09:19:30 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เชื่อมต่อได้ครับแต่เป็นการกดปุ่มรับค่า แต่พอจะให้ทำงานใน Timer ก็ Error
|
|
|
|
|
Date :
2016-06-16 11:56:56 |
By :
meatspin |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เอางี้ส่งโปรแกรม มาให้ผมทางอีเมลล์ที่แจ้งใน PM จะดูให้ครับ
|
|
|
|
|
Date :
2016-06-18 04:08:18 |
By :
bigsuntat |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ส่งไปแล้วครับ
|
|
|
|
|
Date :
2016-06-18 09:45:15 |
By :
meatspin |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (C#)
private void BtnCon_Click(object sender, EventArgs e)
{
try
{
client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPEndPoint iep = new IPEndPoint(IPAddress.Parse(TxtIP.Text), int.Parse(TxtPort.Text));
client.BeginConnect(iep, new AsyncCallback(connected), client);
timer1.Start();
}
catch
{
MessageBox.Show("เชื่อมต่อเซิฟเวอร์ไม่สำเร็จ โปรดตรวจความถูกต้อง");
}
}
และ
Code (C#)
private void BtnDis_Click(object sender, EventArgs e)
{
if (client.Connected)
{ // receiver.Abort();
receiver.Abort(client);
lblsta.Text = "Disconnected";
client.Close(5);
timer1.Stop();
}
else
{
MessageBox.Show("ไม่มีการเชื่อมต่อ");
}
}
ลองดูครับ
|
|
|
|
|
Date :
2016-06-19 06:54:54 |
By :
bigsuntat |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ได้แล้วครับผมขอบคุณมากครับ จมอับเรื่องนี้มาเป็นอาทิตย์
|
|
|
|
|
Date :
2016-06-19 14:58:01 |
By :
meatspin |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ยินดีครับ
|
|
|
|
|
Date :
2016-06-19 15:42:52 |
By :
bigsuntat |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|