ฉันกำลังเล่นกับdbus-monitorเพื่อลองและเข้าใจว่า dbus ทำงานอย่างไรในสภาพแวดล้อมของ Ubuntu ฉันมีคำถามหลายข้อในเรื่องนี้:
คุณช่วยบอกให้ฉันรู้วิธีการอ่านอย่างถูกต้องได้ไหม ฉันเข้าใจความคิดที่ยิ่งใหญ่ แต่ไม่ใช่รายละเอียด
signal sender=:1.1948 -> dest=(null destination) serial=1829990 path=/org/ayatana/menu/DA00003; interface=org.ayatana.dbusmenu; member=ItemPropertyUpdated int32 23 string "enabled" variant boolean true method call sender=:1.6 -> dest=org.freedesktop.Notifications serial=1399 path=/org/freedesktop/Notifications; interface=org.freedesktop.Notifications; member=GetCapabilities
ฉันได้ว่าอันแรกเป็นสัญญาณในขณะที่อันที่สองเป็นวิธี ไม่ปลายทางหมายความว่าสามารถมีได้เฉพาะรับ / ช่องสัญญาณหรือไม่? เป็นสิ่งที่สมาชิก ? และรายการของรายการต่อไปนี้สัญญาณข้อโต้แย้งที่ผ่านในสัญญาณหรือไม่ สิ่งที่เป็นผู้ส่งและสิ่งพิมพ์ต่อเนื่อง ?
ฉันสังเกตเห็นบางอย่างเกี่ยวกับความสัมพันธ์ระหว่างการควบคุมระดับเสียงและการแจ้งเตือน จากสิ่งที่ฉันอ่านจากเอาต์พุต dbus-monitor
method call sender=:1.6 -> dest=org.freedesktop.Notifications serial=1400 path=/org/freedesktop/Notifications; interface=org.freedesktop.Notifications; member=Notify string "gnome-settings-daemon" uint32 0 string "notification-audio-volume-medium" string " " string "" array [ ] array [ dict entry( string "value" variant int32 38 ) dict entry( string "x-canonical-private-synchronous" variant string "volume" ) ] int32 -1
ดูเหมือนว่าการแจ้งเตือนจะดำเนินการโดยวิธีการของมัน ฉันแค่ไม่เข้าใจจริงๆว่าทำไมมันถึงทำงานแบบนี้ ในมุมมองของฉันมันจะสมเหตุสมผลถ้ามีสัญญาณที่ปล่อยออกมา"การแจ้งเตือน - เสียง - ระดับเสียง - กลาง"ในขณะที่การแจ้งเตือนจะฟังสัญญาณนี้และตอบสนองตามนั้น หากการส่ง / รับเป็นสาธารณะมากกว่าส่วนตัวจะไม่อนุญาตให้มีความยืดหยุ่นและประสิทธิภาพมากขึ้นใช่ไหม เช่นหากมีสัญญาณสาธารณะสำหรับ"การแจ้งเตือน - เสียง - ปริมาณ - สื่อ" แอพพลิเคชั่นหลายตัวสามารถฟังสัญญาณนี้ (ซึ่งจะช่วยให้แอปพลิเคชั่นแจ้งเตือนการแข่งขันมีอยู่) และนักพัฒนาจะต้องกังวลเกี่ยวกับการส่งสัญญาณในขณะที่การหยิบขึ้นมาและจัดการสัญญาณจะเป็นธุรกิจของแอปพลิเคชัน โปรแกรมที่ต้องการสัญญาณเหล่านั้น)
ฉันเพิ่งใหม่กับ Dbus และต้องการเรียนรู้เพิ่มเติมขณะที่ฉันทำงานกับ Dbus บน Python เพื่อพัฒนาแอปเพล็ตเป็นหลัก ฉันได้เห็นการสอนของ dbus-pythonแล้วและมันสอนวิธีการฟังสัญญาณทั้งหมด (โดยการระบุทั้งอินเตอร์เฟสหรือพา ธ ฯลฯ ) แต่จะติดตามวิธีการเมื่อมีการเรียกเช่นเดียวกับ dbus-monitor
หากคุณมีความอดทนในการสอนวิธีการทำงานคุณก็ยินดีต้อนรับ