import json
import paho.mqtt.client as mqtt
import linuxcnc

c = linuxcnc.command()
s = linuxcnc.stat()

user="...."
password="...."
broker = "...."
port=....
topic="...."

def on_connect(client, userdata, flags, rc):
    print("Connected with result code "+str(rc))
			
def on_message(client, userdata, msg):
  	
    msg.payload = msg.payload.decode("utf-8")
    m_in = json.loads(msg.payload)
    
    info = list(m_in.values())
    e_stop = info[1]
    
    print('E-stop from DigitalTwin')
    print(e_stop)

    
    if info[1] == 1 :
		c.state(linuxcnc.STATE_ESTOP)
		c.wait_complete()
    
     
client=mqtt.Client()
client.username_pw_set(user, password)
client.on_connect = on_connect
client.on_message = on_message
client.connect(broker,port,10)
client.subscribe(topic)
client.loop_forever() 
