ห้องสมุดสำหรับ Arduino เพื่อแก้ไขปัญหาโครงการ WiFi ด้วยเว็บแอพหรือไคลเอนต์ Telnet พร้อมคำสั่งพิมพ์เช่นอนุกรมมอนิเตอร์


โดยค่าเริ่มต้น Arduino มีความเป็นไปได้ที่ดีบักผ่านพอร์ตอนุกรมเท่านั้น สิ่งนี้มีข้อเสียเล็กน้อย:
ด้วย ESP8266 (NODEMCU) หรือ ESP32 ตอนนี้เรามีการเชื่อมต่อเครือข่าย (WIFI) ซึ่งสามารถใช้สำหรับการสตรีมข้อมูลการดีบักแบบเรียลไทม์
ห้องสมุดนี้เหมาะสำหรับโครงการ IoT ระบบอัตโนมัติในบ้านหุ่นยนต์มือถือ (สามารถดีบั๊กในการเคลื่อนไหวด้วยสายเคเบิล?) หรือโครงการ WiFi อื่น
ในความเป็นจริงห้องสมุดนี้เกิดจากความจำเป็นในการดีบักโครงการ IoT ของระบบอัตโนมัติในบ้าน ในโครงการนี้มีโมดูลกลางและโมดูลเสริมสามโมดูลและสิ่งเหล่านี้อยู่ไกลกัน หนึ่งยากที่จะเข้าถึงภายใต้หลังคาของบ้าน ในการดีบักโครงการนี้พร้อมกับการแลกเปลี่ยนข้อความแบบเรียลไทม์เป็นไปไม่ได้ที่จะทำกับวิธีดั้งเดิมโดยสาย USB
MIP_ESP8266_Library และหุ่นยนต์ ESP32 WiFi ของฉันเป็นตัวอย่างของโครงการที่ใช้ RemotedEbug ดูใน: mip_esp8266_library และ esplorer_v1
RemotedEbug ได้รับการปรับปรุงด้วยการบัฟเฟอร์ไคลเอ็นต์ (เป็นการส่งครั้งล่าสุดคือ <= 10ms) เพื่อหลีกเลี่ยงความล่าช้าอย่างลึกลับของเครือข่าย WiFi บนกระดาน ESP32 และ ESP8266
หมายเหตุ: หากโครงการของคุณไม่ได้ใช้ wifi คุณสามารถใช้ห้องสมุดอื่นของฉันคือห้องสมุด Serialdebug ห้องสมุดนี้ทำงานร่วมกับบอร์ด Arduino ใด ๆ
หมายเหตุ II: ห้องสมุด RemotedEbug เป็นเพียงบอร์ด Espressif เท่านั้นเช่น ESP32 และ ESP8266 หากจำเป็นต้องใช้บอร์ด WiFi อื่นโปรดเพิ่มปัญหาเกี่ยวกับเรื่องนี้และเราจะดูว่าเป็นไปได้ที่จะทำให้พอร์ตสำหรับบอร์ดของคุณหรือไม่
รูปภาพ: ใน RemotedEbugApp (เว็บแอป)

รูปภาพ: ในไคลเอนต์ Telnet

