コード例 #1
0
        /// <summary>
        /// Разбирает ДДД файл водителя(или другой карты)
        /// </summary>
        /// <param name="src">файл ДДД</param>
        /// <returns>обьект класса CardUnitClass</returns>
        public CardUnitClass CardUnitData_Parse(byte[] src)
        {
            bool parseResult = false;
            int pos = 0;
            cardUnitClass = new CardUnitClass();

            while (true)
            {
                byte[] tag = new byte[3];
                byte[] length = new byte[2];
                int length_i = 0;

                byte[] value;

                // tag parser
                while (true)
                {
                    if (src.Length < pos + 3)
                    {
                        // end of stream
                        // break tag parser
                        break;
                    }

                    // copy tag
                    Array.Copy(src, pos, tag, 0, 3);
                    pos += 3;
                    isValidFileID(tag);
                    if (fileId == -1) //Invalid Tag
                    {
                        if (HexBytes.CompareByteArrays(new byte[] { tag[0], tag[1] }, new byte[] { 0x76, 0x06 }))
                        {
                            // valid tag
                            // OPTAC download tools with firmware < v2.3 write two bytes (76 06, SID/TREP?!) at the
                            // beginning of a .DDD file that are out of specs...
                            pos -= 1;
                        }
                        else
                        {
                            // invalid tag
                            pos -= 2;
                        }
                    }
                    else
                    {
                        parseResult = true;
                        // break tag parser
                        break;
                    }
                }// end tag parser

                if (parseResult == false)
                {
                    // break data parser
                    break;
                }

                if (src.Length < pos + 2)
                {
                    // break data parser
                    break;
                }

                // copy length
                Array.Copy(src, pos, length, 0, 2);
                pos += 2;

                length_i = calculateLength(length);
                if (src.Length < pos + length_i)
                {
                    parseResult = false;
                    // break data parser
                    break;
                }

                // copy value
                value = new byte[length_i];
                Array.Copy(src, pos, value, 0, length_i);
                pos += length_i;

                // add data
                //------------------------------------------
               // parseresult = cardData.add(tag, length, value);
                switch (fileId)
                {
                    case 1://"EF_ICC";
                        {
                            ef_icc = new EF_ICC(value);
                        }
                        break;
                    case 2: //"EF_IC";
                        {
                            ef_ic = new EF_IC(value);
                        }
                        break;
                    case 3://EF_Card_Certificate
                        {
                            ef_card_certificate = new EF_Card_Certificate(value);
                            ef_card_value = value;
                        }
                        break;
                    case 4://EF_CA_Certificate
                        {
                            ef_ca_certificate = new EF_CA_Certificate(value);
                        }
                        break;
                    case 5://EF_Application_Identification
                        {
                                ef_application_identification = new EF_Application_Identification(value);
                                cardType = ef_application_identification.cardType;
                        }
                        break;

                    case 6://EF_Identification
                        {
                                ef_identification = new EF_Identification(value, cardType);
                        }
                        break;
                    case 7://EF_Card_Download (driver card)
                        {
                            ef_card_download = new EF_Card_Download(value, cardType);
                        }
                        break;
                    case 8://EF_Driving_Licence_Info
                        {
                                ef_driving_licence_info = new EF_Driving_Licence_Info(value);
                        }
                        break;
                    case 9://EF_Events_Data
                        {
                            ef_events_data = new EF_Events_Data(value, ef_application_identification.noOfEventsPerType);
                        }
                        break;
                    case 10://EF_Faults_Data
                        {
                            ef_faults_data = new EF_Faults_Data(value, ef_application_identification.noOfFaultsPerType);
                        }
                        break;
                    case 11://EF_Driver_Activity_Data
                        {
                            ef_driver_activity_data = new EF_Driver_Activity_Data(value, ef_application_identification.activityStructureLength);
                        }
                        break;
                    case 12://EF_Vehicles_Used
                        {
                            ef_vehicles_used = new EF_Vehicles_Used(value, ef_application_identification.noOfCardVehicleRecords);
                        }
                        break;
                    case 13://EF_Places
                        {
                            ef_places = new EF_Places(value, ef_application_identification.noOfCardPlaceRecords);
                        }
                        break;
                    case 14://EF_Current_Usage
                        {
                            ef_current_usage = new EF_Current_Usage(value);
                        }
                        break;
                    case 15://EF_Control_Activity_Data
                        {
                            ef_control_activity_data = new EF_Control_Activity_Data(value);
                        }
                        break;
                    case 16://EF_Specific_Conditions
                        {
                            ef_specific_conditions = new EF_Specific_Conditions(value, cardType);
                        }
                        break;
                    case 17://EF_Card_Download (workshop card)
                        {
                            ef_card_download = new EF_Card_Download(value, cardType);
                        }
                        break;
                    case 18://EF_Calibration
                        {
                            ef_calibration = new EF_Calibration(value, ef_application_identification.noOfCalibrationRecords);
                        }
                        break;
                    case 19://EF_Sensor_Installation_Data
                        {
                            ef_sensor_installation_data = new EF_Sensor_Installation_Data(value);
                        }
                        break;
                    case 20://EF_Controller_Activity_Data
                        {
                            ef_controller_activity_data = new EF_Controller_Activity_Data(value, ef_application_identification.noOfControlActivityRecords);
                        }
                        break;
                    case 21://EF_Company_Activity_Data
                        {
                            ef_company_activity_data = new EF_Company_Activity_Data(value, ef_application_identification.noOfCompanyActivityRecords);
                        }
                        break;
                    case -222:
                        {
                            //skipping signature Info!!
                        }
                        break;
                    default:
                        {
                            parseResult = false;
                        }
                        break;
                }

                //------------------------------------------
                if (parseResult == false)
                {
                    // break data parser
                    break;
                }
            }// end data parser
            cardUnitClass.ef_application_identification = ef_application_identification;
            cardUnitClass.ef_ca_certificate = ef_ca_certificate;
            cardUnitClass.ef_calibration = ef_calibration;
            cardUnitClass.ef_card_certificate = ef_card_certificate;
            cardUnitClass.ef_card_download = ef_card_download;
            cardUnitClass.ef_company_activity_data = ef_company_activity_data;
            cardUnitClass.ef_control_activity_data = ef_control_activity_data;
            cardUnitClass.ef_controller_activity_data = ef_controller_activity_data;
            cardUnitClass.ef_current_usage = ef_current_usage;
            cardUnitClass.ef_driver_activity_data = ef_driver_activity_data;
            cardUnitClass.ef_driving_licence_info = ef_driving_licence_info;
            cardUnitClass.ef_events_data = ef_events_data;
            cardUnitClass.ef_faults_data = ef_faults_data;
            cardUnitClass.ef_ic = ef_ic;
            cardUnitClass.ef_icc = ef_icc;
            cardUnitClass.ef_identification = ef_identification;
            cardUnitClass.ef_places = ef_places;
            cardUnitClass.ef_sensor_installation_data = ef_sensor_installation_data;
            cardUnitClass.ef_specific_conditions = ef_specific_conditions;
            cardUnitClass.ef_vehicles_used = ef_vehicles_used;

            return cardUnitClass;
        }
