Microsoft Robotics - Concurrency and Coordination Runtime (CCR),2 - Microsoft Robotics Studio,
Recent update: 2008-3-21

Statment reached after persisted Yield

2312 byte By Dogulas at 2008-3-7
I've created a couple of ports whose handlers are iterators. I added them to the concurrent group of an interleave then I posted to one of the ports. The code in the handler never executes. Code Snippet public class myService : DsspServiceBase{ // some code here ... private ...

And the Choice itself?

592 byte By IgorM at 2008-3-6
There is an inconcistensy with the Choice persitence flags: 1. The Concurrent affairs article claims that: "Choice and Interleave's TeardownReceiverGroup require that their arbiters always be non-persistent" 2. CCR Wiki (on the other hand) gives the following ...

PortSet<string,string> with Choice?

3694 byte By SERware at 2008-3-5
Hi, This is my first post on CCR, I'm business software developer, but I like the service and message pattern of the library. My question is about a Choice with same type ports. It seems that the Choice Arbiter doesn't scan the second port. For example: class Program { static void ...

And the Choice itself?

592 byte By IgorM at 2008-3-3
There is an inconcistensy with the Choice persitence flags: 1. The Concurrent affairs article claims that: "Choice and Interleave's TeardownReceiverGroup require that their arbiters always be non-persistent" 2. CCR Wiki (on the other hand) gives the following ...

PortSet<string,string> with Choice?

3694 byte By SERware at 2008-3-1
Hi, This is my first post on CCR, I'm business software developer, but I like the service and message pattern of the library. My question is about a Choice with same type ports. It seems that the Choice Arbiter doesn't scan the second port. For example: class Program { static void ...

Synchronous Pattern in MSRS

90 byte By antoniomorandi at 2008-2-28
Does anyone know of a best practices pattern for doing synchronous messages in MSRS?

Activate() is really a form of "spawn" or "execute in parallel"

4820 byte By Dogulas at 2008-2-27
In a different thread George cleared some things up for me. http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2082590&SiteID=1 Specifically: “Activate() is really a form of "spawn" or "execute in parallel", which is exactly what interleave needs, as a long ...

Concise syntax for request response using implicit assignment operators

5243 byte By GeorgeChrysanthakopoulos at 2008-2-26
I have recently added some minor syntactic "sugar" that makes the common asynchronous request/response pattern very concise, especially in the context of iterators. Below is a standard request/response, in a DSS service: Old way : (note the _contractDirectory.Get() is a helper ...

Activate() is really a form of "spawn" or "execute in parallel"

4820 byte By Dogulas at 2008-2-25
In a different thread George cleared some things up for me. http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2082590&SiteID=1 Specifically: “Activate() is really a form of "spawn" or "execute in parallel", which is exactly what interleave needs, as a long ...

Object Browser documentation about Arbiter

7110 byte By Dogulas at 2008-2-24
I have a few questions about what I see in Object Browser about Arbiter. Arbiter methods that activate Arbiter.Activate returns void Arbiter.ExecuteToCompletion returns ITask(maybe) [*1] Arbiter methods that return an instance of ITask Arbiter.FromHandler Arbiter.FromIteratorHandler ...

No service handlers found on operations port

2464 byte By BenAxelrod[CoroWare] at 2008-2-23
I am upgrading some code to 1.5 and am seeing this weird bug in the cosole output: Console Output No service handlers found on operations port with field name:_positionPortCategory StdOut Level Info Time 2007-09-06T23:53:49.92875-04:00 Subject No service handlers found on operations port ...

Activate() is really a form of "spawn" or "execute in parallel"

4820 byte By Dogulas at 2008-2-22
In a different thread George cleared some things up for me. http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2082590&SiteID=1 Specifically: “Activate() is really a form of "spawn" or "execute in parallel", which is exactly what interleave needs, as a long ...

Object Browser documentation about Arbiter

7110 byte By Dogulas at 2008-2-22
I have a few questions about what I see in Object Browser about Arbiter. Arbiter methods that activate Arbiter.Activate returns void Arbiter.ExecuteToCompletion returns ITask(maybe) [*1] Arbiter methods that return an instance of ITask Arbiter.FromHandler Arbiter.FromIteratorHandler ...

No service handlers found on operations port

2464 byte By BenAxelrod[CoroWare] at 2008-2-21
I am upgrading some code to 1.5 and am seeing this weird bug in the cosole output: Console Output No service handlers found on operations port with field name:_positionPortCategory StdOut Level Info Time 2007-09-06T23:53:49.92875-04:00 Subject No service handlers found on operations port ...

ConstrainQueueDepthDiscardTasks Behavior

6266 byte By DonaldSchwemle at 2008-2-20
I am having trouble fully understanding the task execution constraints behavior. Consider the following variation of the ThrottlingExample from the 1.5 documentation. The documentation example exhibits the behavior that one might expect when pushing the limits of the machine (1 million posts ...

CCR Update for V1.5 is now Available.

3995 byte By GeorgeChrysanthakopoulos at 2008-2-19
Please download and update your MSRS installation. Its a single dll, that will overwrite the ccr.core.dll that came with MSRS 1.5. You can download from here: http://www.microsoft.com/downloads/details.aspx?FamilyId=AEA84A5A-C50A-4316-80EB-4E1375B34DD0&displaylang=en This update requires ...

Heavy Ports?

677 byte By iWarrior at 2008-2-18
I have been writing a simulator and experimenting with CCR Ports. I am using the handler in the arbiter to post messages other simulator tiers – the listeners on the other tiers are WCF endpoints. I was pretty happy with the performance/behavior of one port. So, I thought why not make a list ...

Interleave Iterator Handler is not firing

2365 byte By Dogulas at 2008-2-17
I've created a couple of ports whose handlers are iterators. I added them to the concurrent group of an interleave then I posted to one of the ports. The code in the handler never executes. Code Snippet public class myService : DsspServiceBase{ // some code here ... private ...

Interleave Iterator Handler is not firing

2365 byte By Dogulas at 2008-2-16
I've created a couple of ports whose handlers are iterators. I added them to the concurrent group of an interleave then I posted to one of the ports. The code in the handler never executes. Code Snippet public class myService : DsspServiceBase{ // some code here ... private ...

Throttling with an Interleave

1720 byte By Michael.G at 2008-2-15
From browsing through other posts in this forum, I see that using the DispatcherQueue with a TaskExecutionPolicy to throttle tasks in an Interleave will not work. I have a need to throttle tasks in an interleave, and will describe what I am doing to see if perhaps there is another approach I ...

wait for task completion outside a task...

878 byte By RobSim--Braintech at 2008-2-15
Every once in a while I run into this problem and though it seems simple I can't quite figure out the pattern to solve it.In my service Start() method I want to spawn a task iterator and wait for it to complete. My current braindead approach is something along the lines of:void Start() {bool ...

ConstrainQueueDepthDiscardTasks Behavior

6266 byte By DonaldSchwemle at 2008-2-15
I am having trouble fully understanding the task execution constraints behavior. Consider the following variation of the ThrottlingExample from the 1.5 documentation. The documentation example exhibits the behavior that one might expect when pushing the limits of the machine (1 million posts ...

wait for task completion outside a task...

878 byte By RobSim--Braintech at 2008-2-15
Every once in a while I run into this problem and though it seems simple I can't quite figure out the pattern to solve it.In my service Start() method I want to spawn a task iterator and wait for it to complete. My current braindead approach is something along the lines of:void Start() {bool ...

ConstrainQueueDepthDiscardTasks Behavior

6266 byte By DonaldSchwemle at 2008-2-15
I am having trouble fully understanding the task execution constraints behavior. Consider the following variation of the ThrottlingExample from the 1.5 documentation. The documentation example exhibits the behavior that one might expect when pushing the limits of the machine (1 million posts ...

ConstrainQueueDepthDiscardTasks Behavior

6266 byte By DonaldSchwemle at 2008-2-14
I am having trouble fully understanding the task execution constraints behavior. Consider the following variation of the ThrottlingExample from the 1.5 documentation. The documentation example exhibits the behavior that one might expect when pushing the limits of the machine (1 million posts ...

Order of Task Excution

802 byte By RavindeSouza at 2008-2-14
Hello, Could you please clarify something regarding the dispatching of tasks in an ExclusiveReceiverGroup. Lets say I have a -- Port<FileInfo> FileInfoPort -- and I register a persistent receiver -- FileHandler -- on a port of this type (along with other handlers) in the exclusive ...

Dynamically re-ordering task execution? (Part 2)

1514 byte By JohnFisher at 2008-2-13
Hi all,I'm trying to re-implement the thread scheduling system in a windows service. The primary goal of the change is to allow prioritization of tasks. The system currently uses only the features of BeginInvoke() and its reliance on the CLR's thread pool. Here is a description of the ...

Dynamically re-ordering task execution?

1514 byte By JohnFisher at 2008-2-13
Hi all,I'm trying to re-implement the thread scheduling system in a windows service. The primary goal of the change is to allow prioritization of tasks. The system currently uses only the features of BeginInvoke() and its reliance on the CLR's thread pool. Here is a description of the ...

Nested Interleaves

1044 byte By Piyoosh at 2008-2-12
Hi! Is it possible to use nested Interleaves? Consider a scenerio where we have a set of mutually independent receiver-sets that can run concurrently, but individual receivers in each set require to run exclusively within the set. For example, receivers A, B, C use part S1 of state and hence ...

Strange error while listening to LRF

7331 byte By skuleguy at 2008-2-11
Hi, I'm new to CCR and DSS so I need a little advice on how to best carry out this task: So, I'm trying to listen to 2 ports, the timerPort (like in ServiceTutorials) and another port called laserResultPort which carries RaycastResults. I have my LRF registered to the laserResultPort and ...

Receive vs ReceiveWithIterator

321 byte By Don at 2008-2-10
This is a fundamental question I've always wondered about, and maybe other people have as well. Is there any performance advantage in using one or the other? Should we always use ReceiveWithIterator, or should we use Receive when none of the Iterator functionality is required? Thanks, Don ...

Safely handling bitmaps from webcam service.

5609 byte By RobSim--Braintech at 2008-2-10
Hi all,I hope you'll bear with me on this question- I come from the world of pthreads where I had a pretty clear understanding of thread safety, race conditions, etc. The CCR, not to mention GDI is all a bit new to me. :-)I have a service that's subscribed to the webcam service and polling it ...

Receive vs ReceiveWithIterator

321 byte By Don at 2008-2-8
This is a fundamental question I've always wondered about, and maybe other people have as well. Is there any performance advantage in using one or the other? Should we always use ReceiveWithIterator, or should we use Receive when none of the Iterator functionality is required? Thanks, Don ...

CCR Links

1159 byte By georgioc at 2008-2-8
This sub forum is dedicated to CCR discussion. Some useful links: CCR User Guide (please read this first): http://msdn2.microsoft.com/en-us/library/bb483117.aspx MSDN Concurrent Affairs article, plus sample code: http://msdn.microsoft.com/msdnmag/issues/06/09/concurrentaffairs/default.aspx ...

Concise syntax for request response using implicit assignment operators

5250 byte By GeorgeChrysanthakopoulos at 2008-2-7
I have recently added some minor syntactic "sugar" that makes the common asynchronous request/response pattern very concise, especially in the context of iterators. Below is a standard request/response, in a DSS service: Old way : (note the _contractDirectory.Get() is a helper ...

CCR with C# 3.0

5770 byte By CSHIII at 2008-2-7
I just started looking at the CCR in detail and decided to try it with the Orcas CTP and C# 3.0. This probably isn't "the best" way to do this, but I thought it was interesting to use extension methods and lambda expressions with the CCR. Here's what I came up with. I'm sure the ...

structure

122 byte By fulai225 at 2008-2-7
I am learning robotics studio,I want to know its frame or structure,know that I can study faster THANK YOU

thread-to-port assignment

348 byte By yuanhp at 2008-2-7
Hi, I have a question about thread-to-port assignment. There are m threads (they are launched by the same dispatch and share the same queue).I have two options to create port:(1) All threads share the same port. (2) Create one port for each of these m threads. I means we will have m ports.So, ...

a strange problem about CCR thread scheduling

5628 byte By yuanhp at 2008-2-6
I meet a strange problem in executing code below. The code is simple. First I create dispatch and queue. It also create 2 threads. Then I call the function Test() in a loop. In the Test(), I just post two message to the queue and then let the 2 threads to get message from the queue. From my ...

Suggestion: Break out the CCR and make available on it''s own

218 byte By PeterBromberg at 2008-2-6
A number of MVP's have discussed this. Jeffrey Richter wrote an article about it last November. Why make people download a 53MB install in order just to get the CCR.Core and related assemblies? Thanks!

Iterator Tasks Implementation

516 byte By AmirShitrit at 2008-2-5
How exactly are iterator tasks implemented? Is it safe to say that the task executer iterates over it and wait to the completion of each task before calling MoveNext() ?e.g. IEnumerator<ITasl> iterativeTask = ... foreach (ITask task in iterativeTask){ task.Execute() ...} If so, how can ...

Small bug in BlobTrackerCalibrate.cs

962 byte By TrevorTaylor at 2008-2-5
If I understand it correctly, line 239 in BlobTrackerCalibrate.cs does nothing: Arbiter.Choice( setImage.ResultPort, delegate(EmptyValue success) { }, delegate(Exception e) { fault = Fault.FromException(e); } ); I think there is a yield return missing in front of the Arbiter.Choice. It's a ...

New Arbiters in CCR 1.5

2651 byte By GeorgeChrysanthakopoulos at 2008-2-4
First of all, one nice little feature everyone asked for. Yielding to entire iterators!!! Code Snippet IEnumerator MyIteratorOverIterators() { yield return Arbiter.ExecuteToCompletion( dispatcherQueue, SomeIteratorHandler); Console.WriteLine("Done with first multi stage ...

MySpace.com using the CCR

985 byte By GeorgeChrysanthakopoulos at 2008-2-4
They mentioned it publicly so i thought i share the news. Mentioned in this blog: http://blogs.msdn.com/robburke/archive/2007/05/01/mix-misc-monday.aspx I had the chance to talk to MySpace architects about the CCR a while back (after i found out they where using it), and its exciting to see ...

CCR User Guide now available

363 byte By GeorgeChrysanthakopoulos at 2008-2-4
Part of our MSRS 1.5 release, a new CCR (and DSS) user guide is now available. Its also available online in the msdn library, under Microsoft Robotics Studio: http://msdn2.microsoft.com/en-us/library/bb483107.aspx ...

Throtting constraints

4899 byte By NickGunn at 2008-2-4
I think my understanding of throtting constraints is broken. I assumed the following code would only print "3" and "c", but it prints all values posted to both ports. Code Snippet using (Dispatcher dispatcher = new Dispatcher()) { DispatcherQueue dq = new ...

Practical usage of iterators

206 byte By AmirShitrit at 2008-2-3
Hi. What kinds of things I can do with iterators in the CCR? What's the practical usage of methods such as: Arbiter.FromIteratorHandler, or Arbiter.ReceiveWithIterator? Thanks.

JoinedReceive with 3 or more ports

253 byte By AmirShitrit at 2008-2-3
Is it possible to join on more than two ports without implementing classes such as Task<T0, T1, T2, T3> or Task<T0, T1, T2, T3, T4> and so on? I know that there's a Task<T0, T1, T2> class but what if I want to join on four ports?

Practical usage of iterators

203 byte By AmirShitrit at 2008-2-2
Hi. What kinds of things I can do with iterators in the CCR? What's the practical usage of methods such as: Arbiter.FromIteratorHandler, or Arbiter.ReceiveWithIterator? Thanks.

JoinedReceive with 3 or more ports

253 byte By AmirShitrit at 2008-2-2
Is it possible to join on more than two ports without implementing classes such as Task<T0, T1, T2, T3> or Task<T0, T1, T2, T3, T4> and so on? I know that there's a Task<T0, T1, T2> class but what if I want to join on four ports?