Quantcast
Channel: R.NET
Viewing all articles
Browse latest Browse all 1634

Edited Issue: ArgumentNullException when trying to initialize R.NET [122]

$
0
0
Hello. I'm using 1.5.15 version of R.NET.

I have an error when running this code:

```
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using RNetClientServer;
using RDotNet;

namespace R_Server
{
class RServerConsoleApp
{
static void Main(string[] args)
{
Console.WriteLine("Input port number");
var portNumber = int.Parse(Console.ReadLine());

var server = new RNetTCPIPServer(portNumber);

Console.WriteLine("Press any key for closing.");
Console.ReadLine();

server.Stop();
}
}
}

```


```
using System;
using System.Collections.Generic;
using System.Linq;

using System.IO;
using System.Threading;
using RDotNet;
using RDotNet.NativeLibrary;
using RDotNet.Dynamic;
using RDotNet.Devices;


using Hik.Communication.Scs.Communication.EndPoints.Tcp;
using Hik.Communication.Scs.Communication.Messages;
using Hik.Communication.Scs.Server;


namespace RNetClientServer
{
class RNetTCPIPServer
{
private SemaphoreSlim augmentedRNetLocker = new SemaphoreSlim(1, 1);

private REngine engine;
private string envPath = Environment.GetEnvironmentVariable("PATH");
private string rBinPath = @"C:\Program Files\R\R-3.1.0\bin\x64";

private IScsServer tcpServer;

private void ReceiveClientMessage(object sender, MessageEventArgs e)
{
try
{
augmentedRNetLocker.Wait();

var receivedData = (ScsTextMessage)e.Message;
var receivedMessage = receivedData.Text;

var tcpClient = (IScsServerClient)sender;

List<string> receivedCommands = receivedMessage.Split('#').ToList(); //разбор основного сообщения на строки команд.

foreach (var command in receivedCommands)
{
var dataList = command.Split('?').ToList();
string vectorName;

switch (dataList[0])
{
case "SetVector":
vectorName = dataList[1];
var vectorData = dataList[2].Split('|').Select(s => { return double.Parse(s.Replace('.', ',')); }).ToList();

NumericVector RVector = engine.CreateNumericVector(vectorData);
engine.SetSymbol(vectorName, RVector);

break;

case "Evaluate":
engine.Evaluate(dataList[1]);

break;

case "GetVector":
vectorName = dataList[1];

var resultToSend = string.Join("|", engine.GetSymbol(vectorName).AsNumeric().Select(x => { return (x.ToString()).Replace(',', '.'); }));

tcpClient.SendMessage(new ScsTextMessage(resultToSend));

break;
}
}
}
finally
{
augmentedRNetLocker.Release();
}
}

public RNetTCPIPServer(int port)
{
//Environment.SetEnvironmentVariable("PATH", envPath + Path.PathSeparator + rBinPath);

//REngine.SetEnvironmentVariables(rBinPath);

engine = REngine.GetInstance("RDotNet");

#region R Initialize

engine.Initialize();

engine.Evaluate(@"C:\Program Files\R\R-3.1.0\library");

engine.Evaluate("library(signal)");
engine.Evaluate("library(dlm)");
engine.Evaluate("library(circular)");
engine.Evaluate("library(fume)");
engine.Evaluate("library(stats)");
engine.Evaluate("library(MASS)");
engine.Evaluate("library(nlme)");
engine.Evaluate("library(astsa)");
engine.Evaluate("library(wmtsa)");
engine.Evaluate("library(doParallel)");
engine.Evaluate("library(jointSeg)");
engine.Evaluate("library(circular)");
engine.Evaluate("library(lawstat)");

#endregion

tcpServer = ScsServerFactory.CreateServer(new ScsTcpEndPoint("127.0.0.1", port));

tcpServer.ClientConnected += ((object sender, ServerClientEventArgs e) =>
{
e.Client.MessageReceived += ReceiveClientMessage;
});

tcpServer.ClientDisconnected += ((object sender, ServerClientEventArgs e) =>
{
tcpServer.Clients.Remove(e.Client.ClientId);
});

tcpServer.Start();
}

public void Stop()
{
tcpServer.Stop();
}

~RNetTCPIPServer()
{
tcpServer.Clients.ClearAll();
}
}
}

```

(It's my simple realization of client-server mechanism of communication with R server). So, I have ArgumentNullException here:

```
engine = REngine.GetInstance("RDotNet");
engine.Initialize();
```

What do me wrong? All paths for R are correct, PATH environment setted correctly too.

Viewing all articles
Browse latest Browse all 1634

Trending Articles