Serial ports provide an easy way to communicate between many types of hardware and your computer. They are relatively simple to use and are very common among peripherals and especially DIY projects. Many platforms such as Arduino have built in serial communication so they are really easy to set up and use. Many times you may want your project to communicate with your computer in order to have a cool interactive output, a neat sensor that passes data to your computer, or anything else you could possibly dream up. In this tutorial, I will walk you through how to interface to a serial port on the computer side of things, using Microsoft’s . net framework. The code examples in this tutorial are in C#, but can be easily transferred to Visual Basic, or Visual C++. This tutorial assumes that you have a very basic understanding of object oriented programing, and whatever language you choose to program in.

Since we are mainly going to be using the System.IO.Ports.SerialPort class, HERE is a link to the full documentation by MSDN if you want to check out the rest of the class.

Read More

ครั้งนี้ผมขอนำ How to ขั้นตอนการติตตั้ง LAMP ด้วย Tasksel บน Ubuntu Server แบบ Step by step แบบฉบับรวบลัด Quick Guide

Tasksel คืออะไร

Tasksel มีการจัดอินเตอร์เฟสที่เรียบง่ายสำหรับผู้ใช้ที่ต้องการกำหนดค่าระบบของพวกเขาเพื่อทำงานที่เฉพาะเจาะจง เพื่อลดกระบวนการในการติดตั้งองค์ประกอบต่างๆได้อย่างมีประสิทธิภาพ

Read More

บทความนี้เราจะมาติดตั้ง Web Server แบบง่ายๆ ด้วยคำที่คุ้นหู คือ LAMP (หลอดไฟๆๆๆๆๆ) เริ่มกันเลย

L ตัวแรกคือ Linux , A คือ Apache หรือ httpd, M คือ MySQL หรือ MariaDB สุดท้าย P คือ PHP ครับ

0. ทำการ Update Package list จาก Repository ก่อนแล้วกันครับ

[root@server ~]#yum update -y

1. ทำการติดตั้ง HTTP Server ด้วย httpd package และคำสั่งให้เปิด Service ดังนี้

[root@server ~]#yum install -y httpd[root@server ~]#systemctl start httpd[root@server ~]#systemctl enable httpd

ตรวจสอบ httpd services

[root@server ~]#systemctl status httpd● httpd.service — The Apache HTTP ServerLoaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)Active: active (running) since Thu 2017–03–09 01:51:52 ICT; 1min 56s agoDocs: man:httpd(8)man:apachectl(8)Main PID: 2158 (httpd)Status: “Total requests: 0; Current requests/sec: 0; Current traffic: 0 B/sec”CGroup: /system.slice/httpd.service├─2158 /usr/sbin/httpd -DFOREGROUND├─2159 /usr/sbin/httpd -DFOREGROUND├─2160 /usr/sbin/httpd -DFOREGROUND├─2161 /usr/sbin/httpd -DFOREGROUND<br>├─2162 /usr/sbin/httpd -DFOREGROUND└─2163 /usr/sbin/httpd -DFOREGROUNDMar 09 01:51:52 server01.thaiops.com systemd[1]: Starting The Apache HTTP Serv….Mar 09 01:51:52 server01.thaiops.com systemd[1]: Started The Apache HTTP Server.Hint: Some lines were ellipsized, use -l to show in full.[root@thaiops01 ~]#[root@thaiops01 ~]# ss -tlnState Recv-Q Send-Q Local Address:Port Peer Address:PortLISTEN 0 128 *:22 *:*LISTEN 0 128 :::80 :::*[root@thaiops01 ~]#

ทดสอบการใช้งานโดยเปิด Web Browser แล้วพิมพ์ช่อง URL เป็น http://IP-Address-Server

Read More

ถึงแม้ว่าคอมพิวเตอร์จะพัฒนาไปไกล จนถึงระดับ 64 บิตแล้วก็ตาม สิ่งหนึ่งที่ยังเป็นที่นิยม ยังมีใช้อยู่ทั่วไปก็คือ พอร์ตอนุกรม โดยเฉพาะในโลก Embedded system แล้ว หากคุณต้องการที่จะรับส่งข้อมูลระหว่างอุปกรณ์ภายนอก และโปรแกรมภายในคอมพิวเตอร์แล้ว พอร์ตอนุกรม หรือ Serial Port ก็ยังเป็นที่นิยมอยู่ ด้วยความที่มันติดต่อกันในรูปแบบที่ไม่ซับซ้อน สามารถเข้าใจได้ง่าย ช่วยให้งานจบได้เร็ว จึงทำให้ทุกวันนี้ เรายังพบเห็นโปรแกรมที่รับส่งข้อมูลทางพอร์ตอนุกรมอยู่ ถึงแม้่ว่าคอมพิวเตอร์บางเครื่องจะไม่มีพอร์ตอนุกรมแล้วก็ตาม เราก็ยังสามารถที่จะใช้ตัวแปลง USB to Serial ทำงานได้เหมือนๆ กัน

