ผู้เขียน หัวข้อ: การพัฒนา Plugin สำหรับ KidBright | Part 0.1 : โครงสร้างของ Plugin  (อ่าน 2516 ครั้ง)

Watchara A.

  • Administrator
  • Sr. Member
  • *****
  • กระทู้: 323
  • Point: +0/-0
  • E25FGL / (alias : E22MHS,E22AAA)
    • ดูรายละเอียด
    • TSE Official Web
จากบทความที่แล้ว [http://quantum.engr.tu.ac.th/smf/index.php?topic=81.0]
พบว่า Plugin ของ KidBright ที่สามารถติดตั้งเพิ่มเติมได้ จะอยู่ที่ %LocalAppData%/KidBright/app-1.0.0/resources/app/kbide/plugins
(ศึกษาวิธีการเปิด จากลิงค์กระทู้ที่แล้ว)

บทความนี้จะแนะนำโครงสร้างของ Plugin ในแต่ละส่วนให้ทุกท่านทราบ โดยยกตัวอย่าง Plugins จอแสดงผล (display)

- display (โฟลเดอร์) 
           # lcd_i2c (โฟล์เดอร์)
                      msg (โฟล์เดอร์)
                              en.js (ไฟล์)
                              th.js (ไฟล์)
                      blocks.js (ไฟล์)
                      generators.js (ไฟล์)
                      lcd_i2c.cpp (ไฟล์)
                      lcd_i2c.h (ไฟล์)
           # lcd_spi (โฟล์เดอร์)
                      msg (โฟล์เดอร์)
                                 en.js (ไฟล์)
                                 th.js (ไฟล์)
                      blocks.js (ไฟล์)
                      generators.js (ไฟล์)
                      lcd_spi.cpp (ไฟล์)
                      lcd_spi.h (ไฟล์)

โดยแต่ละไฟล์และโฟล์เดอร์ จะมีความสำคัญและมีหน้าที่ ดังนี้
  • โฟล์เดอร์ display :: ใช้เก็บ Plugins, ชื่อโฟล์เดอร์มีความสำคัญมาก และต้องสอดคล้องกับไฟล์ display.json ด้านในโฟล์เดอร์
  • โฟล์เดอร์ msg :: ใช้เก็บข้อความสำหรับแสดงบนบล็อกใน KidBright IDE ทำให้การเขียนโปรแกรมครั้งเดียว สามารถแสดงได้ทุกภาษา (คล้ายกับ Translate, Translation ใน Opensource Software ต่างๆ)
  • ไฟล์ en.js :: ไฟล์ข้อความภาษาอังกฤษ
  • ไฟล์ th.js :: ไฟล์ข้อความภาษาไทย
  • ไฟล์ block.js : ไฟล์สำหรับการสร้าง Block ในการใช้งาน Function ต่างๆบน KidBright IDE สามารถสร้าง Sourcecode นี้ได้จากโปรแกรมสำเร็จรูป
  • ไฟล์ generator.js :: ไฟล์ Generator เพื่อเชื่อมโยงการต่อ Block INPUT/OUTPUT ต่างๆบนโครงสร้าง Block เพื่อใช้ในกระบวนการ C Code Generator
    สังเกตุได้จาก กระบวนการ parse ของ INPUT ต่างๆ และการ return ค่าเป็นฟังก์ชั่นที่คุ้นเคยในการเรียกใช้ Library ใน C++ ซึ่งการ return นี้จะไปปรากฏใน Sourcecode ที่จะถูก Deply ไปยัง KidBright32
  • ไฟล์ lcd_i2c.cpp หรือ lcd_spi.cpp :: ไฟล์ Sourcecode ในรูปแบบ C++ อาจเป็น Library เดิมของอุปกรณ์นั้นๆ ที่จะนำมาทำ Plugins
  • ไฟล์ lcd_i2c.h หรือ lcd_spi.h :: ไฟล์ Header ของ lcd_i2c.cpp
« แก้ไขครั้งสุดท้าย: พฤศจิกายน 11, 2018, 07:49:39 PM โดย Watchara A. »
วัชระ อมศิริ
คณะวิศวกรรมศาสตร์ มหาวิทยาลัยธรรมศาสตร์
99 หมู่ 18 ตำบลคลองหนึ่ง อำเภอคลองหลวง
จังหวัดปทุมธานี 12120
awatchar@engr.tu.ac.th

หมายเหตุ : การแนะนำทางเทคนิคต่างๆ เป็นการแนะนำอย่างง่ายให้มีความเหมาะสมกับการนำไปใช้ของนักเรียน อาจอธิบายไม่ถูกต้องชัดเจนตามหลักวิชาการ ขออภัยมา ณ ที่นี้