public async Task TestManifest() { var stream = new MemoryStream(); var cli = new SpeechClient(); cli.SetStream(stream); await cli.SendManifest(); stream.Seek(0, SeekOrigin.Begin); var reader = new StreamReader(stream); var size = Convert.ToInt32(reader.ReadLine()); var outp = new char[size]; reader.ReadBlock(outp, 0, size); var str = new String(outp); var re = new Regex(@"^([A-Z_]*)"); Assert.IsTrue(re.Match(str).Value == "APP_MANIFEST"); var jsonstr = str.TrimStart(re.Match(str).Value.ToCharArray()); var jsonstream = new MemoryStream(Encoding.UTF8.GetBytes(jsonstr)); var ser = new DataContractJsonSerializer(typeof(Manifest)); Manifest jsonobj = (Manifest)ser.ReadObject(jsonstream); Assert.IsTrue(jsonobj.Version == "0.0.1"); Assert.IsTrue(jsonobj.Name == "speech-recognizer"); Assert.IsTrue(jsonobj.DisplayName == "Mycroft Networked Speech Recognizer"); Assert.IsTrue(jsonobj.Description == "Lets applications register speech triggers for Mycroft to look for."); Assert.IsTrue(jsonobj.InstanceId == "primary"); }
static void Main(string[] args) { if (args.Length < 2) { Console.WriteLine("Expected arguments in the form speechrecognizer host port"); return; } var server = new SpeechClient("app_manifest.json"); server.Connect(args[0], args[1]); }