in short it does this:
point1 rx -> point2 tx
point2 rx -> point1 tx
here's my simple code:
Code: Select all
#include <platform.h>
#include <xs1.h>
on stdcore[3] : in port point1_rx = XS1_PORT_1D;
on stdcore[3] : out port point1_tx = XS1_PORT_1E;
on stdcore[0] : in port point2_rx = XS1_PORT_1D;
on stdcore[0] : out port point2_tx = XS1_PORT_1E;
void point1(chanend relay)
{
char data;
while (1)
{
select
{
case point1_rx :> data :
relay <: data;
break;
case relay :> data :
point1_tx <: data;
break;
}
}
}
void point2(chanend relay)
{
char data;
while (1)
{
select
{
case point2_rx :> data :
relay <: data;
break;
case relay :> data :
point2_tx <: data;
break;
}
}
}
void main(void)
{
chan relay;
par
{
on stdcore[0] : point2(relay);
on stdcore[3] : point1(relay);
}
}