UNPKG

react-native-obd-retriver

Version:

A React Native hook library to manage Bluetooth Low Energy connections and communication with ELM327 OBD-II adapters.

2 lines 5.56 kB
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.ClearDTCExample=void 0;var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _react=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _DTCRawDataViewer=require("../components/DTCRawDataViewer");var _useDTCRetriever2=require("../ecu/hooks/useDTCRetriever");var _useECU2=require("../ecu/hooks/useECU");var _constants=require("../ecu/utils/constants");var _jsxRuntime=require("react/jsx-runtime");var _this=this,_jsxFileName="/Users/rakshitbharat/hardware/react-native-obd-retriver/src/examples/ClearDTCExample.tsx";function _getRequireWildcardCache(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap(),t=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(e){return e?t:r;})(e);}function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=_getRequireWildcardCache(r);if(t&&t.has(e))return t.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&{}.hasOwnProperty.call(e,u)){var i=a?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(n,u,i):n[u]=e[u];}return n.default=e,t&&t.set(e,n),n;}var ClearDTCExample=exports.ClearDTCExample=function ClearDTCExample(){var _useECU=(0,_useECU2.useECU)(),state=_useECU.state,connectWithECU=_useECU.connectWithECU,disconnectECU=_useECU.disconnectECU,clearDTCs=_useECU.clearDTCs;var _useDTCRetriever=(0,_useDTCRetriever2.useDTCRetriever)(),get03DTCObject=_useDTCRetriever.get03DTCObject;var _useState=(0,_react.useState)(null),_useState2=(0,_slicedToArray2.default)(_useState,2),currentDTCs=_useState2[0],setCurrentDTCs=_useState2[1];var _useState3=(0,_react.useState)(false),_useState4=(0,_slicedToArray2.default)(_useState3,2),loading=_useState4[0],setLoading=_useState4[1];var _useState5=(0,_react.useState)(false),_useState6=(0,_slicedToArray2.default)(_useState5,2),clearing=_useState6[0],setClearing=_useState6[1];var _useState7=(0,_react.useState)(null),_useState8=(0,_slicedToArray2.default)(_useState7,2),lastError=_useState8[0],setLastError=_useState8[1];var _useState9=(0,_react.useState)(null),_useState10=(0,_slicedToArray2.default)(_useState9,2),lastOperation=_useState10[0],setLastOperation=_useState10[1];var fetchCurrentDTCs=(0,_react.useCallback)((0,_asyncToGenerator2.default)(function*(){setLoading(true);setLastError(null);setLastOperation('Fetching Current DTCs');try{var result=yield get03DTCObject();setCurrentDTCs(result);setLastOperation('Current DTCs retrieved');}catch(error){setLastError(error instanceof Error?error.message:String(error));}finally{setLoading(false);}}),[get03DTCObject]);var handleClearDTCs=(0,_react.useCallback)((0,_asyncToGenerator2.default)(function*(){setClearing(true);setLastError(null);setLastOperation('Clearing DTCs');try{var success=yield clearDTCs();setLastOperation(success?'DTCs cleared successfully':'DTC clear failed');if(success){yield fetchCurrentDTCs();}}catch(error){setLastError(error instanceof Error?error.message:String(error));}finally{setClearing(false);}}),[clearDTCs,fetchCurrentDTCs]);var isConnected=state.status===_constants.ECUConnectionStatus.CONNECTED;return(0,_jsxRuntime.jsxs)(_reactNative.ScrollView,{style:styles.container,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.title,children:"Clear DTC Example"}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.statusContainer,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.statusLabel,children:"Status:"}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.statusValue,children:state.status})]}),state.lastError&&(0,_jsxRuntime.jsxs)(_reactNative.Text,{style:styles.errorText,children:["Error: ",state.lastError]}),lastError&&(0,_jsxRuntime.jsxs)(_reactNative.Text,{style:styles.errorText,children:["Operation Error: ",lastError]}),lastOperation&&(0,_jsxRuntime.jsxs)(_reactNative.Text,{style:styles.operationText,children:["Last Action: ",lastOperation]}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.buttonsContainer,children:(0,_jsxRuntime.jsx)(_reactNative.Button,{title:isConnected?'Disconnect ECU':'Connect ECU',onPress:isConnected?disconnectECU:connectWithECU,disabled:state.status===_constants.ECUConnectionStatus.CONNECTING})}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.buttonsContainer,children:[(0,_jsxRuntime.jsx)(_reactNative.Button,{title:"Fetch Current DTCs",onPress:fetchCurrentDTCs,disabled:!isConnected||loading}),(0,_jsxRuntime.jsx)(_reactNative.Button,{title:"Clear DTCs",onPress:handleClearDTCs,disabled:!isConnected||clearing||loading})]}),(0,_jsxRuntime.jsx)(_DTCRawDataViewer.DTCRawDataViewer,{title:"Current DTCs (Mode 03) Raw Data",data:currentDTCs,loading:loading})]});};var styles=_reactNative.StyleSheet.create({container:{flex:1,padding:16,backgroundColor:'#fff'},title:{fontSize:20,fontWeight:'bold',marginBottom:16},statusContainer:{flexDirection:'row',marginBottom:8},statusLabel:{fontWeight:'bold',marginRight:4},statusValue:{flex:1},errorText:{color:'red',marginVertical:8},operationText:{color:'blue',marginVertical:8},buttonsContainer:{flexDirection:'row',justifyContent:'space-between',marginVertical:12}}); //# sourceMappingURL=ClearDTCExample.js.map