<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ## **基類介紹**: 基類文件位于自美系統目錄`/python/`下,文件名為:`MsgProcess.so` 自美系統采用多進程消息通訊模式架構,每一個模塊間通信需要繼承基類來實現進程中的標準通信。 >其保護代碼安全和穩定自美系統基類進行了C化封裝,這樣做也優化了Python語言處理速度。基類是已經固化了有核心部分,在二次開發完全不需要改動也不能隨時改動的,否則會影響到整個系統的穩定運行。 這里將基類在二次開發中使用方法和用到的一些函數、方法,在自美系統中每一個有通訊需求的模塊都需要繼承這個基類,如: * 喚醒模塊`Awake`,位于:`/python/package/Awake.py` * 錄音模塊`Record`, 位于:`/python/package/Record.py` 還有插件中也需要繼承基類(插件中繼承基類后能實現與系統默認模塊同樣的功能),如: * 音樂插件`Music`,位于:`/python/plugin/Music/Music.py` * 說IP地址插件`SayIp`,位于:`/python/plugin/SayIp/SayIp.py` 等等,具體代碼可以直接查看文件實現方法。 ## **基類的使用方法**: 基類中已經使用了`__init__`類的初始化方法 如果在要繼承模塊中還需要使用`__init__` 需要在`__init__`方法中添加`super().__init__(msgQueue)`語句,如喚醒模塊中: >部分代碼: ```python from MsgProcess import MsgProcess, MsgType class Awake(MsgProcess): '''語音喚醒類''' def __init__(self, msgQueue): super().__init__(msgQueue) self.awakeThread = None self.socketFile = "/tmp/zimei-awake.sock" self.awakeconfig = self.config['ApiConfig']['AwakeEngine'] def Start(self, message): ``` 截圖如下: <img src="http://qiniucn.16302.com/64f9dde9343d8165a86df5a7829a431e" width="500"/> ## **繼承基類后可使用的系統級的方法(函數):** ***** **getConfig --- 重新讀取一下系統配置** ***** **參數**:無 **返回**:無 **功能**:執行此方法重新讀取一下系統根目錄下的config.yaml配置文件中的內容值并將最新的值賦值給**self.config**變量。 ***** **saveConfig --- 保存系統配置信息** ***** **參數**:無 **返回**:無 **功能**:將當前**self.config**值保存到config.yaml文件中 ***** **send --- 消息發送(重點方法,使用頻率最高)** ***** **參數**:MsgType, Receiver, Data **返回**:無 **功能**:各模塊(進程)間通信方法,如喚醒模塊被喚醒后告訴錄音模塊:你可以開始錄音了,就可以使用此方法發送一個指令給錄音模塊。 **參數介紹:** MsgType 消息類型,有以下幾種: ``` Start = 1 # 啟動 Pause = 2 # 暫停 Resume = 3 # 繼續 Stop = 4 # 停止 Text = 5 # 文本 ``` Receiver 消息接收者 ``` 接收者為模塊名稱,即繼承了基類的模塊名稱,也就是class類名,如:喚醒模塊就是:Awake 如果是插件就是插件名稱,如音樂插件:Music ``` Data 消息數據,可以是字典類型,也可以字符串類型 ``` Data 攜帶的是接收模塊需要的數據,具體數據由各模塊間約定,此參數也可以為空None ``` ## **類的方法定義與重寫** 先看一段代碼示例代碼: ```python # 導入基類庫、消息類型庫 from MsgProcess import MsgProcess, MsgType class HelloWorld(MsgProcess): '''你好,世界''' def __init__(self, msgQueue): '''如果在插件或功能模塊中使用__ini__方法,必須加下面的這方法,先調用基類中的方法''' super().__init__(msgQueue) def Start(self, message=None): '''功能、插件入口,通常被用初始化插件入口使用''' pass def Text(self, message): '''接收來自其他模塊發送過來的消息類型為:MsgType.Text(文本)消息,再進行二次開發和業務邏輯實現''' pass def Pause(self, message=None): '''接收消息類型為:MsgType.Pause(暫停)消息,實現暫停功能''' pass def Resume(self, message=None): '''接收消息類型為:MsgType.Resume(繼續)消息,實現繼續功能''' pass def Stop(self, message=None): '''接收消息類型為:MsgType.Stop(停止)消息,實現停止功能,定義默認為自動停止''' self.__stop = True ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看