// Modified From WHITEPAPER ConvertAFValues private static double[] PIValuesToArray(PISDK.PIValues piValues) { double[] dblArray = new double[piValues.Count]; for (Int32 i = 0; i < piValues.Count; i++) { try { dblArray[i] = double.Parse(piValues[i + 1].Value.ToString()); } catch { } } return(dblArray); }
//TODO add time reliance to getPIData public static void getPIData(string MatlabName, string server, string point, string start, string end) { LogInput logInput; //LOG DATA AFTimeRange aftr; //TIMERANGE try { aftr = checkAFTimeRange(start, end); } catch (Exception ex) { MessageBox.Show(ex.Message); return; } PISDK.PISDKClass _pisdk = new PISDK.PISDKClass(); PISDK.PIPoint pt = _pisdk.Servers[server].PIPoints[point]; // Add the correct SERVER NAME & PI Points PISDK.PIValues values = pt.Data.RecordedValues(start, end, PISDK.BoundaryTypeConstants.btAuto, "", PISDK.FilteredViewConstants.fvRemoveFiltered, null); //Get Values logInput = new LogInput(MatlabName, "PI.Point", point, "PI.Point", aftr); isRelativeTimeString(start, end, logInput); double[] timeStamp = new double[values.Count]; int i = 0; foreach (PISDK.PIValue val in values) { DateTime UTCTime = val.TimeStamp.LocalDate; timeStamp[i] = UTCTime.ToOADate() + 693960; i++; } logInput.setAttributeGetValueFormat(0); logInput.setTimespaceFormat("ts0"); string server_database = "'" + server + "'-'PI.Point'"; logInput.setServerDatabase(server_database); LogSystem.addLogInput(server_database, logInput, true); MatlabAccess.sendDataToMatlab(MatlabName, PIValuesToArray(values)); //Export MatlabAccess.sendDataToMatlab(MatlabName + "Time", timeStamp); }