Пример #1
0
        public void gridStations_CellClick(System.Object sender, System.Windows.Forms.DataGridViewCellEventArgs e)
        {
            if (e.RowIndex < 0)
            {
                return;
            }

            long stationID = System.Convert.ToInt64(System.Convert.ToUInt32(gridStations.Rows[e.RowIndex].Cells[tCol_ID].Value));

            if (gridStations.Columns[e.ColumnIndex].Name != tCol_But_All && gridStations.Columns[e.ColumnIndex].Name != tCol_But_Partial)
            {
                return;
            }

            CStation_SOLD instanceStn = jbc.Station(stationID);

            switch (gridStations.Columns[e.ColumnIndex].Name)
            {
            case tCol_But_All:
                if (instanceStn.CommandProtocol != CStationBase.Protocol.Protocol_01 | cbProtocol01.Checked)
                {
                    if (Interaction.MsgBox(Localization.getResStr("tConfirmAction"), MsgBoxStyle.YesNo, Localization.getResStr("tResetAllCounters")) == MsgBoxResult.Yes)
                    {
                        uiTransact         = resetCounters(stationID, true, true);
                        iStationIDTransact = (int)stationID;
                        // la actualización del grid de los contadores se hace con un timer
                        // porque la API no está grabando en memoria y las tramas de lectura posteriores
                        // a la escritura tardan en ejecutarse. Se usa una transacción.
                        Cursor = Cursors.WaitCursor;
                        timerUpdateCounters.Start();
                    }
                }
                break;

            case tCol_But_Partial:
                if (instanceStn.GetStationFeatures().PartialCounters)
                {
                    if (Interaction.MsgBox(Localization.getResStr("tConfirmAction"), MsgBoxStyle.YesNo, Localization.getResStr("tResetPartialCounters")) == MsgBoxResult.Yes)
                    {
                        uiTransact         = resetCounters(stationID, true, false);
                        iStationIDTransact = (int)stationID;
                        // la actualización del grid de los contadores se hace con un timer
                        // porque la API no está grabando en memoria y las tramas de lectura posteriores
                        // a la escritura tardan en ejecutarse. Se usa una transacción.
                        Cursor = Cursors.WaitCursor;
                        timerUpdateCounters.Start();
                    }
                }
                break;

            default:
                return;
            }
        }
Пример #2
0
        private uint resetCounters(long stationID, bool bPartial, bool bGlobal)
        {
            // devuelve el ID de transacción para saber cuando ha finalizado
            CStation_SOLD instanceStn = jbc.Station(stationID);
            uint          transact    = (uint)0;

            instanceStn.SetControlMode(ControlModeConnection.CONTROL);
            if (bPartial && instanceStn.GetStationFeatures().PartialCounters)
            {
                for (var i = 0; i <= instanceStn.NumPorts - 1; i++)
                {
                    instanceStn.ResetPortToolMinutesPartial((Port)i);
                }
            }
            if (bGlobal)
            {
                instanceStn.ResetPortToolMinutesGlobalPorts();
            }
            transact = instanceStn.SetTransaction();
            instanceStn.SetControlMode(ControlModeConnection.MONITOR);
            instanceStn = null;
            return(transact);
        }