วิธีการส่งไปยังพอร์ตอนุกรม โดยใช้ Mscomm32.ocx

คุณสมบัติการส่งข้อมูลไปยังพอร์ตอนุกรมที่ใช้ตัวควบคุม mscomm จะเป็นดังนี้:

CommPort

คุณสมบัติCommPortระบุหมายเลขพอร์ตสื่อสาร คุณสมบัติที่เป็นตัวเลขที่สอดคล้องกับสารพอร์ต โดยค่าเริ่มต้น คุณสมบัตินี้ถูกตั้งค่าเป็น 1 ที่สอดคล้องกับ com1 ค่าที่ถูกต้องคือ 1, 2, 3 หรือ 4 ขึ้นอยู่กับพอร์ตอนุกรมที่ติดตั้งบนคอมพิวเตอร์และตั้งค่าคอนฟิกของพวกเขา

การตั้งค่า

ตั้งค่าคุณสมบัติกำหนดค่าอัตรารับส่งข้อมูล พาริตี้ บิตข้อมูล และบิตการหยุดสำหรับพอร์ตอนุกรม ตั้งค่าคุณสมบัติเป็นสายอักขระที่ประกอบด้วยแต่ละค่าที่คั่นด้วยจุลภาค โดยค่าเริ่มต้นการตั้งค่าคุณสมบัติเป็นดังนี้:

ดังนี้ 9600, N, 8, 1

คุณสมบัตินี้สอดคล้องกับ บอด 9600 ไม่มีพาริตี้ ข้อมูล 8 บิต และบิตหยุด 1

ค่าอัตรารับส่งข้อมูลต่อไปนี้ไม่ถูกต้อง: 110, 300, 600, 1200, 2400, 4800, 9600 (เริ่มต้น), 14400, 19200, 28800, 38400, 56000, 57600, 115200, 128000, 256000

PortOpen

PortOpenคุณสมบัติระบุค่าตรรกศาสตร์ที่ควบคุมพอร์ตอนุกรมหรือไม่ถูกเปิด และใช้งาน ได้หรือไม่ เมื่อมีตั้งคุณสมบัติก่อนหน้าการเริ่มใช้พอร์ตอนุกรม คุณสามารถตั้งค่าคุณสมบัตินี้เป็นจริง

เอาพุต

มีกำหนดคุณสมบัติการแสดงผลสายอักขระที่จะส่งไปยังพอร์ตอนุกรม เมื่อต้องการแสดงผลสตริง “สวัสดี โลก” ไปยังพอร์ตอนุกรมหลังจากที่มีการตั้งค่าคุณสมบัติก่อนหน้านี้ ใช้คำสั่งต่อไปนี้:

   myform.mycomm.output = "Hello World"

คุณสมบัติอื่น ๆ ที่อาจจะยังต้องขึ้นอยู่กับแอพลิเคชัน มีดังนี้:

CommEvent

คุณสมบัติCommEventประกอบด้วยค่าที่แสดงถึงเหตุการณ์การสื่อสารล่าสุดหรือข้อผิดพลาด

Sthreshold

คุณสมบัติSthresholdระบุจำนวนต่ำสุดของอักขระในบัฟเฟอร์ขาออกที่ส่ง

OutBufferCount

ตัวควบคุมOutBufferCountส่งกลับจำนวนของอักขระที่รออยู่ในบัฟเฟอร์ transmit ซึ่งควรจะเป็นศูนย์เสมอเมื่อคุณสมบัติSthresholdเป็นศูนย์ การตั้งค่าคุณสมบัติOutBufferCountเป็นศูนย์จะล้างบัฟเฟอร์ transmit

OutBufferSize

คุณสมบัติOutBufferSizeระบุขนาดของบัฟเฟอร์ transmit โดยค่าเริ่มต้น บัฟเฟอร์นี้เป็น 512 ไบต์ ใหญ่มาก transmit บัฟเฟอร์ น้อยกว่าหน่วยความจำพร้อมใช้งานกับโปรแกรมประยุกต์อื่น อัตรารับส่งข้อมูลที่ช้าและสายอักขระข้อความขนาดใหญ่ที่เขียนไปยังพอร์ตอนุกรมอาจหมายความว่า คุณต้องการเปลี่ยนค่านี้มีขนาดใหญ่ขึ้น

ต่อไปนี้เป็นตัวอย่างที่แสดงวิธีการตั้งค่าตัวควบคุมสาร และเรียกเลขหมายโทรศัพท์ 555-1234 โดยใช้คำสั่งโมเด็ม Hayes มาตรฐาน

   PUBLIC ComForm
   ComForm = CREATEOBJECT('Form')
   ComForm.AddObject("Testcom","Olecontrol","MSCOMMLib.MSComm")
   ComForm.Testcom.CommPort = 2 && Use Comm2, The second Serial Port.
   ComForm.Testcom.Settings = "14400,N,8,1"  && 14.4 Kbaud, No Parity,
                                             && 8 data Bits, 1 Stop Bit
   ComForm.Testcom.PortOpen = .T.
   ComForm.Testcom.Output = "ATDT555-1234" + chr(13) && Dialing the number
   * The chr(13) is needed to complete the modem command sequence
   ComForm.Testcom.PortOpen = .F.
   ***** End Code *****

หมายเหตุ ถ้าคุณใช้ตัวเลือกนี้ในแอพลิเคชันแล้ว แจกจ่ายแอพลิเคชัน โดยใช้ตัวช่วยสร้างการติดตั้ง Visual FoxPro คุณอาจเห็นข้อผิดพลาดต่อไปนี้เมื่อคุณเรียกใช้แอพลิเคชัน:

โปรแกรมเกิดข้อผิดพลาด OLE รหัสข้อผิดพลาด 0x80040112: สิทธิ์การใช้งานที่เหมาะสมสำหรับคลาสนี้ไม่พบ

หากเกิดข้อผิดพลาดนี้ ให้ดูบทความในฐานความรู้ของ Microsoft ต่อไปนี้:

192693ข้อผิดพลาดของสิทธิ์การใช้งานตัวควบคุม ActiveX ที่เพิ่มขณะรันไทม์