Description
My application is unable to connect to my Epson TM-m30III printer.
The application fails on pritnerInstance.connect() and logs error [PrinterError: Failed to recover the printer.]
I have tried restarting the printer as described in the documentation, but the issue persists.
I am using the following code
import { memo } from 'react';
import { View, StyleSheet, Text, Pressable, PermissionsAndroid, Platform } from 'react-native';
import { DeviceInfo, Printer, usePrintersDiscovery } from 'react-native-esc-pos-printer';
import { FlatList } from 'react-native-gesture-handler';
export const PrinterNew = memo(() => {
const { start, printerError, isDiscovering, printers } =
usePrintersDiscovery();
async function requestPermissions() {
if (Platform.OS === 'android') {
await PermissionsAndroid.requestMultiple([
PermissionsAndroid.PERMISSIONS.BLUETOOTH_CONNECT,
PermissionsAndroid.PERMISSIONS.BLUETOOTH_SCAN,
PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION, // Some devices require this
]);
}
}
async function printTestSheet(printer: DeviceInfo) {
console.log("Print test sheet")
try {
await requestPermissions();
console.log("permissions granted");
const printerInstance = new Printer({
target: printer.target,
deviceName: printer.deviceName,
});
await printerInstance.connect();
console.log("printer connected");
const res = await printerInstance.addQueueTask(async () => {
await printerInstance.addText(`This is a test sheet`);
await printerInstance.addFeedLine();
await printerInstance.addCut();
console.log("data added");
await printerInstance.sendData();
console.log("data sent");
await printerInstance.disconnect();
console.log("printer disconnected");
return;
})
console.log("result: ", res);
} catch (error: any) {
console.error(error);
}
}
return (
<View style={styles.container}>
<View style={styles.contentCotainer}>
<Text>Discovery</Text>
</View>
<FlatList
renderItem={({ item: printer }) =>
<Pressable
onPress={() => printTestSheet(printer)}
><Text>{printer.deviceName} - {printer.deviceType}</Text></Pressable>}
data={printers}
/>
<Text>{isDiscovering ? "loading" : "done"}</Text>
<View style={styles.contentCotainer}>
<Pressable
onPress={() => start()}
>
<Text>Start discovery</Text>
</Pressable>
{printerError ? (
<Text style={styles.errorText}>{printerError.message}</Text>
) : null }
</View>
</View>
);
});
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#fcf9f9',
alignItems: 'center',
justifyContent: 'center',
},
contentCotainer: {
flex: 1,
alignItems: 'center',
justifyContent: 'center',
},
errorText: {
color: 'red',
fontSize: 16,
marginTop: 20,
},
});
Steps to reproduce
- Startup Epson TM-m30III
- Put printer in pairing mode
- Press "Start discovery"
- Press the printer instance in the list to try and print a test sheet
react-native-esc-pos-printer version
4.4.3
React Native version
0.76.9
Platforms
Android, iOS
Workflow
Expo Dev Client
Architecture
Paper (Old Architecture)
Build type
Debug app & dev bundle
Device
Real device
Device model
Samsung galaxy a54 and Iphone 8
Acknowledgements
Yes
Description
My application is unable to connect to my Epson TM-m30III printer.
The application fails on pritnerInstance.connect() and logs error [PrinterError: Failed to recover the printer.]
I have tried restarting the printer as described in the documentation, but the issue persists.
I am using the following code
import { memo } from 'react';
import { View, StyleSheet, Text, Pressable, PermissionsAndroid, Platform } from 'react-native';
import { DeviceInfo, Printer, usePrintersDiscovery } from 'react-native-esc-pos-printer';
import { FlatList } from 'react-native-gesture-handler';
export const PrinterNew = memo(() => {
const { start, printerError, isDiscovering, printers } =
usePrintersDiscovery();
});
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#fcf9f9',
alignItems: 'center',
justifyContent: 'center',
},
});
Steps to reproduce
react-native-esc-pos-printer version
4.4.3
React Native version
0.76.9
Platforms
Android, iOS
Workflow
Expo Dev Client
Architecture
Paper (Old Architecture)
Build type
Debug app & dev bundle
Device
Real device
Device model
Samsung galaxy a54 and Iphone 8
Acknowledgements
Yes