C# ติดต่อโลกภายนอกด้วย  SerialPort Class

Read More

ใช้งาน MySQL ผ่าน xampp บน Windows มาตลอด ก่อนหน้านี้ ก็ใ่ช้ phpmyadmin สำหรับสำรองฐานข้อมูล แต่ข้อมูลเริ่มใหญ่มากขึ้นจนรู้สึกว่าการสั่ง export / import เริ่มช้ามากขึ้นเรื่อยๆ

ตอนนี้ย้ายไปใช้งาน Linux เต็มตัว เลยต้องย้ายฐานข้อมูลไปด้วย แต่ว่าขนาดไฟล์ใหญ่มาก นึกขึ้นได้ว่าสมัยตอนหัดเรียนรู้เขียนเว็บโปรแกรมมิ่งแรกๆ เคยผ่านตาว่าการสำรองข้อมูลใน MySQL มันสามารถทำงานผ่าน command line ได้ เลยไปค้นๆ วิธี แล้วจดบันทึกไว้กันลืม เพราะตอนแรกงงๆ ทำแล้ว error ตลอด กว่าจะเข้าใจว่าต้องทำยังไง

Read More

หลายๆท่านคงจะพบปะสังสรรค์ปัญหาเกี่ยวกับวันที่กันบ้างพอสมควร ไม่ว่าจะเป็นเรื่องของ Y2K ซึ่งฝรั่งตาน้ำข้าวมันหลอกชาวโลกทั้งหลายให้หลงคารมมาแล้ว แต่ บ่ มีอะในกอ ไก่ ขอ ไข่ มีแต่เสียตัง โดยส่วนตัว Y2K หรืออะไรพวกนี้ถ้าเรากำหนดการป้อน ปี เป็นแบบ 4 หลักแล้วปัญหาก็ไม่มี เราจะใช้คำสั่งกำหนด ปีเป็น 4 หลัก ดังนี้

     SET CENTURY ON

แต่ประเด็นที่เราจะมาดูกันคือ จะทำอย่างไรกับฟิลด์วันที่ดี แล้วอยากจะให้วันที่เป็นแบบที่เราต้องการ (ผู้เขียนต้องการต่างหาก)

อยากให้ฟิลด์วันที่ แสดงเป็น วันที่แบบ ไทยๆ เช่น 10 กันยายน 2543 (วันครบรอบ 2 ขวบ ของ web site  ไวเหมือนใจนึก)
เมื่อเข้าไปป้อนอยากป้อนสั้นๆ แค่ 10/09/2543
แล้วถ้าผู้ใช้ป้อน เป็น 2000 ก็ให้แปลงมาเป็น 2543 ให้ด้วยก็ดี
พอป้อนเสร็จก็ให้แสดงกลับเป็นอย่างเก่า 10 กันยายน 2543
และสิ่งที่ขาดมิได้คือตรวจสอบการป้อนวันที่ว่าถูกต้องหรือเปล่า

Read More

ฉันจะทำอย่างไรดี ตอนสร้างฟอร์มแล้วกำหนด ตารางฐานข้อมูลใน DataEnviroment แล้วต่อมาต้องทำการย้ายฐานข้อมูลไปอยู่ directory อื่น?

เมื่อเผลอไป zap ข้อมูลอันเป็นสุดที่รัก (โอ้ลัลลลล…ล้าาาา) จ๊ากๆๆๆๆ

 

สร้างฟอร์มแล้วกำหนด ตารางฐานข้อมูลใน DataEnviroment แล้วต่อมาต้องทำการย้ายฐานข้อมูลไปอยู่ directory อื่น?

สำหรับท่านที่สร้างฟอร์มโดยใช้ DataEnvironment เพื่อกำหนดตาราง วิว และความสัมพันธ์ต่างๆ เพื่อใช้ในฟอร์ม ตอนสร้างมันจะจำ path ของ directory นั้นไว้เมื่อเรานำโปรแกรมที่สร้างเสร็จแล้วไปแจกจ่ายแล้วเปลี่ยน directory เป็นชื่อใหม่ หรือเขียนโปรแกรมบน Drive C: แล้วเปลี่ยนใจอยากจะทำระบบเป็นแบบ Client Access โดย ก๊อบปี้เฉพาะฐานข้อมูลไปไว้ที่ LAN ส่วนโปรแกรมก็ไว้ที่ Drive C: ซึ่ง directory ตอนแรกกับหลังจากย้ายแล้วไม่ตรงกันเป็นต้น หรือทำอย่างไรก็ได้ ที่ทำให้มันเกิด error ตามภาพด้านล่างนี้

