예제 #1
0
    def replyM2MTopicToNode(self, topicName, NodeName):
        self.jsonObj.Gateway = NodeName
        IsNodeHaveM2MMappingRules = False
        readyToReplyTopics = []

        for SingleM2MMappingRule in _g_M2MRulesMappingList:

            if (SingleM2MMappingRule["OutputNode"] == NodeName):
                readyToReplyTopics.append(SingleM2MMappingRule)

        if (len(readyToReplyTopics) > 0):
            IsNodeHaveM2MMappingRules = True
            for SingleM2MMappingRule in readyToReplyTopics:
                #### ASSIGN TO M2M FS ####
                self.SubscribeTopics = class_M2MFS_Obj.SubscribeTopicsObj()
                self.SubscribeTopics.TopicName = SingleM2MMappingRule["InputNode"] + \
                                                 "/" + SingleM2MMappingRule["InputIO"]  # FS1
                self.SubscribeTopics.Node = SingleM2MMappingRule["OutputNode"]  # M2M
                self.SubscribeTopics.Target = SingleM2MMappingRule["OutputIO"]
                self.SubscribeTopics.TargetValueOverride = SingleM2MMappingRule["TargetValueOverride"]

                self.jsonObj.SubscribeTopics.append(self.SubscribeTopics)

        else:
            IsNodeHaveM2MMappingRules = False

        jsonstring = self.jsonObj.to_JSON()

        print(bcolors.OKBLUE + "[Rules] REPTOPICLIST Send to topic:%s" % (topicName) + bcolors.ENDC)

        pm = class_M2MFS_MQTTManager.PublisherManager()
        pm.MQTT_PublishMessage(topicName, jsonstring)
예제 #2
0
def dummy_reg():
    publisherManager = class_M2MFS_MQTTManager.PublisherManager()

    time.sleep(.5)
    # publisherManager.MQTT_PublishMessage("FS1", '{"Gateway": "GW1","Control":"REQTOPICLIST"}')
    time.sleep(.5)
    publisherManager.MQTT_PublishMessage(
        "FS1", '{"Gateway": "GW2","Control":"REQTOPICLIST"}')
def main():
    REGMSG = '{"FunctionServer":"%s", "Control":"FS_REG",' \
             '"Function":"M2M","FSIP":"10.0.0.1" ,"MappingNodes":"[IOs]", "Source":"%s"}' % \
             (_g_cst_FSUUID, _g_cst_FSUUID)

    publisherManger = class_M2MFS_MQTTManager.PublisherManager()
    publisherManger.MQTT_PublishMessage(_g_cst_MQTTRegTopicName, REGMSG)

    # 訂閱自身名稱topic
    class_M2MFS_MQTTManager.SubscriberThreading(_g_cst_FSUUID).run()
예제 #4
0
def initREG():
    publisherManager = class_M2MFS_MQTTManager.PublisherManager()
    initMSGObj = {
        'TopicName': "NODE-02/SW2",
        'Control': 'M2M_SET',
        'Source': "NODE-02"
    }
    initMSGSTR = json.dumps(initMSGObj)
    now = time.strftime("%c")
    print(now)
    print("[INFO] SendREGMSG:%s" % initMSGSTR)
    publisherManager.MQTT_PublishMessage("NODE-02/SW2", initMSGSTR)
예제 #5
0
    def replyM2MRulesAll(self, topicName):
        self.jsonObj = class_M2MFS_Obj.JSON_M2MRULE()

        for SingleM2MMappingRule in _g_M2MRulesMappingList:
            self.Rule = class_M2MFS_Obj.RuleObj()
            self.Rule.RuleID = SingleM2MMappingRule["RuleID"]
            self.Rule.InputNode = SingleM2MMappingRule["InputNode"]
            self.Rule.InputIO = SingleM2MMappingRule["InputIO"]
            self.Rule.OutputNode = SingleM2MMappingRule["OutputNode"]
            self.Rule.OutputIO = SingleM2MMappingRule["OutputIO"]
            self.Rule.TargetValueOverride = SingleM2MMappingRule["TargetValueOverride"]
            self.jsonObj.Rules.append(self.Rule)

        jsonstring = self.jsonObj.to_JSON()

        print(bcolors.OKBLUE + "[Rules] REPRULE Send to topic:%s" % (topicName) + bcolors.ENDC)

        pm = class_M2MFS_MQTTManager.PublisherManager()
        pm.MQTT_PublishMessage(topicName, jsonstring)
def dummy_reg():
    publisherManager = class_M2MFS_MQTTManager.PublisherManager()
    time.sleep(.5)
    publisherManager.MQTT_PublishMessage(
        "IOTSV/REG",
        '{"Device": "MD-01","Control":"MD_REQFS", "Source":"MD-01"}')

    time.sleep(.5)
    publisherManager.MQTT_PublishMessage(
        "FS1", '{"Device": "P1","Control":"M2M_GETRULE", "Source":"MD-01"}')
    time.sleep(.5)
    publisherManager.MQTT_PublishMessage(
        "FS1", '{"Control": "M2M_ADDRULE","Rules": '
        '[{"RuleID": "4","InputNode": "N1",'
        '"InputIO": "SW1","OutputNode": "N2",'
        '"OutputIO": "LED3","TargetValueOverride": "1"}], "Source":"MD-01"}')
    time.sleep(.5)
    publisherManager.MQTT_PublishMessage(
        "FS1", '{"Device": "P1","Control":"M2M_GETRULE", "Source":"MD-01"}')

    time.sleep(.5)
    publisherManager.MQTT_PublishMessage(
        "FS1", '{"Control": "M2M_UPDATERULE","Rules": [{"RuleID": "1", '
        '"InputNode": "N1", "InputIO": "SW1",'
        '"OutputNode": "N2","OutputIO": "LED3",'
        '"TargetValueOverride": "1"}], "Source":"MD-01"}')

    time.sleep(.5)
    publisherManager.MQTT_PublishMessage(
        "FS1",
        '{"Control": "M2M_DELRULE","Rules": [{"RuleID": "2"}], "Source":"MD-01"}'
    )

    time.sleep(.5)
    publisherManager.MQTT_PublishMessage(
        "FS1", '{"Device": "P1","Control":"M2M_GETRULE", "Source":"MD-01"}')