public void StartTraceData(string stationUID, dc_EnumConstJBC.dc_Port portNbr) { // start tracing one port long stationID = DLLConnection.jbc.GetStationID(stationUID); if (stationID == -1) { return; } //Start station continuous mode for the desired station and initialize num sequence if (!m_htStationQueue.Contains(stationUID)) { //speed if (!m_htStationSpeed.Contains(stationUID)) { m_htStationSpeed.Add(stationUID, SpeedContinuousMode.OFF); // defaults to physical speed } //Num sequence m_htStationNumSequence.Add(stationUID, 0); //station ID m_htStationID.Add(stationUID, stationID); uint queueID = DLLConnection.jbc.StartContinuousMode(stationID, (SpeedContinuousMode)(m_htStationSpeed[stationUID])); m_htStationQueue.Add(stationUID, queueID); } //Add port to list Hashtable listPortsData = default(Hashtable); if (m_htStationPortsData.Contains(stationUID)) { listPortsData = (Hashtable)(m_htStationPortsData[stationUID]); } else { listPortsData = new Hashtable(); } if (!listPortsData.Contains((Port)portNbr)) { listPortsData.Add((Port)portNbr, new TracePortData((Port)portNbr)); m_htStationPortsData[stationUID] = listPortsData; } evlogWrite("Added trace port: " + portNbr.ToString(), stationUID); }
public void StopTraceData(string stationUID, dc_EnumConstJBC.dc_Port portNbr) { // stop tracing one port if (m_htStationPortsData.Contains(stationUID)) { Hashtable listPortData = (Hashtable)(m_htStationPortsData[stationUID]); if (listPortData.Contains((Port)portNbr)) { listPortData.Remove((Port)portNbr); } evlogWrite("Stop trace port: " + portNbr.ToString(), stationUID); //Comprobar si existe algún puerto mas que se esté trazando if (listPortData.Count == 0) { long stationID = -1; try { //stationID = jbc.GetStationID(stationUID) stationID = System.Convert.ToInt64(m_htStationID[stationUID]); DLLConnection.jbc.StopContinuousMode(stationID, System.Convert.ToUInt32(System.Convert.ToUInt32(m_htStationQueue[stationUID]))); } catch (Exception) { } m_htStationQueue.Remove(stationUID); m_htStationID.Remove(stationUID); m_htStationPortsData.Remove(stationUID); m_htStationNumSequence.Remove(stationUID); m_htStationSpeed.Remove(stationUID); evlogWrite("Stop trace station.", stationUID); //Cierre y renombre del fichero con id único if (File.Exists(tempPathFilename(m_folderData, stationID))) { (new Microsoft.VisualBasic.Devices.ServerComputer()).FileSystem.WriteAllText(tempPathFilename(m_folderData, stationID), "}", true); (new Microsoft.VisualBasic.Devices.ServerComputer()).FileSystem.MoveFile(tempPathFilename(m_folderData, stationID), tracePathFilename(m_folderData, stationID, DateTime.Now)); } } } }