コード例 #2
0
ファイル: Data.aspx.cs プロジェクト: ShunkevichDV/FIS
    protected void Driver_DrivingLicenceInfo(object sender, EventArgs e)
    {
        EnableAllDriversPreviewButtons();
        DrivingLicenceInfo_btn.Enabled = false;
        FilesPreviewPanel.Visible = true;

        int userID = 0;
        int dataBlockId = Convert.ToInt32(onlyForInternal.Value);
        string connectionString = ConfigurationSettings.AppSettings["fleetnetbaseConnectionString"];
        DataBlock dataBlock = new DataBlock(connectionString, ConfigurationManager.AppSettings["language"]);
        dataBlock.OpenConnection();
        TextBoxTest.Text = "";

        try
        {
            CardUnit.EF_Driving_Licence_Info data = new CardUnit.EF_Driving_Licence_Info();
            data = dataBlock.cardUnitInfo.Get_EF_Driving_Licence_Info(dataBlockId);
            /*  TextBoxTest.Text += "Driving Licence Info:    " + Environment.NewLine + Environment.NewLine + "<br/>" + "<br/>";

              TextBoxTest.Text += "drivingLicenceIssuingAuthority:    " + data.cardDrivingLicenceInformation.drivingLicenceIssuingAuthority.ToString() + Environment.NewLine + "<br/>";
              TextBoxTest.Text += "drivingLicenceIssuingNation:       " + data.cardDrivingLicenceInformation.drivingLicenceIssuingNation.ToString() + Environment.NewLine + "<br/>";
              TextBoxTest.Text += "drivingLicenceNumber:              " + data.cardDrivingLicenceInformation.drivingLicenceNumber.ToString() + Environment.NewLine + "<br/>";*/

            FilesPreviewDataGrid.DataSource = DriverPreviewDataTable.DriverPreview_DrivingLicenceInfo(data);
            FilesPreviewDataGrid.DataBind();
        }
        catch (Exception exc)
        {
            TextBoxTest.Text = "";
            Status.Text = exc.Message;
            StatusUpdatePanel.Update();
        }
        finally
        {
            dataBlock.CloseConnection();
            ModalPopupExtender1.Hide();
        }
    }