コード例 #1
0
ファイル: SensorCloudPusher.cs プロジェクト: Osceus/Cobra
 private List<ChannelDataPoints> getStatusFeedbacks(StatusRegister reg, IEnumerable<RegisterFeedback> feedbacks)
 {
     var vals = new List<StatusRegisterFeedbackBitValue>();
     foreach (var feedback in feedbacks)
     {
         foreach (var bit in reg.StatusRegisterBits.Where(b => b.Enabled))
         {
             var val = new StatusRegisterFeedbackBitValue(feedback, bit, reg);
             vals.Add(val);
         }
     }
     var channelsAndPointsToSend = new List<ChannelDataPoints>();
     var bitGroups = vals.GroupBy(value => value.Bit);
     foreach(var values in bitGroups)
     {
         var valuesToSend = new List<SensorCloud.Point>(values.Count());
         foreach (var bit in values)
         {
             if (bit.Value)
             {
                 valuesToSend.Add(new SensorCloud.Point(bit.Feedback.ReadAt, (float)1.0));
             }
             else
             {
                 valuesToSend.Add(new SensorCloud.Point(bit.Feedback.ReadAt, (float)0.0));
             }
         }
         var channelId = reg.Id.ToString() + "Bit" + values.Key.Bit.ToString();
         var channelAndPoints = new ChannelDataPoints()
         {
             ChannelID=channelId,
             DataPoints = valuesToSend
         };
         channelsAndPointsToSend.Add(channelAndPoints);
     }
     return channelsAndPointsToSend;
 }
コード例 #2
0
ファイル: SensorCloudPusher.cs プロジェクト: Osceus/Cobra
 private ChannelDataPoints getAnalogFeedbacks(AnalogRegister reg, IEnumerable<RegisterFeedback> feedbacks)
 {
     var dataPoints = new List<SensorCloud.Point>(feedbacks.Count());
     foreach (var feedback in feedbacks)
     {
         dataPoints.Add(new SensorCloud.Point(feedback.ReadAt, reg.BuildScaledValue(feedback)));
     }
     var channelID = reg.RegisterNumber.ToString();
     var channelAndPoints = new ChannelDataPoints()
     {
         ChannelID = channelID,
         DataPoints = dataPoints
     };
     return channelAndPoints;
 }