c1101.gif (2948 bytes)

แสดงว่าฟอร์มนั้นหา ฐานข้อมูลชื่อ mydatabase.dbc ไม่เจอ …. แล้วเราจะจัดการกับมันอย่างไรดีล่ะ?

Read More

Window API เป็นฟังก์ชันภายนอกชนิดหนึ่งที่มีมาพร้อมกับระบบปฎิบัติการ Windows ที่เราใช้กันอยู่อย่างแพร่หลายในขณะนี้ ซึ่งก็คล้ายๆกับฟังก์ชันของ Visual FoxPro อันที่จริงแล้วฟังก์ชันภายนอกต่างๆนั้นมีอยู่มากมายที่ถูกสร้างขึ้นมา ไม่ว่าจะเป็น Active X Control, ฟังก์ชันที่สร้างขึ้นโดยใช้ภาษา C แล้ว Compile เป็นไฟล์ .DLL (Dynamic Link Library) , Visual FoxPro External Library ไฟล์ .FLL   ซึ่งทั้งหมดที่กล่าวมานี้เราจะเรียกฟังก์ชันหรือโปรแกรมเหล่านั้นว่า API (Application Programming Interface) ทั้งสิ้น

มีความจำเป็นด้วยหรือที่เราจะต้องใช้คำสั่ง Window API ?

ในการเขียนระบบงานหรือโปรแกรมขึ้นนั้นเราไม่จำเป็นต้องเรียกใช้งานฟังก์ชันของ Window API ก็ได้ แต่เพื่อเป็นการเพิ่มประสิทธิภาพของโปรแกรมหรือเมื่อโปรแกรมของคุณต้องมีการติดต่อระหว่างระบบปฎิบัติการ คุณก็สามารถทำการเรียกใช้งานฟังก์ชันต่างๆเหล่านั้นได้ตามความเหมาะสม

Read More

อาจช้าไปบ้างสำหรับเรื่องวิธีการใช้งาน Project Manager ซึ่งบางท่านถ้าทราบอยู่แล้วก็ผ่านไปได้ ไม่ต้องอ่านก็ได้ ในบทนี้จะเป็นการแนะนำการใช้งานเท่านั้นเอง ขอย้ำเฉพาะมือใหม่

ในสมัยก่อนนั้นเราใช้งาน Foxbase รุ่นแรกๆ เราก็ทำการสร้างองค์ประกอบต่างๆเช่น โปรแกรม ฐานข้อมูล รายงาน เมนู กันเองซึ่ง Foxbase รุ่นแรกๆไม่มีเครื่องมื่อในการจัดการ บางท่านก็ใช้วิธีการสร้าง sub-directory เพื่อทำการการจัดหมวดหมู่ แยกแยะว่ากลุ่มนี้เป็น ข้อมูล กลุ่มนี้เป็นโปรแกรม เป็นต้น ต่อมาพอมาถึง รุ่นที่เป็น FoxPro ก็เกิดสิ่งอำนวยความสะดวกนี้ขึ้นมา ซึ่งก็เรียกว่า catalog manager ผมเข้าใจว่าคงเรียนแบบ dBASE IV มากกว่า ต่อมาใน Visual FoxPro ก็มีเหมือนกันแต่เป็นชื่อเสียใหม่เป็น Project Manager ผมว่าชื่อนี้แหละเหมาะสมดี   ซึ่งตัวนี้แหละเป็นตัวจัดการในการทำงานของเราตั้งแต่เริ่มต้น จนจบถึงขั้นสร้างระบบงานแล้วนำมันไปแจกจ่ายใช้งาน

Read More

ส่วนช่วยเหลือ(Help) เป็นส่วนหนึ่งที่ได้ถูกพัฒนามาอย่างต่อเนื่อง ในยุคแรกที่ยังใช้ DOS เป็นระบบปฎิบัติการจะเป็นแบบ .DBF-Style Help พอเริ่มเข้ามาสู่ในยุคของ Windows ก็ได้เปลี่ยนมาเป็นแบบ Graphical Help ครั้นเข้าสู่ยุคของ Internet ก็ได้เกิดมี HTML Help ซึ่งก็คือ help ที่สร้างโดยใช้ภาษา HTML(Hypertext Markup Language) สำหรับหนังสือเล่มนี้จะอธิบายการสร้างส่วนช่วยเหลือในแบบ HTML Help

ก่อนที่ท่านจะทำการสร้างส่วนช่วยเหลือได้นั้นจำเป็นจะต้องมีโปรแกรมที่ใช้ในการสร้างก่อน ซึ่งเราไม่สามารถสร้างโดยใช้โปรแกรม Visual FoxPro ได้โดยตรง สำหรับโปรแกรมที่เราจะใช้มีชื่อว่า HTML Help Workshop

Read More