AsTeRICS icon indicating copy to clipboard operation
AsTeRICS copied to clipboard

REST API: Sending data to input port of plugin not working

Open deinhofer opened this issue 7 years ago • 1 comments

When sending data to an input port of a plugin, sending does not work if the input port is not connected from another output port.

How to reproduce

  1. Create a model with a WebSocket plugin (id: WebSocket.1) and deploy it to the ARE.
  2. Send data to the InA input port of the plugin via the Javascript REST function sendDataToInputPort (see picture below) grafik
  3. You will get an error message:
Couldnt set port <InA> of component <WebSocket.1> to value <Test> (Exception: eu.asterics.mw.are.exceptions.AREAsapiException: send data failed! model: eu.asterics.mw.model.deployment.impl.DefaultRuntimeModel@111783d, instance: instanceID WebSocket.1, 
componentType asterics.WebSocket, 
description This plugin uses a websocket connection to send and read data. The default websocket URI is ws://{hostname}:8082/ws/astericsData. You have to start the ARE with --webservice flag. You can test the connection with http://localhost:8082/
        , 
inputPorts [DefaultPort(InA, string)], 
outputPorts[DefaultPort(OutA, string)], 
, inputPort: null)

Workaround If you connect a channel from another output port to the InA input port, the sending from the REST API also works. For the WebSocket plugin you can connect the OutA port to the InA port. (see pic below)

grafik

deinhofer avatar Mar 07 '18 15:03 deinhofer

yeah, i know this issue. At implementing the REST method I did not find a way to send something to an input port that is not connected (i.e. that no "data channel" exists"). But yes, if there is a possibility we should change it.

klues avatar Mar 08 '18 10:03 klues