- Oct 18 Wed 2017 20:55
-
Yamaha YZF R3 更換後煞車皮 (Part2) 安裝
- Oct 18 Wed 2017 20:04
-
Yamaha YZF R3 更換後煞車皮 (Part1) 買料
- May 28 Mon 2012 11:11
-
Android 第一個小遊戲(Balloon Tap)
- Aug 25 Thu 2011 23:48
-
cocos3d 加入 multi-touch
// Multi Touch Dispatcher
- (void) registerWithTouchDispatcher {
[[CCTouchDispatcher sharedDispatcher] addStandardDelegate: self priority: 0
- (void) registerWithTouchDispatcher {
[[CCTouchDispatcher sharedDispatcher] addStandardDelegate: self priority: 0
- May 15 Sun 2011 23:56
-
php & sqlite 使用
在 OO 寫法時會用到 sqlite 的 class
$db = new SQLiteDatabase('XXX.db');
有 new 出來接著就可以使用 $db->query(); 了
但是要關閉時才發現
$db = new SQLiteDatabase('XXX.db');
有 new 出來接著就可以使用 $db->query(); 了
但是要關閉時才發現
- May 09 Mon 2011 10:51
-
html 也有 doubleclick 功能
最近工作需要用到 javascript 做特效
有交代需要有 double click 的功能
所以就是找了一下
結果發現 html 就有 double click 的 event 了
有交代需要有 double click 的功能
所以就是找了一下
結果發現 html 就有 double click 的 event 了
- Mar 28 Mon 2011 01:39
-
動態 js & php->js 傳值
<html>
<title> Skypower Controller</title>
<body>
<form name="mainForm" method="get">
<?php
$php_var= 11000;
echo '<script language="javascript">';
echo "var js_var=".$php_var.";";
echo "for (var i=0; i < js_var; i++)";
echo 'document.write("<input type=\"submit\" name=\"btn\" value=\"jsb\">");';
echo '</script>';
?>
</form>
</body>
</html>
- Mar 27 Sun 2011 17:53
-
apache2 + php + sqlite @ Ubuntu
在 Ubuntu 下要用到 php & sqlite 時
只要鍵入
apt-get install apache2 php5 php5-sqlite
apache 的 www 目錄在 /var/www/ 下
只要鍵入
apt-get install apache2 php5 php5-sqlite
apache 的 www 目錄在 /var/www/ 下
- Nov 30 Tue 2010 22:00
-
C# 事件觸發的RS232
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
// user include----------------------------
using System.IO.Ports;
namespace rs232v2
{
public partial class Form1 : Form
{
public SerialPort serialPort = new SerialPort();
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// button 設定
this.button1.Text = "Open COM";
this.button2.Text = "Send";
this.button2.Enabled = false;
// 事件初始化
this.button1.Click += new EventHandler(Rs232PortDoor);
this.button2.Click += new EventHandler(SendPhone);
// rs232 door key
rs232Key = true;
}
bool rs232Key;
// button1 事件處理
// 初始PORT & 打開 button2
private void Rs232PortDoor(object sender, EventArgs e)
{
if (rs232Key)
{
this.button1.Text = "Close Port";
// 打開 button2
this.button2.Enabled = true;
// 設定使用的 PORT
this.serialPort.PortName = "COM4";
// 檢查 PORT 是否關閉
if (!serialPort.IsOpen)
this.serialPort.Close();
// 初始化 PORT
this.serialPort.BaudRate = 9600; // baud rate = 9600
this.serialPort.Parity = Parity.None; // Parity = none
this.serialPort.StopBits = StopBits.One; // stop bits = one
this.serialPort.DataBits = 8; // data bits = 8
// 設定 PORT 接收事件
serialPort.DataReceived += new SerialDataReceivedEventHandler(SerialPort_DataReceived);
// 打開 PORT
serialPort.Open();
// 清空 serial port 的緩存
serialPort.DiscardInBuffer(); // RX
serialPort.DiscardOutBuffer(); // TX
rs232Key = false;
}
else
{
this.button1.Text = "Open Port";
// 清空 serial port 的緩存
serialPort.DiscardInBuffer(); // RX
serialPort.DiscardOutBuffer(); // TX
// 關閉 PORT
this.serialPort.Close();
// 關閉 button2
this.button2.Enabled = false;
rs232Key = true;
}
}
// button2 事件處理
// 傳送三組電話過去
private void SendPhone(object sender, EventArgs e)
{
char[] textBuf;
textBuf = this.textBox1.Text.ToCharArray();
rs232Output(textBuf);
textBuf = this.textBox2.Text.ToCharArray();
rs232Output(textBuf);
textBuf = this.textBox3.Text.ToCharArray();
rs232Output(textBuf);
}
// 經由RS232 字串傳送
private void rs232Output(char[] phoneNum)
{
for (int i = 0; i < phoneNum.Length; i++)
{
serialPort.Write(phoneNum, i, 1);
//serialPort.Write("A");
}
// 傳送 Enter 的 ascii code
byte[] commEnter = new byte[] {0x0D, 0x0A};
for (int i = 0; i < 2; i++)
{
serialPort.Write(commEnter, i, 1);
}
Console.WriteLine("output Phone Number" + phoneNum.ToString());
}
// PORT 接收事件
void SerialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
byte RB = Byte.Parse(serialPort.ReadByte().ToString());
//SetText(RB.ToString());
SetText(textBox4.Text + RB.ToString() + " ");
}
// TextBox2 跨執行續執行
delegate void SetTextCallback(string text);
private void SetText(string text)
{
if (this.textBox2.InvokeRequired)
{
SetTextCallback d = new SetTextCallback(SetText);
this.Invoke(d, new object[] { text });
}
else
{
this.textBox4.Text = text;
}
}
}
}
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
// user include----------------------------
using System.IO.Ports;
namespace rs232v2
{
public partial class Form1 : Form
{
public SerialPort serialPort = new SerialPort();
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// button 設定
this.button1.Text = "Open COM";
this.button2.Text = "Send";
this.button2.Enabled = false;
// 事件初始化
this.button1.Click += new EventHandler(Rs232PortDoor);
this.button2.Click += new EventHandler(SendPhone);
// rs232 door key
rs232Key = true;
}
bool rs232Key;
// button1 事件處理
// 初始PORT & 打開 button2
private void Rs232PortDoor(object sender, EventArgs e)
{
if (rs232Key)
{
this.button1.Text = "Close Port";
// 打開 button2
this.button2.Enabled = true;
// 設定使用的 PORT
this.serialPort.PortName = "COM4";
// 檢查 PORT 是否關閉
if (!serialPort.IsOpen)
this.serialPort.Close();
// 初始化 PORT
this.serialPort.BaudRate = 9600; // baud rate = 9600
this.serialPort.Parity = Parity.None; // Parity = none
this.serialPort.StopBits = StopBits.One; // stop bits = one
this.serialPort.DataBits = 8; // data bits = 8
// 設定 PORT 接收事件
serialPort.DataReceived += new SerialDataReceivedEventHandler(SerialPort_DataReceived);
// 打開 PORT
serialPort.Open();
// 清空 serial port 的緩存
serialPort.DiscardInBuffer(); // RX
serialPort.DiscardOutBuffer(); // TX
rs232Key = false;
}
else
{
this.button1.Text = "Open Port";
// 清空 serial port 的緩存
serialPort.DiscardInBuffer(); // RX
serialPort.DiscardOutBuffer(); // TX
// 關閉 PORT
this.serialPort.Close();
// 關閉 button2
this.button2.Enabled = false;
rs232Key = true;
}
}
// button2 事件處理
// 傳送三組電話過去
private void SendPhone(object sender, EventArgs e)
{
char[] textBuf;
textBuf = this.textBox1.Text.ToCharArray();
rs232Output(textBuf);
textBuf = this.textBox2.Text.ToCharArray();
rs232Output(textBuf);
textBuf = this.textBox3.Text.ToCharArray();
rs232Output(textBuf);
}
// 經由RS232 字串傳送
private void rs232Output(char[] phoneNum)
{
for (int i = 0; i < phoneNum.Length; i++)
{
serialPort.Write(phoneNum, i, 1);
//serialPort.Write("A");
}
// 傳送 Enter 的 ascii code
byte[] commEnter = new byte[] {0x0D, 0x0A};
for (int i = 0; i < 2; i++)
{
serialPort.Write(commEnter, i, 1);
}
Console.WriteLine("output Phone Number" + phoneNum.ToString());
}
// PORT 接收事件
void SerialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
byte RB = Byte.Parse(serialPort.ReadByte().ToString());
//SetText(RB.ToString());
SetText(textBox4.Text + RB.ToString() + " ");
}
// TextBox2 跨執行續執行
delegate void SetTextCallback(string text);
private void SetText(string text)
{
if (this.textBox2.InvokeRequired)
{
SetTextCallback d = new SetTextCallback(SetText);
this.Invoke(d, new object[] { text });
}
else
{
this.textBox4.Text = text;
}
}
}
}
- Nov 15 Mon 2010 23:28
-
PIC12F629入手
- Oct 19 Tue 2010 10:05
-
JAVA 實作 Voip 使用 UDP
- Oct 13 Wed 2010 23:45
-
8051 ASM Timer0 初體驗




