From 2716e6a32de54858b23b36c3f3614e79700416d7 Mon Sep 17 00:00:00 2001 From: tonaerospace Date: Thu, 7 Nov 2024 08:14:04 +0700 Subject: [PATCH] update runtest --- src/communication.jl | 4 +-- test/runtest.jl | 75 +++++++++++++++----------------------------- 2 files changed, 28 insertions(+), 51 deletions(-) diff --git a/src/communication.jl b/src/communication.jl index b050303..84d3c9c 100644 --- a/src/communication.jl +++ b/src/communication.jl @@ -147,7 +147,7 @@ function mqttClientInstance_v2( mqttBrokerAddress::String, subtopic::Vector{String}, msgReceiveChannel, # NamedTuple of channels i.e. msgReceiveChannel = (ch1=Channel(8), ch2=Channel(8)) - keepaliveChannel::Channel, # user needs to specify because it has to be accessible by user-defined onMsgCallback() + keepaliveChannel::Channel, # used for checkMqttConnection(). user needs to specify because it has to be accessible by user-defined onMsgCallback() onMsgCallback::Function ; mqttBrokerPort::Integer=1883, @@ -426,7 +426,7 @@ end ----- ```jldoctest julia> using Revise - julia> using GeneralUtils, Dates, JSON3, MQTTClient + julia> using GeneralUtils, Dates, JSON3 julia> GeneralUtils.checkMqttConnection!(mqttInstance, 5) ``` diff --git a/test/runtest.jl b/test/runtest.jl index fb7cb49..2a844ed 100644 --- a/test/runtest.jl +++ b/test/runtest.jl @@ -1,59 +1,36 @@ using Revise -using GeneralUtils +using GeneralUtils, MQTTClient, JSON3 - - -# text = "TODAY thought: what to do plan: wake up and going out action: 1. wake up 2. eat 3. sleep" - -# sample_keywords = ["thought", "plan", "action"] - - -# resultdict = GeneralUtils.textToDict(text, sample_keywords; rightmarker=":", symbolkey=true) - - -# println(resultdict) - - -storedata = Channel(8) -keepalive = Channel(8) - -function onMsgCallback_1(topic, payload) - jobj = JSON3.read(String(payload)) - incomingMqttMsg = copy(jobj) # convert json object into julia dictionary recursively - - topic = split(topic, "/") - if "keepalive" ∈ _topic - put!(keepaliveChannel, incomingMqttMsg) - elseif "testingprompt" ∈ topic - # @show incomingMqttMsg - put!(storedata, incomingMqttMsg) -else - @show "undefined condition" - end -end - -mqttInstance = GeneralUtils.mqttClientInstance( - "mqtt.yiem.cc", - 1883, - ["/testingprompt"], - storedata, - keepalive, - onMsgCallback_1 -) +mqttMsgReceiveTopic = ["/receivetopic_1", "/receivetopic_2"] +mqttMsgReceiveChannel = (ch1=Channel(8), ch2=Channel(32)) +keepaliveChannel = Channel(8) +function onMsgCallback(topic, payload) + jobj = JSON3.read(String(payload)) + incomingMqttMsg = copy(jobj) # convert json object into julia dictionary recursively + + if occursin("topic_1", topic) + put!(mqttMsgReceiveChannel[:ch1], incomingMqttMsg) + elseif occursin("topic_2", topic) + put!(mqttMsgReceiveChannel[:ch2], incomingMqttMsg) + elseif occursin("keepalive", topic) + put!(keepaliveChannel, incomingMqttMsg) + else + println("undefined condition ", @__FILE__, " ", @__LINE__) + end + end +mqttInstance = GeneralUtils.mqttClientInstance_v2( + "mqtt.yiem.cc", + mqttMsgReceiveTopic, + mqttMsgReceiveChannel, + keepaliveChannel, + onMsgCallback + ) _ = GeneralUtils.checkMqttConnection!(mqttInstance) -println("555") - - - - - - - - +println("GeneralUtils test done")