เริ่มโฟลว์ที่ตั้งค่าไว้ให้ทำงานพร้อมโฟลว์หลัก ส่งข้อความได้ทันทีเมื่อคำสั่งคืนค่า มีโฟลว์เบื้องหลังได้สูงสุดสองโฟลว์ และโฟลว์เหล่านี้เริ่มโฟลว์อื่นได้
ชื่อเดียวกันเรียกซ้ำไม่ได้ แม้กำลังพักหรือหยุด ชื่อผิดหรือซ้ำ จำนวนโฟลว์เต็ม หรือโฟลว์เกิดข้อผิดพลาดจะหยุด Run ทั้งหมด System.stop () และ Main Stop ก็หยุดทุกโฟลว์
โฟลว์หลักรอโฟลว์เบื้องหลังก่อนจบ Run จึงต้องสั่งหยุดโฟลว์ที่วนไม่สิ้นสุด ข้อมูลเริ่มต้นถูกคัดลอกตามขีดจำกัดของ Flow.send ()
รูปแบบคำสั่ง Flow.start(name, params=None)ค่าที่ส่งกลับ Int — เลขบวกที่เพิ่มขึ้นทุกครั้งที่เริ่ม ใช้ในสถานะบน dock และบันทึก ไม่สามารถใช้เลขนี้ควบคุมโฟลว์ได้
ตัวอย่าง # เริ่มการตรวจจับและ telemetry ข้าง main flow
recognition_no = Flow.start("recognition", {"region": "arena", "threshold": 0.86})
telemetry_no = Flow.start("telemetry")
# อ่านอินพุตที่คัดลอกของ branch นี้ภายใน flow ตรวจจับที่ตั้งค่าไว้
region_name = Flow.params.get("region", "full_screen")
threshold = Flow.params.get("threshold", 0.8)ส่งสำเนาแยกอิสระไปยังโฟลว์ที่กำลังทำงานโดยไม่รอ หลายโฟลว์ส่งข้อความได้อย่างปลอดภัย และรับข้อความตามลำดับที่ส่ง รวมถึงขณะพัก ค่าที่ใช้ได้คือ None, Boolean, จำนวนจำกัด, String , list , tuple และ dict ที่มีคีย์เป็น String ซ้อนกันได้ลึกไม่เกิน 8 ชั้น มีค่ารวมไม่เกิน 512 ค่า และข้อความยาวรวมไม่เกิน 65536 ฟังก์ชัน ออบเจ็กต์ทรัพยากรหรือของแอป และการอ้างอิงวนทำให้เกิดข้อผิดพลาด ทุกครั้งที่เริ่มมีคิวข้อความใหม่ ข้อความที่ยังไม่อ่านจะถูกทิ้งเมื่อโฟลว์หยุดหรือจบ
ค่าที่ส่งกลับ Boolean — True เมื่อรับข้อความแล้ว False เมื่อไม่รู้จักเป้าหมาย เป้าหมายไม่ทำงานหรือกำลังหยุด
ตัวอย่าง # ส่งคำสั่ง ARM ให้ watcher ที่ตั้งค่าไว้
Flow.start("watch_enemy")
accepted = Flow.send("watch_enemy", {"command": "ARM"})
print(accepted)รอแล้วนำข้อความเก่าสุดของโฟลว์นี้ออกมา โฟลว์หลักและโฟลว์เบื้องหลังรับข้อความได้ กลุ่มที่มีชื่อซึ่งทำงานซ้อนในโฟลว์เดียวกันใช้คิวร่วมกับโฟลว์นั้น
การยกเลิกทำให้หยุดรอทันที Pause เก็บข้อความในคิวไว้ list และ dict ที่ได้รับเป็นสำเนาอิสระ
รูปแบบคำสั่ง Flow.receive(timeout=None)ค่าที่ส่งกลับ Any? — ข้อความที่เก่าที่สุด หรือ None เมื่อหมดเวลารอหรือเมื่อตรวจทันทีแล้วไม่มีข้อความ ข้อความที่มีค่า None ก็คืนค่า None เช่นกัน
ตัวอย่าง # โฟลว์ watch_enemy ที่ตั้งค่าไว้: รอ ARM แล้วตรวจคำสั่งระหว่างทำงาน
message = Flow.receive()
if message is not None and message.get("command") == "ARM":
while True:
command = Flow.poll()
if command is not None:
print(command)
if Region().find("enemy", timeout=0).found:
print("enemy")
wait(100)รับข้อความที่เก่าที่สุดของโฟลว์นี้ทันทีโดยไม่รอ ใช้คิวข้อความและสำเนาแยกอิสระเช่นเดียวกับ Flow.receive ()
ค่าที่ส่งกลับ Any? — ข้อความที่เก่าที่สุด หรือ None เมื่อไม่มีข้อความ ข้อความที่มีค่า None ก็คืนค่า None เช่นกัน
ตัวอย่าง # ตรวจคำสั่งโดยไม่รอ
message = Flow.poll()
if message is not None:
print(message)ตรวจว่าโฟลว์ตามชื่อกำลังทำงานหรือพักอยู่ ผลอาจเปลี่ยนทันทีหลังเรียก
ค่าที่ส่งกลับ Boolean — True ขณะทำงาน False เมื่อไม่รู้จัก กำลังหยุดหรือจบแล้ว
ตัวอย่าง print(Flow.running("watch_enemy"))ขอหยุดโฟลว์เบื้องหลังหนึ่งโฟลว์และคืนค่าโดยไม่รอเก็บกวาด โฟลว์หลักและโฟลว์อื่นยังทำงาน คำสั่งนี้หยุดโฟลว์หลักไม่ได้ การหยุดตัวเองทำให้โฟลว์ผู้เรียกจบ
สำหรับกลุ่มที่มีชื่อซ้อนอยู่ จะหยุดโฟลว์เบื้องหลังที่ครอบกลุ่มนั้น รอเก็บกวาดเสร็จก่อนเรียกชื่อเดิมอีกครั้ง
Dock เบื้องหลังมี Pause/Resume ส่วน Main Pause/Resume มีผลทุกโฟลว์ และ Main Resume ล้างการพักแยกของทุกโฟลว์ด้วย
ค่าที่ส่งกลับ Boolean — True เมื่อเพิ่งขอหยุด False เมื่อเป้าหมายไม่มี ไม่รู้จัก กำลังหยุดหรือเป็น main True ไม่ยืนยันว่าเก็บกวาดเสร็จ
ตัวอย่าง print(Flow.stop("watch_enemy"))