2017年4月30日 星期日

C# IPCAM

D-Link 931L
尚未使用emgu(open cv)進行影像處理





using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Net;
using Emgu.CV;
using Emgu.CV.Structure;
using Emgu.Util;

namespace test
{
    public partial class Form1 : Form
    {
        //IPCAM:D-Link 931L 
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            
        }
       
        private void button1_Click(object sender, EventArgs e)
        {
           timer1.Enabled = false;
        }

        private void button2_Click(object sender, EventArgs e)
        {
            timer1.Enabled = true;
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            string sourceURL = "http://"+textBox1.Text+"/image/jpeg.cgi";

            // create HTTP request
            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(sourceURL);

            //add id,password
            req.Credentials = new NetworkCredential("ooo", "xxx");//ooo為帳號,xxx為密碼

            // get response
            WebResponse resp = req.GetResponse();

            // get response stream
            Bitmap bmp = new Bitmap(resp.GetResponseStream());

            //show image in picturebox
            pictureBox1.Image = bmp;

        }
    }
}


2017年4月29日 星期六

DTR控制



using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;

namespace DTR1060330_1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            serialPort1.PortName = "COM1";
            serialPort1.BaudRate = 9600;
            serialPort1.Parity = Parity.None;
            serialPort1.DataBits = 8;
            serialPort1.StopBits = StopBits.One;
            button2.Enabled = false;
            button3.Enabled = false;
            button4.Enabled = false;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            button1.Enabled = false;
            button2.Enabled = true;
            button3.Enabled = true;
            button4.Enabled = true;
            serialPort1.Open();
        }

        private void button3_Click(object sender, EventArgs e)
        {
            serialPort1.DtrEnable = true;
            button3.Enabled = false;
            button4.Enabled = true;
        }

        private void button4_Click(object sender, EventArgs e)
        {
            serialPort1.DtrEnable = false;
            button4.Enabled = false;
            button3.Enabled = true;
        }

        private void button2_Click(object sender, EventArgs e)
        {
            button1.Enabled = true;
            button2.Enabled = false;
            button3.Enabled = false;
            button4.Enabled = false;
            serialPort1.Close();
        }
    }
}

UDP單向資料傳送

UDPserver

使用計時器,每隔1毫秒接收資料



using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Net.Sockets;

namespace udpsever
{
    public partial class Form1 : Form
    {
     
        string text2;
        public delegate void AddDataDelegate();
        IPEndPoint ipep = new IPEndPoint(IPAddress.Any, 5555);

        UdpClient uc;
     
        public Form1()
        {
            InitializeComponent();
        }

        private void addData()
        {
            label1.Text = "Waiting for a client...";
        }
        private void addData_1()
        {
            label1.Text = text2;
        }
     
        private void button1_Click(object sender, EventArgs e)
        {
            uc = new UdpClient(5555);
            this.Invoke(new AddDataDelegate(addData));
            timer1.Enabled = true;  
        }

        private void button2_Click(object sender, EventArgs e)
        {

            timer1.Enabled = false;
            uc.Close();
            text2 = "Stop.....";
            this.Invoke(new AddDataDelegate(addData_1));
         
        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            uc.Close();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            if (uc.Available != 0)
            {
                text2 = System.Text.Encoding.UTF8.GetString(uc.Receive(ref ipep));
                this.Invoke(new AddDataDelegate(addData_1));
            }          
        }
    }
}

UDPclient
單向傳送資料

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Net.Sockets;

namespace udpclient
{
    public partial class Form1 : Form
    {
        IPEndPoint ipep;
        Socket server;
        string ip;
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            ip = textBox1.Text;
            ipep = new IPEndPoint(IPAddress.Parse(ip), 5555);
            server = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            ip="127.0.0.1";
            textBox1.Text = ip;
        }

        private void button2_Click(object sender, EventArgs e)
        {
            string text = textBox2.Text;
            byte[] sendByte = Encoding.UTF8.GetBytes(text);
            server.SendTo(sendByte, ipep);
        }
    }
}