Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • anders_blomdell/labcomm
  • klaren/labcomm
  • tommyo/labcomm
  • erikj/labcomm
  • sven/labcomm
5 results
Show changes
Showing
with 905 additions and 0 deletions
package labcommTCPtest.client;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
import se.lth.control.labcomm2014.DecoderChannel;
import se.lth.control.labcomm2014.EncoderChannel;
import labcommTCPtest.gen.foo;
import labcommTCPtest.gen.foo.Handler;
public class TestClient implements Handler {
private OutputStream out;
private InputStream in;
public TestClient(Socket server) throws IOException {
out = server.getOutputStream();
in = server.getInputStream();
}
public void test() {
try {
EncoderChannel e = new EncoderChannel(out );
foo.register(e);
foo sample = new foo();
sample.c = 17;
sample.d = 42;
sample.h = 1717;
sample.b = 0.42;
sample.e = "Testing";
printSample("Client sending", sample);
foo.encode(e, sample);
DecoderChannel c = new DecoderChannel(in);
foo.register(c,this);
c.run();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String... args) {
String server = "localhost";
int port = 9999;
try {
Socket s = new Socket(server, port);
TestClient c = new TestClient(s);
c.test();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
private void printSample(String header, foo sample2) throws Exception {
System.out.println(header);
System.out.format("TestClient.invoke(%f, %d, %d, %d)\n", sample2.b, sample2.c, sample2.d, sample2.h);
}
public void handle_foo(foo sample2) throws Exception {
printSample("TestClient.handle_foo", sample2);
}
}
package labcommTCPtest.client;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
import se.lth.control.labcomm2014.DecoderChannel;
import se.lth.control.labcomm2014.EncoderChannel;
import labcommTCPtest.gen.FooSample;
import labcommTCPtest.gen.FooSample.Handler;
public class TestClientSingleshot implements Handler {
private OutputStream out;
private InputStream in;
public TestClientSingleshot(Socket server) throws IOException {
out = server.getOutputStream();
in = server.getInputStream();
}
public void test() {
try {
EncoderChannel e = new EncoderChannel(out );
FooSample.register(e);
FooSample sample = new FooSample();
sample.x = 17;
sample.y = 42;
sample.t = 1717;
sample.d = 0.42;
printSample("Client sending", sample);
FooSample.encode(e, sample);
DecoderChannel c = new DecoderChannel(in);
FooSample.register(c,this);
c.runOne();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String... args) {
String server = "localhost";
int port = 9999;
try {
Socket s = new Socket(server, port);
TestClientSingleshot c = new TestClientSingleshot(s);
c.test();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
private void printSample(String header, FooSample sample2) throws Exception {
System.out.println(header);
System.out.format("TestClientSingleshot.invoke(%d, %d, %d, %f)\n", sample2.x, sample2.y, sample2.t, sample2.d);
}
public void handle_FooSample(FooSample sample2) throws Exception {
printSample("TestClientSingleshot.handle_FooSample", sample2);
}
}
package labcommTCPtest.server;
/**
* The service object to be accessed remotely via a LabComm channel
*
*/
public class TestObject {
/**
* A test method. The matching LabComm description is in test.lc
*
* @param x
* @param y
* @param t
* @param d
*/
public void foo(int x, int y, long t, double d) {
System.out.format("TestObject.foo(%d, %d, %d, %f)\n", x, y, t, d);
}
}
package labcommTCPtest.server;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.net.ServerSocket;
import java.net.Socket;
import se.lth.control.labcomm2014.DecoderChannel;
import se.lth.control.labcomm2014.EncoderChannel;
import labcommTCPtest.gen.foo;
import labcommTCPtest.gen.foo.Handler;
public class TestServer implements Handler {
private OutputStream out;
private InputStream in;
public static void main(String a[]) {
try {
ServerSocket ss = new ServerSocket(9999);
Socket s = ss.accept();
TestServer ts = new TestServer(s);
ts.runOne();
} catch (IOException e) {
e.printStackTrace();
}
}
public TestServer(Socket s) throws IOException {
out = s.getOutputStream();
in = s.getInputStream();
}
public void runOne() {
try {
DecoderChannel c = new DecoderChannel(in);
foo.register(c,this);
c.runOne();
} catch (Exception e) {
e.printStackTrace();
}
}
public void handle_foo(foo sample) throws Exception {
EncoderChannel e = new EncoderChannel(out );
foo.register(e);
System.out.println("TestServer.handle_foo...");
sample.b *= 2;
sample.c *= 2;
sample.d *= 2;
sample.h *= 2;
foo.encode(e, sample);
}
}
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<GCDocument color="-1" dimTicks="25" dpwsInterface="" dpwsPort="-1" height="600" horizontalScrollBar="1" modifiable="1" name="Server" saveVersion="7" scale="1.0" simulationMode="1" socketHost="" socketIsServer="0" socketPort="-1" socketSendMode="Changed" threadSpeed="1000" tokenLuminance="0" verticalScrollBar="1" viewPositionX="0" viewPositionY="0" width="434" x="0" y="0">
<LabCommObject height="60" isSocketServer="1" name="LabComm" socketHost="asdf" socketPort="9999" specification="sample struct {&#10; double b;&#10; int c;&#10; int d;&#10; string e;&#10; boolean f;&#10; short g;&#10; long h;&#10; float i;&#10;} foo;&#10;&#10;//sample int bar;&#10;" width="60" x="60" y="290"/>
<GCInitialStep actionBlockVisible="1" actionText="S LabComm.foo.b = LabComm.foo.b + 1.1;&#10;S LabComm.foo.c = 8;&#10;S LabComm.foo.d = 10;&#10;S LabComm.foo.e = &quot;hej&quot;;&#10;S LabComm.foo.f = !LabComm.foo.f;&#10;S LabComm.foo.g = 32767;&#10;S LabComm.foo.h = 12345678;&#10;S LabComm.foo.i = 2.4;" fileName="" height="70" id="ef14bcd4-aa1c-4970-9a6c-5e1269c53245" name="" useIcon="0" width="200" x="170" y="15"/>
<GCTransition actionText="1" conditionVisible="1" height="25" id="e580e2b4-4aa2-4311-bd7a-8dfe4d3e0cb8" width="30" x="185" y="200"/>
<GCStep actionBlockVisible="1" actionText="S lcSend(LabComm); // send all samples&#10;//S lcSend(LabComm, &quot;foo&quot;);" fileName="" height="70" id="bb65796a-2b87-4155-af9c-cb36439497d7" name="" useIcon="0" width="200" x="170" y="235"/>
<GCTransition actionText="0" conditionVisible="1" height="25" id="975b3011-87d6-4e75-9532-adb4153cad38" width="30" x="185" y="320"/>
<GCStep actionBlockVisible="1" actionText="S LabComm.foo.b = LabComm.foo.b + 1.1;&#10;S LabComm.foo.f = !LabComm.foo.f;" fileName="" height="70" id="7503a140-222a-477f-be8f-6b358e1ea6ae" name="" useIcon="0" width="200" x="170" y="125"/>
<GCTransition actionText="1" conditionVisible="1" height="25" id="26534603-8853-4a41-81ea-cb4d5cbd134a" width="30" x="185" y="90"/>
<GCLink fromObject="e580e2b4-4aa2-4311-bd7a-8dfe4d3e0cb8" manAdj="0" toObject="bb65796a-2b87-4155-af9c-cb36439497d7">
<Stroke x="200" y="226"/>
<Stroke x="200" y="236"/>
<Stroke x="200" y="236"/>
<Stroke x="200" y="224"/>
<Stroke x="200" y="224"/>
<Stroke x="200" y="234"/>
</GCLink>
<GCLink fromObject="bb65796a-2b87-4155-af9c-cb36439497d7" manAdj="0" toObject="975b3011-87d6-4e75-9532-adb4153cad38">
<Stroke x="200" y="306"/>
<Stroke x="200" y="316"/>
<Stroke x="200" y="316"/>
<Stroke x="200" y="309"/>
<Stroke x="200" y="309"/>
<Stroke x="200" y="319"/>
</GCLink>
<GCLink fromObject="7503a140-222a-477f-be8f-6b358e1ea6ae" manAdj="0" toObject="e580e2b4-4aa2-4311-bd7a-8dfe4d3e0cb8">
<Stroke x="200" y="196"/>
<Stroke x="200" y="206"/>
<Stroke x="200" y="206"/>
<Stroke x="200" y="189"/>
<Stroke x="200" y="189"/>
<Stroke x="200" y="199"/>
</GCLink>
<GCLink fromObject="ef14bcd4-aa1c-4970-9a6c-5e1269c53245" manAdj="0" toObject="26534603-8853-4a41-81ea-cb4d5cbd134a">
<Stroke x="200" y="86"/>
<Stroke x="200" y="96"/>
<Stroke x="200" y="96"/>
<Stroke x="200" y="79"/>
<Stroke x="200" y="79"/>
<Stroke x="200" y="89"/>
</GCLink>
<GCLink fromObject="26534603-8853-4a41-81ea-cb4d5cbd134a" manAdj="0" toObject="7503a140-222a-477f-be8f-6b358e1ea6ae">
<Stroke x="200" y="116"/>
<Stroke x="200" y="126"/>
<Stroke x="200" y="126"/>
<Stroke x="200" y="114"/>
<Stroke x="200" y="114"/>
<Stroke x="200" y="124"/>
</GCLink>
<GCLink fromObject="975b3011-87d6-4e75-9532-adb4153cad38" manAdj="1" toObject="7503a140-222a-477f-be8f-6b358e1ea6ae">
<Stroke x="200" y="346"/>
<Stroke x="200" y="356"/>
<Stroke x="134" y="356"/>
<Stroke x="134" y="114"/>
<Stroke x="200" y="114"/>
<Stroke x="200" y="124"/>
</GCLink>
</GCDocument>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include "jg.h"
#include "dec.h"
#include "enc.h"
void error(const char *msg)
{
perror(msg);
exit(0);
}
void do_labcomm(int sockfd, jg_foo *v)
{
void *enc = enc_init(sockfd);
int i;
for(i=0; i<10;i++) {
enc_run(enc, v);
}
enc_cleanup(enc);
}
int main(int argc, char *argv[])
{
int sockfd, portno, n;
int newsockfd, clilen;
struct sockaddr_in serv_addr, cli_addr;
struct hostent *server;
char buffer[256];
if (argc < 2) {
fprintf(stderr,"usage %s port\n", argv[0]);
exit(0);
}
portno = atoi(argv[1]);
sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd < 0)
error("ERROR opening socket");
int so_reuseaddr = 1; //TRUE;
if(setsockopt(sockfd,SOL_SOCKET,SO_REUSEADDR, &so_reuseaddr, sizeof so_reuseaddr)) {
error("ERROR setting socket options");
}
bzero((char *) &serv_addr, sizeof(serv_addr));
serv_addr.sin_addr.s_addr = INADDR_ANY;
serv_addr.sin_port = htons(portno);
if (bind(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0) {
perror("ERROR on binding");
exit(1);
}
listen(sockfd,2);
clilen = sizeof(cli_addr);
/* Accept actual connection from the client */
newsockfd = accept(sockfd, (struct sockaddr *)&cli_addr, &clilen);
if (newsockfd < 0) {
perror("ERROR on accept");
exit(1);
}
jg_foo v;
v.b = 17.17;
v.c = 1742;
v.d = 4217;
v.e = "hello";
v.f = 17;
v.g = 42;
v.h = 2;
v.i = 42.42;
do_labcomm(newsockfd, &v);
close(newsockfd);
close(sockfd);
return 0;
}
/* Topic types */
sample struct {
string turtle_name;
float linear;
float angular;
} velocity;
sample struct {
string turtle_name;
float x;
float y;
float theta;
float linear_velocity;
float angular_velocity;
} pose;
sample struct {
string turtle_name;
float r;
float g;
float b;
} color;
/* Srv types */
sample void clear; /* Empty. */
sample void clear_resp; /* Empty. */
sample void reset; /* Empty. */
sample void reset_resp; /* Empty. */
sample string kill; /* Name of turtle. */
sample void kill_resp; /* Empty. */
sample struct {
string name;
float x;
float y;
float theta;
} spawn; /* Coordinates and direction. */
sample string spawn_resp; /* Returns name of turtle */
sample struct {
string turtle_name;
byte r;
byte g;
byte b;
byte width;
byte off;
} set_pen; /* Pen properties. */
sample void set_pen_resp; /* Empty. */
/* TODO: The following two are duplicates. Change to typedefs when working. */
sample struct {
string turtle_name;
float x;
float y;
float theta;
} teleport_absolute; /* Coordinates and direction. */
sample void teleport_absolute_resp; /* Empty. */
sample struct {
string turtle_name;
float linear;
float angular;
} teleport_relative; /* Similar to velocity but instant. */
sample void teleport_relative_resp; /* Empty. */
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <labcomm_fd_reader.h>
#include <labcomm_default_error_handler.h>
#include <labcomm_default_memory.h>
#include <labcomm_default_scheduler.h>
#include <stdio.h>
#include "turtle1.h"
static struct labcomm_encoder *encoder;
static void handle_pose(turtle1_pose *v, void *context) {
#if 1
printf("got pose\n");
#else
turtle1_velocity vel;
sleep(1);
labcomm_encode_turtle1_velocity(encoder, vel);
vel.angular = -1;
sleep(1);
labcomm_encode_turtle1_velocity(encoder, vel);
sleep(1);
vel.angular = -1;
labcomm_encode_turtle1_velocity(encoder, vel);
#endif
}
struct labcomm_decoder *turtle_dec_init(int fd, struct labcomm_encoder *e) {
struct labcomm_decoder *decoder;
encoder = e;
void *context = NULL;
decoder = labcomm_decoder_new(labcomm_fd_reader_new(
labcomm_default_memory, fd, 1),
labcomm_default_error_handler,
labcomm_default_memory,
labcomm_default_scheduler);
if (!decoder) {
printf("Failed to allocate decoder %s:%d\n", __FUNCTION__, __LINE__);
return (void *)0;
}
labcomm_decoder_register_turtle1_pose(decoder, handle_pose, context);
return decoder;
}
void turtle_dec_run(struct labcomm_decoder *decoder) {
printf("Decoding:\n");
labcomm_decoder_run(decoder);
printf("--- End Of File ---:\n");
}
void turtle_dec_cleanup(struct labcomm_decoder *decoder) {
labcomm_decoder_free(decoder);
}
#include <labcomm_fd_reader.h>
#include <labcomm_default_error_handler.h>
#include <labcomm_default_memory.h>
#include <labcomm_default_scheduler.h>
#include <stdio.h>
struct labcomm_decoder * turtle_dec_init(int fd, struct labcomm_encoder *e) ;
void turtle_dec_run(struct labcomm_decoder *decoder) ;
void turtle_dec_cleanup(struct labcomm_decoder *decoder) ;
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <labcomm_fd_writer.h>
#include <labcomm_default_error_handler.h>
#include <labcomm_default_memory.h>
#include <labcomm_default_scheduler.h>
#include "turtle1.h"
#include <stdio.h>
struct labcomm_encoder *turtle_enc_init( int fd) {
struct labcomm_encoder *encoder;
encoder = labcomm_encoder_new(labcomm_fd_writer_new(
labcomm_default_memory, fd, 1),
labcomm_default_error_handler,
labcomm_default_memory,
labcomm_default_scheduler);
labcomm_encoder_register_turtle1_velocity(encoder);
return encoder;
}
void turtle_enc_run(struct labcomm_encoder *encoder, turtle1_velocity *v) {
#if 0
jg_foo v;
v.b = 17.17;
v.c = 1742;
v.d = 4217;
v.e = "hello";
v.f = 17;
v.g = 42;
v.h = 2;
v.i = 42.42;
#endif
printf("Encoding for turtle1\n");
v->turtle_name="/turtlesim1/turtle1";
labcomm_encode_turtle1_velocity(encoder, v);
sleep(1);
printf("Encoding for turtle1\n");
v->angular *= -1;
labcomm_encode_turtle1_velocity(encoder, v);
sleep(1);
v->angular *= -1;
//v->h += 42000000;
labcomm_encode_turtle1_velocity(encoder, v);
}
void turtle_enc_cleanup(struct labcomm_encoder *encoder) {
labcomm_encoder_free(encoder);
}
#include <labcomm_fd_writer.h>
#include <labcomm_default_error_handler.h>
#include <labcomm_default_memory.h>
#include <labcomm_default_scheduler.h>
#include "turtle1.h"
struct labcomm_encoder *turtle_enc_init(int fd) ;
void turtle_enc_run(struct labcomm_encoder *encoder, turtle1_velocity *v) ;
void turtle_enc_cleanup(struct labcomm_encoder *encoder) ;
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include "turtle_dec.h"
#include "turtle_enc.h"
void error(const char *msg)
{
perror(msg);
exit(0);
}
void do_labcomm(int sockfd)
{
void *turtle_enc = turtle_enc_init(sockfd);
// void *turtle_dec = turtle_dec_init(sockfd, turtle_enc);
turtle1_velocity v;
v.linear=4;
v.angular=0.4;
turtle_enc_run(turtle_enc, &v);
// turtle_dec_run(turtle_dec);
// turtle_dec_cleanup(turtle_dec);
turtle_enc_cleanup(turtle_enc);
}
int main(int argc, char *argv[])
{
int sockfd, portno, n;
struct sockaddr_in serv_addr;
struct hostent *server;
char buffer[256];
if (argc < 3) {
fprintf(stderr,"usage %s hostname port\n", argv[0]);
exit(0);
}
portno = atoi(argv[2]);
sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd < 0)
error("ERROR opening socket");
server = gethostbyname(argv[1]);
if (server == NULL) {
fprintf(stderr,"ERROR, no such host\n");
exit(0);
}
bzero((char *) &serv_addr, sizeof(serv_addr));
serv_addr.sin_family = AF_INET;
bcopy((char *)server->h_addr,
(char *)&serv_addr.sin_addr.s_addr,
server->h_length);
serv_addr.sin_port = htons(portno);
if (connect(sockfd,(struct sockaddr *) &serv_addr,sizeof(serv_addr)) < 0)
error("ERROR connecting");
do_labcomm(sockfd);
close(sockfd);
return 0;
}
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>
MODULE Follow
PROC LCjt2jt(VAR LCRobot_jointtarget a, VAR jointtarget b)
b.robax.rax_1 := a.robax.rax_1;
b.robax.rax_2 := a.robax.rax_2;
b.robax.rax_3 := a.robax.rax_3;
b.robax.rax_4 := a.robax.rax_4;
b.robax.rax_5 := a.robax.rax_5;
b.robax.rax_6 := a.robax.rax_6;
b.extax.eax_a := a.extax.eax_a;
b.extax.eax_b := a.extax.eax_b;
b.extax.eax_c := a.extax.eax_c;
b.extax.eax_d := a.extax.eax_d;
b.extax.eax_e := a.extax.eax_e;
b.extax.eax_f := a.extax.eax_f;
ENDPROC
PROC handle_jointtarget(LCRobot_jointtarget val)
VAR jointtarget jt;
LCjt2jt val, jt;
MoveAbsJ jt, v100, z1, tool0, \WObj:=wobj0;
ENDPROC
PROC main()
VAR LabComm_Stream st;
VAR socketdev srv;
SocketCreate srv;
SocketBind srv, "127.0.0.1", 51337;
SocketListen srv;
WHILE TRUE DO
SocketAccept srv, st.soc;
Receive_targets st;
ENDWHILE
ENDPROC
PROC Receive_targets(VAR LabComm_Stream st)
VAR Decoder d;
VAR LabComm_Decoder_Sample s{1};
Init_Decoder d, st;
% "LCRobot:Dec_Reg_jointtarget" % s{1}, "handle_jointtarget";
WHILE TRUE DO
Decode_One d, st, s;
ENDWHILE
ERROR
SocketClose st.soc;
RETURN;
ENDPROC
ENDMODULE
sample struct {
struct {
float x;
float y;
float z;
} trans;
struct {
float q1;
float q2;
float q3;
float q4;
} rot;
struct {
short cf1;
short cf4;
short cf6;
short cfx;
} robconfig;
} robtarget;
sample struct {
struct {
float rax_1;
float rax_2;
float rax_3;
float rax_4;
float rax_5;
float rax_6;
} robax;
struct {
float eax_a;
float eax_b;
float eax_C;
float eax_d;
float eax_e;
float eax_f;
} extax;
} jointtarget;
all:
clean:
distclean:
using se.lth.control.labcomm2014;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace RobotCtrl
{
class Specification
{
public static string IP_ADDRESS = "127.0.0.1";
public static int PORT = 51337;
static void Main(string[] args)
{
jointtarget val = new jointtarget { robax = new jointtarget.struct_robax(), extax = new jointtarget.struct_extax() };
TcpClient client = new TcpClient();
IPEndPoint serverEndPoint = new IPEndPoint(IPAddress.Parse(Specification.IP_ADDRESS), Specification.PORT);
try
{
client.Connect(serverEndPoint);
Encoder enc = new EncoderChannel(client.GetStream(), true);
jointtarget.register(enc);
jointtarget.encode(enc, val);
for (int i = 0; i < 10; i++)
{
val.robax.rax_2 += 2;
jointtarget.encode(enc, val);
}
for (int i = 0; i < 20; i++)
{
val.robax.rax_2 -= 2;
jointtarget.encode(enc, val);
}
for (int i = 0; i < 10; i++)
{
val.robax.rax_2 += 2;
jointtarget.encode(enc, val);
}
}
finally
{
client.Close();
}
}
}
}
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("RobotCtrl")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("RobotCtrl")]
[assembly: AssemblyCopyright("Copyright © 2013")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("bd5ee6d6-1dff-4043-8ca9-b56a29116e61")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{F0051A25-4FFF-4421-A5CB-01B512D6CEC5}</ProjectGuid>
<OutputType>Exe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>RobotCtrl</RootNamespace>
<AssemblyName>RobotCtrl</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="LCRobot.cs" />
<Compile Include="Specification.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\lib\csharp\LabComm.csproj">
<Project>{755cd5a6-c48e-4d35-b0be-8ec0fde1a2a1}</Project>
<Name>LabComm</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RobotCtrl", "RobotCtrl.csproj", "{F0051A25-4FFF-4421-A5CB-01B512D6CEC5}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LabComm", "..\..\lib\csharp\LabComm.csproj", "{755CD5A6-C48E-4D35-B0BE-8EC0FDE1A2A1}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{F0051A25-4FFF-4421-A5CB-01B512D6CEC5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F0051A25-4FFF-4421-A5CB-01B512D6CEC5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F0051A25-4FFF-4421-A5CB-01B512D6CEC5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F0051A25-4FFF-4421-A5CB-01B512D6CEC5}.Release|Any CPU.Build.0 = Release|Any CPU
{755CD5A6-C48E-4D35-B0BE-8EC0FDE1A2A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{755CD5A6-C48E-4D35-B0BE-8EC0FDE1A2A1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{755CD5A6-C48E-4D35-B0BE-8EC0FDE1A2A1}.Release|Any CPU.ActiveCfg = Debug|Any CPU
{755CD5A6-C48E-4D35-B0BE-8EC0FDE1A2A1}.Release|Any CPU.Build.0 = Debug|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal