Подключите несколько принтеров и откройте кассу, если подключитесь к принтеру с помощью принтера epson в объективе c - PullRequest
0 голосов
/ 15 апреля 2019

Я подключаю несколько принтеров для открытых денежных ящиков, используя цикл for, но он не работает для нескольких принтеров.после открытия денежного ящика я хочу распечатать квитанцию ​​также

Мой код здесь:

NSMutableArray *SelectedPrinter=[[NSUSERDEFAULTS valueForKey:@"SelectedPrinter"] mutableCopy];    


for (int i=0; i<SelectedPrinter.count; i++)
{
    [self printdataWithTarget:[[SelectedPrinter objectAtIndex:i] valueForKey:@"modelName"] withDeviceName:[[SelectedPrinter objectAtIndex:i] valueForKey:@"portName"]];
}




(void)printdataWithTarget:(NSString*)target withDeviceName:(NSString *)deviceName
{
    [[MPOSPrinter sharedManager] disconnectPrinter];
    double delayInSeconds = 0.1;
    dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
    dispatch_after(popTime, dispatch_get_main_queue(), ^(void)
    {
        [[MPOSPrinter sharedManager] disconnectPrinter];
        if ([[MPOSPrinter sharedManager] initializePrinter:deviceName])
        {
            if (![[MPOSPrinter sharedManager] connectPrinterWithPort:target])
            {
                [MBProgressHUD hideHUDForView:[APPDELEGATE window] animated:YES];
                dispatch_async(dispatch_get_main_queue(), ^{
                    [MBProgressHUD hideHUDForView:[APPDELEGATE window] animated:YES];
                    [[UIApplication sharedApplication] endIgnoringInteractionEvents];
                });
                //showAlert(@"",@"Please ensure your device is connected with the Printer and you have selected this hardware from the settings menu.");
            }
            else
            {
                if ([[MPOSPrinter sharedManager] isPrintable:[[[MPOSPrinter sharedManager] printer] getStatus]])
                {
                    [[[MPOSPrinter sharedManager] printer] addTextAlign:1];
                    [[[MPOSPrinter sharedManager] printer] addText:@""];
                    [[[MPOSPrinter sharedManager] printer] forceStopSound:0];

                    [[[MPOSPrinter sharedManager] printer] setReceiveEventDelegate:self];
                    [[[MPOSPrinter sharedManager] printer] addPulse:EPOS2_DRAWER_HIGH time:EPOS2_PULSE_100];
                    [[[MPOSPrinter sharedManager] printer] sendData:EPOS2_PARAM_DEFAULT];

                }
                else{
                    [MBProgressHUD hideHUDForView:[APPDELEGATE window] animated:YES];
                }
            }
        }
        else
        {
            [MBProgressHUD hideHUDForView:[APPDELEGATE window] animated:YES];
            NSLog(@"Not Initialize");
        }
    });
}
...