मैं dbus- मॉनीटर के साथ खेलने की कोशिश कर रहा हूं और समझने की कोशिश कर रहा हूं कि Ubuntu के वातावरण में dbus कैसे काम कर रही है। इस संबंध में मेरे कई सवाल हैं:
क्या आप कृपया मुझे बता सकते हैं कि निम्नलिखित को ठीक से कैसे पढ़ा जाए? मैं बड़े विचार को समझता हूं, लेकिन विवरणों को नहीं।
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- मॉनीटर आउटपुट से जो भी पढ़ता हूं
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-python ट्यूटोरियल देखा है और यह सिखाता है कि सभी संकेतों को कैसे सुनना है (न तो इंटरफ़ेस और न ही पथ आदि को निर्दिष्ट करके) लेकिन कैसे तरीकों को ट्रैक करना है जब उन्हें बुलाया जाता है, जैसे dbus-monitor करता है?
यदि आपके पास यह सिखाने का धैर्य है कि यह कैसे काम करता है, तो आपका स्वागत है।