YouTube (RemotedEbug v2):
YouTube (3 การเชื่อมต่อ telnet กับ Remotedebug) v1:
มีส่วนร่วมในการพัฒนาห้องสมุดนี้โดยการสร้างบัญชีบน GitHub
โปรดให้ดาวถ้าคุณพบว่าห้องสมุดนี้มีประโยชน์สิ่งนี้จะช่วยคนอื่นค้นพบมันด้วย
โปรดเพิ่มปัญหาสำหรับปัญหาหรือข้อเสนอแนะ
remotedebugapp beta
ตอนนี้มีที่เก็บข้อมูลอื่น RemotedEbugApp สำหรับสำเนาเว็บแอปในอินเทอร์เน็ต ได้รับการอัปเดตด้วยเว็บแอปเวอร์ชันล่าสุดหลังจากเผยแพร่ในเว็บเซิร์ฟเวอร์: http://joaolopesf.net/remotedebugapp ดาวน์โหลดสำหรับใช้เมื่ออินเทอร์เน็ตออฟไลน์ เนื่องจากเป็นสำเนาท้องถิ่นแอปจะตรวจสอบเวอร์ชันใหม่เป็นระยะ
แอป HTML5 Web App ที่ใช้สำหรับการดีบักในเว็บเบราว์เซอร์แทนไคลเอนต์ Telnet ซึ่งใช้เว็บค็อกเก็ตเพื่อ comunicate
ตอนนี้ RemotedEbug V3 มีเซิร์ฟเวอร์เว็บค็อกเก็ตด้วยเพื่อรองรับการเชื่อมต่อ RemotedEbugApp
RemotedEbugApp อยู่ในเบต้าหากคุณมีปัญหาหรือข้อเสนอแนะใด ๆ โปรดเพิ่มปัญหาเกี่ยวกับเรื่องนี้
การเชื่อมต่อ Telnet ยังคงเป็นสิ่งที่ต้องการหรือการใช้งานอินเทอร์เน็ตออฟไลน์
เวอร์ชัน 2.1.1
เวอร์ชัน 2.0.0
ตอนนี้ RemotedEbug สามารถมีการดีบักซอฟต์แวร์ง่าย ๆ ที่เหมือนกันซึ่งห้องสมุด Serialdebug มี สิ่งนี้ทำเสร็จแล้วการติดตั้งไลบรารีอื่น RemotedEbugger The RemotedEbugger ทำหน้าที่เป็น Add on to Remotedebug เพื่อสนับสนุน addon นี้การเปลี่ยนแปลงของ RemotedeBug นั้นน้อยที่สุดเพียงไม่กี่การโทรกลับที่ทำเพื่อไม่เพิ่มค่าใช้จ่ายเพิ่มเติมให้กับโครงการที่ไม่จำเป็นต้องมีการดีบักเกอร์ หากต้องการข้อมูลเพิ่มเติมโปรดเข้าถึงพื้นที่เก็บข้อมูล RemotedEbugger GitHub
ตอนนี้ remotedebug มีระบบสีใหม่โดยใช้สีมากขึ้นเช่นเดียวกับที่ทำใน Serialdebugapp
หมายเหตุ: เนื่องจากไลบรารี RemotEdeBug จะย้ายไปยังรูปแบบ Arduino 1.5 พร้อมโฟลเดอร์ "SRC" โปรดลบและติดตั้งไลบรารีใหม่เพื่อหลีกเลี่ยงการทำซ้ำไฟล์แหล่งที่มาของ RemotedEbug
เวอร์ชัน 1.5.*
ในเวอร์ชัน 1.5.0 เรามีการดีบัก* และ rdebug* มาโคร (ดูด้านล่าง) ที่ใส่โดยอัตโนมัติชื่อของฟังก์ชั่นที่เรียกและ Core ID (Core ID มีไว้สำหรับ ESP32 เท่านั้น)
Serialdebug ดีกว่า Arduino เริ่มต้นการดีบักโดย serial.print คำสั่ง:
การดีบักหรือไม่ผ่านสาย USB คำสั่ง serial.print ได้รับการประมวลผลตลอดเวลา CPU ของเสียในไมโครคอนโทรลเลอร์ กล่าวอีกนัยหนึ่งคำสั่งการดีบักจะถูกประมวลผลโดยมีคนเชื่อมต่อในอนุกรมหรือไม่
ด้วย remotedebug เอาต์พุตการดีบักทั้งหมดจะถูกประมวลผลเฉพาะในกรณีที่มีใครดีบั๊กผ่านการเชื่อมต่อ telnet หรือเว็บแอป
และด้วยระดับการดีบักของทรัพยากรปริมาณที่แสดงของข้อความจะลดลงในระดับที่สูงขึ้น ตัวอย่างเช่นประมวลผลข้อความทั้งหมดหากระดับต่ำที่สุด verbose
RemotedeBug ได้รับการปรับเปลี่ยนเพื่อลดค่าโสหุ้ยใน CPU และหน่วยความจำและรวมถึงคุณสมบัติการบัฟเฟอร์ไคลเอ็นต์
ในระหว่างการพัฒนาเราสามารถใส่ข้อความการดีบักได้มากมาย ...
แต่ด้วย remotedebug เราสามารถวางระดับในแต่ละอัน
สำหรับข้อความทั้งหมด (ยกเว้นระดับเสมอ (debuga) หรือข้อผิดพลาด (debuge) ข้อความจะถูกประมวลผลเท่านั้นและแสดงให้เห็นหากระดับการดีบักเท่ากันหรือสูงกว่าระดับไอที
RemotedEbug มี 6 ระดับการดีบักตามลำดับความสำคัญ:
แสดงให้เห็นเสมอ:
ข้อผิดพลาด : ข้อผิดพลาดที่สำคัญ
เสมอ : ข้อความสำคัญ
ระดับอื่น (แสดงให้เห็นว่าระดับเท่ากันหรือสูงกว่าระดับจริง):
คำเตือน : เงื่อนไขข้อผิดพลาด แต่ไม่สำคัญ
ข้อมูล : ข้อความข้อมูล
การดีบัก : ข้อมูลเพิ่มเติม
verbose : ข้อมูลเพิ่มเติมมากกว่าปกติ
ดังนั้นเราสามารถเปลี่ยนระดับเป็น verbose เพื่อดูข้อความทั้งหมด หรือเพื่อแก้ไขข้อบกพร่องเพื่อดูการดีบักหรือระดับสูงกว่า ฯลฯ
เป็นสิ่งที่ดีมากที่จะลดปริมาณข้อความที่โครงการสามารถสร้างได้เพื่อช่วยในการดีบัก
RemotedeBug มีตัวแปลงเพื่อช่วยย้ายรหัส Arduino ของคุณจาก serial.prints ไปยังห้องสมุดนี้
remotedebugconverter
แม้ว่าคุณจะต้องการทำสิ่งนี้ด้วยตนเอง แต่ก็ง่ายมาก โปรดดูหัวข้อโดยใช้ด้านบน
การดีบักง่ายๆ:
debugV ( " * Run time: %02u:%02u:%02u (VERBOSE) " , mRunHours , mRunMinutes , mRunSeconds );สามารถสร้างผลลัพธ์นี้ในการตรวจสอบอนุกรม:
(V p:3065 loop C1) * Run time: 00:41:23 (VERBOSE)
Where: V: is the level
p: is a profiler time, elased, between this and previous debug
loop: is a function name, that executed this debug
C1: is a core that executed this debug (and a function of this) (only for ESP32)
The remaining is the message formatted (printf)
สำหรับ ESP32 ID หลักในการดีบักแต่ละครั้งนั้นดีมากสำหรับการเขียนโปรแกรม Multicore Optimizer
ตัวอย่างเช่น:
แสดงความช่วยเหลือ ( ? )
เปลี่ยนระดับของการดีบัก ( V , D , I , W , E ) เพื่อแสดงข้อความน้อยลงหรือมากกว่า
ดูหน่วยความจำ ( M )
รีเซ็ตบอร์ด ( รีเซ็ต )
ดูเกี่ยวกับคำสั่ง remotedebug ด้านล่าง
คุณสามารถเพิ่มคำสั่งของคุณเองดูตัวอย่างได้โปรด
หากโครงการของคุณติดตั้ง RemotedEbugger มีคำสั่งใหม่เช่นการเรียกใช้ฟังก์ชันดู/เปลี่ยนตัวแปร ...
ตอนนี้ remotedebug (เวอร์ชัน> = 2.0.0) มีซอฟต์แวร์ Debuggger อย่างง่ายตามรหัสของห้องสมุด Serialdebug
นี่เป็นห้องสมุดอื่นที่ทำหน้าที่เป็น addon to remotedebug
โปรด Acess ที่เก็บข้อมูล RemotedEbugger ไปยังข้อมูลเพิ่มเติม: RemotedEbugger
For release your device, just uncomment DEBUG_DISABLED in your project
Done this, and no more debug processing.
And better for DEBUG_DISABLED, __RemoteDebug__ have ZERO overhead,
due is nothing of this is compiled.
ในฐานะ Serialdebug ตอนนี้ RemotedEbug (V3) มีแอพ RemotedEbugApp เพื่อทำการดีบักในเว็บเบราว์เซอร์
แอพนี้เป็นแอป HTM5 Web ที่มี WebSocket เพื่อ Comunicate to Arduino Board
สำหรับมัน RemotedEbug V3 มีเซิร์ฟเวอร์เว็บซ็อกเก็ต (สามารถปิดใช้งานได้) มันใช้สำเนา Local ของห้องสมุด Arduinowebsockets เนื่องจากไม่ได้อยู่ใน Arduino Library Manager
ในฐานะที่เป็นเว็บเพจขนาดใหญ่บนเว็บเซิร์ฟเวอร์โซลูชันสำหรับ Arduino จะบันทึกไว้ในที่เก็บข้อมูลเช่น Spiffs แต่ไม่มีการอัปเดตเวอร์ชันใหม่โดยอัตโนมัติในข้อมูลที่บันทึกด้วยวิธีนี้ข้อมูล Spiffs นี้ดีสำหรับโครงการ แต่ไม่ใช่สำหรับไลบรารี
เนื่องจากแอพนี้ไม่ได้รับการจัดเก็บและเสิร์ฟโดยบอร์ดแทนแอพอยู่ในเว็บ: http://joaolopesf.net/remotedebugapp หมายเหตุ: สิ่งนี้ไม่ได้ใช้ SSL (https), ช่องเสียบเว็บเซิร์ฟเวอร์เนื่องจาก Arduino ไม่รองรับ SSL (WSS) แต่หลังจากโหลดหน้าเว็บการรับส่งข้อมูลทั้งหมดอยู่ในเครือข่ายท้องถิ่นจะไม่มีการเปิดเผยข้อมูลบนอินเทอร์เน็ต
RemotedEbugApp เป็น HTML5 ที่ทันสมัยและต้องการเบราว์เซอร์ที่ทันสมัยในการทำงาน Internet Explorer 11 และ Safari 10 เป็นตัวอย่างที่ไม่รองรับ แต่คุณสามารถใช้ another เป็นโครเมี่ยม, ขอบ, Firefox
เว็บแอปอยู่ในเบต้าโปรดเพิ่มปัญหาสำหรับปัญหาหรือข้อเสนอแนะ
ตอนนี้มีที่เก็บข้อมูลอื่น RemotedEbugApp สำหรับสำเนาเว็บแอปในอินเทอร์เน็ต ได้รับการอัปเดตด้วยเว็บแอปเวอร์ชันล่าสุดหลังจากเผยแพร่ในเว็บเซิร์ฟเวอร์: http://joaolopesf.net/remotedebugapp ดาวน์โหลดสำหรับใช้เมื่ออินเทอร์เน็ตออฟไลน์ เนื่องจากเป็นสำเนาท้องถิ่นแอปจะตรวจสอบเวอร์ชันใหม่เป็นระยะ ๆ สำหรับคุณสามารถดาวน์โหลดเวอร์ชันใหม่ได้
Telnet ยังคงใช้งานได้เมื่อต้องการสิ่งนี้หรือล้มเหลวในเว็บแอป
Telnet เป็นวิธีมาตรฐานในการเชื่อมต่อกับเซิร์ฟเวอร์จากระยะไกลและรองรับในระบบปฏิบัติการทั้งหมด (Windows, Mac, Linux ... )
MacOSX และ Linux มีไคลเอนต์ Telnet ดั้งเดิม
สำหรับ Windows ไคลเอนต์ Telnet ทั่วไปคือ Putty : Putty
มีเครื่องมือที่ดีสำหรับโทรศัพท์มือถือ: The Fing โปรดค้นหาในร้านค้ามือถือของคุณ แสดงอุปกรณ์ทั้งหมดใน Local Network (WiFi) แสดงพอร์ตที่เปิดและสามารถเรียกใช้งานไคลเอนต์ Telnet ได้เช่นกัน (แอปภายนอก)
RemotedEbug ตั้งค่าเซิร์ฟเวอร์ Telnet ซึ่งกำลังฟังไคลเอนต์ Telnet ที่ต้องการเชื่อมต่อ หลังจากการเชื่อมต่อการบันทึกจะถูกสตรีมไปยังไคลเอนต์ Telnet
RemotedEbug นั้นใช้งานง่ายมากหลังจากรหัสเริ่มต้นสองสามบรรทัดคุณสามารถใช้คำสั่ง "พิมพ์" ที่รู้จักกันดีเพื่อสตรีมการเข้าสู่ระบบของคุณไปยังไคลเอนต์ระยะไกล
RemotedEbug รองรับการกรองการบันทึกตาม ระดับการดีบัก :
แสดงเฉพาะระดับการดีบักจริง:
หมายเหตุ: ระดับเหล่านี้อยู่ในลำดับของการบันทึกมากที่สุด-> การบันทึกน้อยที่สุด
หรือแสดงเสมอ (ไม่ขึ้นอยู่กับระดับการดีบักจริง):
หมายเหตุ: การดีบักทั้งหมดจะถูกประมวลผลและแสดงเฉพาะเมื่อมีการเชื่อมต่อไคลเอนต์
ไคลเอนต์ Telnet หรือเว็บแอปสามารถตั้งค่าระดับการดีบักได้โดยพิมพ์คำสั่งง่ายๆสองสามคำ
RemotedeBug มีตัวสร้างโปรไฟล์ง่าย ๆ สามารถเปิดใช้งานได้โดยไคลเอนต์ที่เชื่อมต่อ (Telnet หรือ Web App) หรือรหัส Arduino เอง
เมื่อเปิดใช้งานจะแสดงเวลาระหว่าง 2 คำสั่งการดีบักโดยใช้สีที่แตกต่างกันขึ้นอยู่กับเวลาที่ผ่านไป
ตัวอย่างทั่วไปคือการแทรกการบันทึกก่อนและหลังฟังก์ชั่นหลังจากนั้นคุณจะเห็นว่าใช้จ่ายเท่าใดในฟังก์ชั่น
RemotedEbug ได้รับการออกแบบมาเพื่อให้ค่าใช้จ่ายน้อยที่สุด (เชื่อมต่อหรือไม่) และการดีบักกระบวนการเท่านั้นหากมีไคลเอนต์ (Telnet หรือ Web App) เชื่อมต่อ
RemotedEbug รองรับคำสั่งที่กำหนดเองที่สามารถป้อนในไคลเอนต์ (Telnet หรือ Web App) สิ่งเหล่านี้กระตุ้นการดำเนินการของฟังก์ชั่นที่กำหนดเองในรหัส Arduino ตัวอย่างเช่นสิ่งนี้สามารถใช้เพื่อส่งสถานะกลับตามคำขอของลูกค้า
เวอร์ชันปัจจุบันของ RemotEdeBug ยังไม่รวมการตรวจสอบความถูกต้องที่เข้ารหัสเฉพาะข้อความธรรมดาและมีไว้สำหรับการพัฒนาเท่านั้นไม่ได้ใช้ในการผลิต/การเปิดตัว
รุ่นในอนาคตหากเป็นไปได้จะมีวิธีที่ปลอดภัยสำหรับการตรวจสอบสิทธิ์และการทดสอบเพิ่มเติมเพื่อรองรับสภาพแวดล้อมการผลิต
- An app to RemoteDebug like SerialDebug have.
- Http page to begin/stop the telnet server or websocket server.
- Authentication as telnet support (kerberos, etc.) to support production environment
เพียงดาวน์โหลดหรือโคลนที่เก็บนี้
หรือสำหรับ Arduino IDE คุณสามารถใช้ Library Manager เพื่อติดตั้งและอัปเดตไลบรารี
สำหรับความช่วยเหลือในการติดตั้งโปรดคลิกที่สิ่งนี้:
สำหรับ IDE อื่นหรือไม่ได้ใช้ Library Manager ของ Arduino IDE ฉันขอแนะนำให้คุณใช้แอพเดสก์ท็อป GitHub เพื่อโคลนมันช่วยปรับปรุงต่อไป
กรุณาเปิดโครงการในโฟลเดอร์ตัวอย่างเพื่อดูว่ามันใช้งานได้
# include " RemoteDebug.h " // https://github.com/JoaoLopesF/RemoteDebugRemotedebug Debug;
ในฟังก์ชั่นการตั้งค่าหลังจากการเริ่มต้น WiFi
// Initialize the server (telnet or web socket) of RemoteDebug
Debug.begin(HOST_NAME);
// OR
Debug.begin(HOST_NAME, startingDebugLevel);
// Options
Debug.setResetCmdEnabled( true ); // Enable the reset command
// Debug.showProfiler(true); // To show profiler - time between messages of Debug
หมายเหตุ: หากต้องการเปิดใช้งานดีบักเกอร์โดย RemotedEbugger โปรด acess ที่เก็บ GitHub นี้: RemotedEbugger
ในหางของฟังก์ชั่นลูป
// Remote debug over WiFi
Debug.handle();
// Or
debugHandle (); // Equal to SerialDebug
ในสถานที่ใด ๆ ของรหัสของคุณ:
# ifndef DEBUG_DISABLED
if (Debug.isActive(Debug.<level>)) {
Debug. printf ( " bla bla bla: %d %s " , number, str); // OR
Debug. printf ( " bla bla bla: %d %s " , number, str. c_str ()); // Note: if type is String need c_str() // OR
Debug. println ( " bla bla bla 2 ln " );
Debug. printf ( " float: %f n " , value); // Not works in ESP8266 :-(
// Note: to show floats with printf (ESP8266 only),
// you can use my ArduinoUtil library -> https://github.com/JoaoLopesF/ArduinoUtil
Debug. printf ( " float: %s n " , Util. formatFloat (value, 0 , 5 ). c_str ());
}
# endifหมายเหตุ: การใช้ isactive คุณต้องล้อมรอบรหัสโดยเงื่อนไข preompile debug_disable เพื่อหลีกเลี่ยงการรวบรวมสำหรับการผลิต/การเปิดตัว
หรือวิธีสั้น ๆ (เท่ากับ serialdebug) (ต้องการถ้ามีการดีบักเพียงครั้งเดียวในเวลา):
debugA ( " This is a any (always showed) - var %d " , var);
debugV ( " This is a verbose - var %d " , var);
debugD ( " This is a debug - var %d " , var);
debugI ( " This is a information - var %d " , var);
debugW ( " This is a warning - var %d " , var);
debugE ( " This is a error - var %d " , var);
debugV ( " This is a println " );หรือหากโครงการของคุณใช้คำสั่ง serial.print หลายคำเพื่อสร้างข้อความการดีบักเดียวเช่น:
Serial.print( " a = " );
Serial.print(a);
Serial.print( " b = " );
Serial.print(b);
Serial.print( " c = " );
Serial.println(c);สามารถใช้ rdebug* มาโคร:
rdebugV ( " a = " );
rdebugV (a);
rdebugV ( " b = " );
rdebugV (b);
rdebugV ( " c = " );
rdebugVln (c);หมายเหตุ: ในอนาคตฉันขอแนะนำให้คุณอพยพสิ่งนี้ไปยังคำสั่งดีบั๊กเดียว:
debugV (a = %d b = %d c = %d " , a, b, c);ตัวอย่างของการใช้งานระดับการดีบัก: (สมมติว่าข้อมูลเป็นอักขระจำนวนมาก)
if (Debug.isActive(Debug.VERBOSE)) { // Debug message long
Debug. printf ( " routine: data received: %s n " , data. c_str ()); // Note: if type is String need c_str()
} else if (Debug.isActive(Debug.DEBUG)) { // Debug message short
Debug. printf ( " routine: data received: %s ... n " , data. substring ( 0 , 20 ). c_str ()); // %.20s not working :-|
}เริ่มต้นที่เวอร์ชัน 1.5.0, macros debug (debug* และ rdebug*) ใส่ชื่อของฟังก์ชั่นที่เรียกว่ามาโครและ Core ID โดยอัตโนมัติ (Core ID เท่านั้นสำหรับ ESP32)
ดังนั้น:
void foo () {
uint8_t var = 1 ;
debugV ( " this is a debug - var %u " , var);
}
It will show in client (telnet or web app):
(V p:^0000ms) (foo)(C1) this is a debug - var 1
Where:
V -> verbose
p -> profiler time
(foo) -> this is a function name that calls the debug macro
(C1) -> It is running it Core 1 (only for ESP32)
ตัวอย่างการดีบักใช้งานที่เปิดใช้งานอนุกรม
Useful to see messages if setup or
in cause the ESP8266/ESP32 is rebooting (client connection stop before received all messages)
Only for this purposes I suggest it
// Setup after Debug.begin
Debug.setSerialEnabled( true ); // All messages too send to serial too, and can be see in serial monitorสำหรับการลดค่าโสหุ้ย RemotEdeBug จะตัดการเชื่อมต่อไคลเอนต์ (Telnet หรือ Web App) หากไม่ได้ใช้งาน
- Please press enter or any key if you need keep the connection
- The default is 5 minutes (You can change it in RemoteDebug.h)
- You can use mDNS to register each node with different name, it helps to connect without know the IP.
โปรดอย่าลืมใช้ถ้าประโยคกับ debug.isactive (หากไม่ได้ใช้แมโครดีบั๊ก)
---> This is very important to reduce overheads and work of debug levels
โปรดดูตัวอย่างพื้นฐานหรือขั้นสูงเพื่อเรียนรู้วิธีการใช้
ในตัวอย่างขั้นสูงฉันใช้ Wifimanager Library, Arduinoota และ MDNS โปรดดู
- Ajustment on debugA macro, thanks @jetpax and @cmidgley to add this issue.
- All public configurations (#defines) have moved to RemoteDebugCfg.h, to facilitate changes for anybody.
- Changed examples, with warnings on change any #define in project,
with workarounds if it not work. (thanks to @22MarioZ for added this issue)
- Adjustments if web socket is disabled
- Adjustments in examples, added one for debugger
- Adjustments in silente mode
- Commands from RemoteDebugApp now is treated
- Adjusts to RemoteDebugger support connection by web sockets
- If not disabled, add a web socket server to comunicate with RemoteDebugApp (HTML5 web app)
- The standard telnet still working, to debug with internet offline
- Ajustment on debugA macro, thanks @jetpax to add this issue
- Add empty rprint* macros, if debug is disabled
- Create option DEBUG_DISABLE_AUTO_FUNC
- Create macros to be used for code converter: rprint and rprintln
RemoteDebug now have an code converters to help migrate codes
- Create precompiler DEBUG_DISABLED to compile for production/release,
equal that have in SerialDebug
- Adjustments in examples
- Adjustments for the debugger: it still disable until dbg command, equal to SerialDebug
- The callback will to be called before print debug messages now
- And only if debugger is enabled in RemoteDebugger (command dbg)
- Changed handle debugger logic
- Added support to RemoteDebug addon library: the RemoteDebugger, an simple software debugger, based on SerialDebug
- New color system
- Bug -> sometimes the command is process twice
- Workaround -> check time
- New macros to compatibility with SerialDebug (can use RemoteDebug or SerialDebug) thanks to @phrxmd
- Fixed bug for MAX_TIME_INACTIVE, thanks to @achuchev to add this issue
- Adjustments based on pull request from @jeroenst (to allow serial output with telnet password and setPassword method)
- Serial output is now not allowed if telnet password is enabled
- Few adjustments
- Few adjustment in write logic
- Serial output adjustments (due bug in password logic)
- Correct rdebug macro (thanks @stritti)
- New silent mode (command s)
- Auto function name and ESP32 core id for rdebug* macros
- begin method have a option for port number
- Few adjustments
- Added new rdebug?ln to put auto new line
- Simple text password request feature (disabled by default)
Notes:
It is very simple feature, only text, no cryptography,
and the password is echoed in screen (I not discovery yet how disable it)
telnet use advanced authentication (kerberos, etc.)
Such as now RemoteDebug is not for production (releases),
this kind of authentication will not be done now.
- Adjustments in precompiler macros
- Bug in write with latest ESP8266 SDK
- Port number can be modified in project Arduino (.ino file)
- Few adjustments as ESP32 includes
- Adjustments, as avoid ESP32 include errors
- Telnet port of server can be modified by project
Just put it in your .ino, before the include:
- Shortcuts and client buffering to avoid mysterious delay of ESP networking
- Adjustments and now runs in Esp32 too.
- Adjustments and improvements from Beta versions.
New features:
- Filter
- Colors
- Support to Windows telnet client
- First Beta
- Sometimes (rarely) the connection over telnet becomes very slow.
Especially right after uploading firmware.
Reset command in telnet connection or turn off/on can be resolve it.
But I need find why it occurs
First thanks a lot for Igrr for bring to us the Arduino ESP8266 and to Espressif to Arduino ESP32
Thanks to Links2004 for a good web server socket, used for web app connection.
For the logo: thanks to a freepik and pngtree sites for free icons that have in logo
Resources:
- Example of TelnetServer code in http://www.rudiswiki.de/wiki9/WiFiTelnetServer
- arduinoWebSockets library in https://github.com/Links2004/arduinoWebSockets
กดเคาน์เตอร์ในไฟล์นี้เริ่มต้นที่ 2019-03-03: