update bus_monitor.py

This commit is contained in:
marios8543 2024-06-08 20:27:35 +03:00
parent c1251a18fa
commit e9262827c5
7 changed files with 6605 additions and 80 deletions

View File

@ -19,47 +19,17 @@ import mod_db_manager
import mod_elm
from mod_elm import ELM
from mod_ddt_ecu import DDTECU
from mod_utils import clearScreen
from mod_utils import ChoiceLong
from mod_utils import KBHit
from mod_utils import pyren_encode
from xml.dom.minidom import parse
import xml.dom.minidom
from serial.tools import list_ports
from flask import Flask, jsonify, request, send_file
from flask_socketio import SocketIO
mod_globals.os = os.name
if mod_globals.os == 'nt':
import pip
try:
import serial
except ImportError:
pip.main(['install','pyserial'])
try:
import colorama
except ImportError:
pip.main(['install','colorama'])
try:
import colorama
except ImportError:
print("\n\n\n\t\t\tGive me access to the Internet for download modules\n\n\n")
sys.exit()
colorama.init()
try:
import serial
from serial.tools import list_ports
#import ply
except ImportError:
print("\n\n\n\tPleas install additional modules")
print("\t\t>sudo easy_install pyserial")
#print "\t\t>sudo easy_install ply"
sys.exit()
class DDT_MON():
@ -203,7 +173,7 @@ class DDT_MON():
def loadInFile( self, infile ):
print("Loading show list:"+infile+'\n')
lf = codecs.open(infile,'rt',encoding='utf8')
lf = codecs.open(infile,'r',encoding='utf8')
lff = lf.read()
self.showList = []
for l in lff.split('\n'):
@ -211,7 +181,7 @@ class DDT_MON():
if len(l)==0: continue
self.showList.append( l.split(';')[0] )
def showData( self, ct ):
def __showData( self, ct ):
if self.screenMode==0: #frame monitor mode
if len(self.framefilter)==3 and self.framefilter in list(self.frames.keys()):
@ -264,6 +234,20 @@ class DDT_MON():
ost = pyren_encode('%-50s %s' % (d, self.datas[d]))
print(ost)
def showData(self, ct):
for d in self.showList:
if d in list(self.decu.req4data.keys()):
fid = self.decu.requests[self.decu.req4data[d]].SentBytes[1:]
if fid in list(self.f2r.keys()) and fid in list(self.frames.keys()):
val = self.decu.getValue(d, False, self.f2r[fid], self.frames[fid]['data'])
else:
val = mod_globals.none_val
self.datas[d] = val
for d in self.showList:
if d in list(self.datas.keys()):
yield self.datas[d]
candef = ''
outfile = ''
infile = ''
@ -285,7 +269,7 @@ def optParser():
parser.add_argument('-p',
help="ELM327 com port name",
dest="port",
default="")
default="/dev/tty0")
parser.add_argument("-r",
help="com port rate during diagnostic session {38400[default],57600,115200,230400,500000}",
@ -305,7 +289,7 @@ def optParser():
parser.add_argument("-x",
help="xml file with frames defenition",
dest="xmlfile",
default="")
default="can_v84_10.xml")
parser.add_argument("-o",
help="output file for saving parameters list",
@ -315,7 +299,7 @@ def optParser():
parser.add_argument("-f",
help="file with selected parameters list",
dest="infile",
default="")
default="candump.txt")
parser.add_argument("--log",
help="log file name",
@ -392,6 +376,8 @@ def chooseXml():
return choice[0]
def main():
web = Flask(__name__, static_folder="web_static/", static_url_path="/static")
socket = SocketIO(web)
global candef
global outfile
@ -417,49 +403,36 @@ def main():
print(candef)
mon = DDT_MON( elm, candef, outfile, infile )
kb = KBHit()
lt = ct = mod_elm.pyren_time()
show_loc = threading.Event()
if mod_globals.opt_ecuAddr != '':
mon.framefilter = mod_globals.opt_ecuAddr
mon.setFilter(mon.framefilter)
def mainloop():
while(1):
time.sleep( 0.03 )
ct = mod_elm.pyren_time()
if (ct-lt)>0.1:
lt = ct
show_loc.set()
socket.emit("frame", {"frame": [v for v in mon.showData(ct)]})
show_loc.clear()
while(1):
c = ''
if kb.kbhit():
c = kb.getch()
if c=='q' or c=='Q' or c=='\x71' or c=='\x51' :
print()
mon.elm.stopMonitor()
mon.elm.reset_elm()
break;
if c == 'r' or c == 'R' or c == '\x72' or c == '\x52':
for l in list(mon.frames.keys()):
mon.frames[l]['changes']=0
continue
if c>='a' and c<='f':
c = chr(ord(c) - 32)
if (c>='0' and c<='9') or (c>='A' and c<='F'):
mon.framefilter = mon.framefilter + c
mon.setFilter( mon.framefilter )
elif c=='\x7f' or c=='\x08': #backspase
mon.framefilter = mon.framefilter[:-1]
mon.setFilter( mon.framefilter )
else:
pass
#mon.framefilter = mon.framefilter + '<' + str(ord(c)) + '>'
time.sleep( 0.03 )
ct = mod_elm.pyren_time()
if (ct-lt)>0.1:
lt = ct
show_loc.set()
mon.showData( ct )
show_loc.clear()
@socket.on("connect")
def on_connect():
keys = []
for d in mon.showList:
if d in list(mon.datas.keys()):
keys.append(d)
socket.emit("setKeys", {"keys": keys})
@web.get("/")
def index():
return send_file("web_html/bus_monitor.html")
socket.start_background_task(mainloop)
socket.run(web, "0.0.0.0", 5000)
if __name__ == '__main__':
main()

443
pyren3/candump.txt Normal file
View File

@ -0,0 +1,443 @@
DistanceTotalizer;SCALED;
ResetInfo_ECM_84;LIST
ElectricalPowerDrived;SCALED;
FrontWiperStopPosition_USM;LIST
DistanceTotalizer_84;SCALED;
AntiscanOn_84;LIST
ALSMalfunction;LIST
PassengerAIRBAG_OFFLampState_84;LIST
ASRinRegulation_84;LIST
UndefinedPosition_84;LIST
ManualModeState;LIST
OverSpeedBuzzer_PAX;LIST
RearLeftWheelState_84;LIST
Dongle_command_USM;SCALED;
FrontWipingRequest;LIST
DieselFilterWaterDetection;LIST
HeaterUnitSetpointFreeze;LIST
SteeringActuatorFailure_84;LIST
ResetInfo_DSU;LIST
EngineStatus_84__copy_;LIST
LeftTurnIndicatorRequest_DSU;LIST
FrontFogLightsRequest;LIST
ElectricWindowRequest;LIST
DieselPreHeating_84;LIST
Reserved_1bit;LIST
EngineStatus_84;LIST
AT_MinimumIdleSpeedRequest;SCALED;
SteeringWheelRotationSpeed;SCALED;
ElectricalPowerCut_Freeze_84;LIST
DTOOL_to_HLS
SteeringLockMinorElecFailure_84;LIST
Steering_Column_Lock_84;LIST
LockForbidden_84;LIST
Rollbar_failure;LIST
SNOW_SW;LIST
Right_LeftImbalance_84;LIST
EvaporatorTemperature;SCALED;
SteeringLockCode_84;SCALED;
BlowerState;LIST
IdleSpeedControlRequest_84;SCALED;
EngineRPM_84;SCALED;
PassengerDetectionOnSeat;LIST
BatteryLamp;LIST
MSRTorqueRequest_84;SCALED;
VehicleSpeed_UPC;LIST
USM_WakeUpSleepReq;LIST
EngineMode_84;LIST
ChildLockMalfunction;LIST
IntakeManifoldPressure_84;SCALED;
CabinFanState;LIST
AT_to_DTOOL
RearDefrostAutoSelect;LIST
PositionLightsRequest_DSU;LIST
FuelConsumption_84;SCALED;
ClutchSwitchMaximumTravel_84;LIST
YawRate_84;SCALED;
SteeringLockCOP_84;SCALED;
Dongle_ID_BCM_1;SCALED;
Dongle_ID_BCM_2;SCALED;
MSRinRegulation_84;LIST
EngOverSpeedCutOffThreshold_84;LIST
Underdrive_84;LIST
LongitudinalAccelerationProc;SCALED;
ATTorqueAcknowledgement;LIST
OilPressureSwitch;LIST
BrakePadWear;LIST
PassAIRBAG_OFFLampOperational_84;LIST
SensorTestAuthorized_84;LIST
SafetyBeltLampState;LIST
FuelConsumptionType_84;LIST
GradeLogicFlag;LIST
HandBrakeSwitch_84;LIST
OBD_Request_84
IntakeManifoldAirTemperature_84;SCALED;
AT_ProgSelect_84;LIST
RearFogLightStatus_84;LIST
CloseActiveBrakeSwitch_ABS_84;LIST
LPGNG_PetrolOperation_84;LIST
DTOOL_to_USM
DTOOL_to_BRAKE
IgnitionState_UCH_;LIST
HeadLampsWasherSelection;LIST
LPG_NGGaugeInformation_84;SCALED;
Request_GazolinePumpCutOff_84;LIST
FullLoad;LIST
RequestedTorqueAfterProc_84;SCALED;
AT_Torque;SCALED;
PositionLightsRequest_UCH_;LIST
NominalFuelConsumption;SCALED;
Blank_Coded_84;LIST
EBVinRegulation_84;LIST
RearRightWheelPressure_84;SCALED;
LockUpRequest;LIST
EngineControlFailureLevel1_84;LIST
EngineTorque_WithoutGBReq_84;SCALED;
ClimateCoolingStatusCopy;LIST
DragReduction_84;LIST
HardTopPosition;LIST
GearShiftRefused_84;LIST
GCU_to_DTOOL
TripDisplayScrollingRequest;LIST
CrankingAuthorisation_ATviaECM;LIST
ResetInfo_UCC_84;LIST
AT_PositionDisplay_84;LIST
ETCShutdownRequest;LIST
Limit_SlowTorqReq_84;SCALED;
ESPClock_84;SCALED;
AllowedPowerGradient;SCALED;
TransmRangeEngaged_84_copy_;LIST
AT_Faults_States_84;SCALED;
SafetyLineInhibition_84;LIST
MeanEffectiveTorque_84;SCALED;
AYCinRegulation_84;LIST
AT_Warning;LIST
ResetInfo_AIRBAG_84;LIST
DayDimmedLight_MaxPercent_84;SCALED;
EngineControlFailureLevel2_84;LIST
CLIM_to_DTOOL
ABSStateLamp;LIST
AT_Snow_Selected_Mode;LIST
UCT_to_DTOOL
FlashingIndicatorStatus;LIST
SLockRequestControl_84;SCALED;
EngineCoolantTemp_84;SCALED;
HLS_to_DTOOL
EngineFanSpeedRequest;LIST
LPG_NGLampRequest_84;LIST
CloseActiveBrakeSwitch_UCH;LIST
ExternalTemp_84;SCALED;
FuelLevel_APV_84;SCALED;
HeadLampsWasherRequest;LIST
SteeringLock_BCM_Failure;LIST
PassengerSafetyBeltSwitch;LIST
ParticulateFilterState;LIST
SSPPStopLamp_84;LIST
RollClosureRequest;LIST
EPSteeringFailure;LIST
ABSMalfunction_84;LIST
USM_RefusetoSleep;LIST
LPGLow_84;LIST
DayNightInformation;LIST
AT_TorqueControlType;LIST
CrankingAuthorisation_AT_84;LIST
ESCL3Position_84;LIST
ParkingBrakeRequestInProgress;LIST
SpeedPressureMisadaptation_84;LIST
OBD_Response_AT_84
ResetInfo_TdB_84;LIST
DisplayedOilLevel_84;LIST
ActualLPG_NGFlow_84;SCALED;
AbsoluteTimeSince1rstIgnition;SCALED;
HardTopPositionCopy;LIST
WipingMalfunction;LIST
AT_Clock;SCALED;
SwaSensorInternalStatus;LIST
LPG_NGTemperature_84;SCALED;
ErgonomicPedal;SCALED;
FrontLeftWheelPressure_84;SCALED;
ClampingStatusDisplayInhibition;LIST
CylinderNumber_84;LIST
DayRunningLightRequest;LIST
IgnitionON_84;LIST
BitRateConfigured_84;LIST
BatteryVoltage_USM;SCALED;
ResetInfo_UCT;LIST
VehicleForwardTilt;SCALED;
VSUStateLamp;LIST
ParticulateFilterFailureDisplay;LIST
LowBeamStatus;LIST
LowBeamRequest_DSU;LIST
ChecksumFront;SCALED;
KickDownActivated;LIST
Card_Key_Number_84;LIST
ASRMalfunction;LIST
Dongle_ID_USM;SCALED;
USM_to_DTOOL
TimeOutOnSensorTest_84;LIST
RearDefrostPushInvalid;LIST
SwaMessageCounter;SCALED;
WheelSpeed_F_L;SCALED;
WheelSpeed_F_R;SCALED;
ClearSteeringCode_84;LIST
ResetInfo_APB;LIST
ECBStateLamp;LIST
CrankingAuthorization_Verlog;LIST
DiagMuxOn_84;LIST
FrictionTorque_84;SCALED;
ParkingBrakeMalfunction;LIST
PositionLightsStatus;LIST
MILLamp_84;LIST
CompressorActivation;LIST
StarterStatus;LIST
TrailerPresence_84;LIST
AIRBAGMalfunction_84;LIST
AT_FanRequest_84;LIST
PDCUTREQ;LIST
ResetInfo_HLS;LIST
RequestedSpeed_84;SCALED;
CorrectionCylinderNumber_84;LIST
DoorLockingState;SCALED;
OutofRangeOperatingVoltage_84;LIST
AIRBAGMalfunctionLampState_84;LIST
ALS_activated;LIST
ClimateCoolingSelect;LIST
Dongle_ID_EPS;SCALED;
DTOOL_to_CLUSTER
Cluster_RefusetoSleep;LIST
ESPDeactivated_84;LIST
FrontRightWheelPressure_84;SCALED;
SSPPServiceLamp_84;LIST
MaximumInstantTorque;SCALED;
ClusterDrivenLampsAutoCheck_84;LIST
DTOOL_to_PAS
FrontRightWheelState_84;LIST
AT_TorqueRequestInProgress;LIST
ABSinRegulation_84;LIST
PowerSupplyFeedback_84;LIST
SSPPLeakageLamp_84;LIST
ClutchPosition;LIST
LPG_NGPressure_84;SCALED;
ECM_MechanicalLoadRequest;LIST
LowBatVoltDisplay;LIST
WrongCode_84;LIST
IgnitionSupplyConfirmation;LIST
InstantMecanicalPowerByAlt;SCALED;
DTOOL_to_BCM
DriverSafetyBeltSwitch;LIST
OKToCommuteLoadByUSM;LIST
CLUSTER_to_DTOOL
VehiculeRunning;LIST
LPG_NG_84;LIST
MinimumInstantTorque;SCALED;
DTOOL_to_EPS
FrontWiperProtection;LIST
EngineImmobiliserFailure;LIST
HeadLampsWasherStatus;LIST
HDCStateLamp;LIST
SmartKeylessInformationDisplay;LIST
Dongle_command_BCM;SCALED;
VehicleSpeed_CVT;SCALED;
MilLampState_84;LIST
LockingFinished_84;LIST
DiagMuxOn_BCM;LIST
ConfigAttemptCounter_84;LIST
RearGearEngaged_84_UPC;LIST
ResetInfo_Verrou_84;LIST
RearRightWheelState_84;LIST
EmergencyEngineStop;SCALED;
NeutralContact;LIST
RearLeftWheelPressure_84;SCALED;
VehicleType;LIST
FuelLevel_84;SCALED;
ClimateCoolingStatus;LIST
FastTorqueRequest_84;SCALED;
ShortVehicleID;LIST
AutomaticWipingMalfunction;LIST
ShiftMapChangeRequest;LIST
ASR_MSRAcknowledgement_84;LIST
WheelSpeed_R_L_84;SCALED;
PorN_display_request;LIST
EngineFanSpeedStatus;LIST
ResetInfo_ABS_84;LIST
APCLineStatus_copy_;LIST
OutputShaftRevolution;SCALED;
LPG_NGModeRequest_84;LIST
ChecksumRear;SCALED;
TA_Position;LIST
AlternatorLoad_84;SCALED;
ESPMalfunction_84;LIST
ResetInfo_EPS;LIST
TorqueRequestStatus_84;LIST
WheelSpeed_R_R_84;SCALED;
ResetInfo_AT_84;LIST
IdleSpeedIncreaseRequest_84;LIST
IdleSpeedIncrease_UCH_;LIST
EngineRPM_84_copy_;SCALED;
HighBeamRequest_UCH_;LIST
FinishRoofMovement;LIST
UCCType;LIST
PredictedMecanicalPowerByAlt;SCALED;
OilDrainingRange_84;SCALED;
MessageCounterFront;SCALED;
ResetInfo_PAS;LIST
AT_Eco_Selected_Mode;LIST
RotorCurrent_84;SCALED;
MaxTimeToCommute;SCALED;
TorqueConverterState_84;LIST
TorqueControlType_84;LIST
UCHComputerOperatingProperly_84;SCALED;
LoadPressureMisadaptation_84;LIST
StartingMode_BCM;LIST
LPG_NGTankEmpty_84;LIST
SteeringWheelAngle;SCALED;
DTOOL_to_GCU
SpeedInhibition_84;LIST
Flow_CylinderCorrection_84;SCALED;
ClimateCoolingRequest_84;LIST
SwaChecksum;SCALED;
FrontFogLightStatus;LIST
BuzzerRequest_FPA;LIST
AT_MILReq_84;SCALED;
SoftwareLockValue_84
GeneralBadUse;LIST
DTOOL_to_AT
EarlyGearShiftUp_84;LIST
ELAMP;LIST
AlternatorMaximumPower;SCALED;
ATPowerLatch_84;LIST
SLockValueControl_84;SCALED;
RequestedTransferedTorque;SCALED;
AIRBAG_to_DTOOL
DTOOL_to_UCT
EPS_to_DTOOL
DoorSwitches;SCALED;
WheelsLockingState;LIST
UCT_Buzzer;LIST
SSPP_Buzzer;LIST
InvalidLPG_NGConsumption_84;LIST
EPSIndexNotDetected;LIST
WarningWaterTemp_84;LIST
SteeringLockMajorElecFailure_84;LIST
ValidAIRBAGInformation_84;LIST
WakeUpType;LIST
LoadDrivenByBCMToBeCommuted;LIST
Shifting_Authorization_84;LIST
ClutchSwitch_84;LIST
MSRDisabled_84;LIST
GazComposition_84;LIST
MuteRadioOrder;LIST
DTOOL_to_ALLUCEOBD
LPG_NGSystemMajorFailure_84;LIST
UPAFailureDispRequest;LIST
DTOOL_to_CLIM
DownTransitionOfEngineCoolantTem;LIST
DTOOL_to_APB
AlternatorNumber;LIST
AnticipatedRGBPumpState;LIST
MBLFailureDisplay;LIST
VSUPresence;LIST
FrontWiperStatus;LIST
Odometer_84;SCALED;
DriveStyleDetection;SCALED;
HardTopFailure;LIST
HeaterUnitSetPoint;SCALED;
PassAIRBAG_OFF_84;LIST
FuelLow_84;LIST
VehicleSpeed_84_copy;SCALED;
DTOOL_to_ECM
LPG_NGSystemMinorFailure_84;LIST
BuzzerRequest;LIST
AT_Impulsive_Selected_Mode;LIST
LPG_NGSystemReady_84;LIST
DrivingRange_PAX;SCALED;
ECM_to_DTOOL
ResetInfo_Swa;LIST
Filling2_84;SCALED;
UnlockingFinished_84;LIST
SoftwareLockRequest_84
ESPStateLamp;LIST
MaximumMechanicalPowerAllowed_84;SCALED;
APCLineStatus;LIST
EBVStateLamp;LIST
BrakePedalRequest;LIST
RearDefrostRequest;LIST
LowBeamRequest_UCH_;LIST
RearDefrostRequest_ECM;LIST
FuelCutRequestedEngineSpeed;SCALED;
CarburetionType_84;LIST
DiagnosticLPG_NGGauge_84;LIST
LPG_NGSystemMalfunction_84;LIST
OuputStatus__copy_;LIST
VehiclePressureState_84;LIST
SSPPInhibition_84;LIST
CrankingAuthorization_ECM;LIST
AIRBAGMalfuncLampOperational_84;LIST
DistanceTotalizer_APV_84;SCALED;
Dongle_command_EPS;SCALED;
EngineCoolantRegulationTemperatu;LIST
FrontLeftWheelState_84;LIST
BCM_to_DTOOL
VehicleSpeed_84;SCALED;
BitRateConfiguration_84;LIST
Filling1_84;SCALED;
TransmRangeEngaged_84;LIST
EngineCoolantTemp_84_copy_;SCALED;
RearGearEngaged_84;LIST
ASRStaticTorqueRequest_84;SCALED;
MessageCounterRear;SCALED;
HighBeamStatus;LIST
FillingStatus_84;LIST
Transversalacceleration_84;SCALED;
MajorFailure_84;LIST
HighBeamRequest_DSU;LIST
AirbagCrashOrder;SCALED;
DiagMuxOn_84_copy;LIST
Cluster_WakeUpSleepReq;LIST
ResetInfo_UCH_84;LIST
KeylessPushState;LIST
APB_to_DTOOL
RearDefrostPush;SCALED;
PowerTrainGain_84;SCALED;
RequestForLPG_NGFlow_84;SCALED;
Badge_battery_low;LIST
ManualRearDefrostStatus;LIST
InputShaftRevolution;SCALED;
AbsentFrameUCH_to_ESCL3_84;LIST
RequestedSpeedBlink_84;LIST
DTOOL_to_AIRBAG
DTOOL_to_ALL
RearDefrostStatus;LIST
NightDimmedLight_MaxPercent_84;SCALED;
ParkingBrakeBindingStatus;LIST
UPAStatusDispRequest;LIST
CruiseControlStatusDisplay;LIST
OpenActiveBrakeSwitch_ECM_84;LIST
DeliveryModeInfo;LIST
ResetInfo_USM;LIST
LPG_NGMILRequest_84;LIST
CrashDetected_84;LIST
PAS_to_DTOOL
VehicleSideTilt;SCALED;
CruiseControlStatus_84;LIST
BrakeSystemMalfunction_84;LIST
BCM_WakeUpSleepCommand;LIST
Steering_Column_Unlock_84;LIST
BRAKE_to_DTOOL
CrashDetectionOutOfOrder_84;LIST
InconsistentUCHMessage_84;LIST
ASRDynamicTorqueRequest_84;SCALED;
LPG_NGPushLampRequest_84;LIST
RawPedal;SCALED;
ResetInfo_CLIM_84;LIST
RightTurnIndicatorRequest_DSU;LIST
DiagFuelGauge_84;LIST
ABS_WarningRequest;LIST
Key_or_Keyless_Vehicule;LIST
OuputStatus;LIST
CustomerEngIddleSpeedReq;LIST
StarterStatus_copy;LIST
DisplayedSpeed;SCALED;
ClampingAlertToDriver;LIST
PositionLightsStatus_84;LIST

View File

@ -11,7 +11,7 @@ import mod_globals
mod_globals.opt_demo = True
dash = RenDash("/dev/tty1")
web = Flask(__name__)
web = Flask(__name__, static_folder="web_static/", static_url_path="/static")
socket = SocketIO(web)
watched_datarefs = []
@ -119,7 +119,7 @@ def stop():
@web.get("/")
def index():
return send_file("index.html")
return send_file("web_html/data_logger.html")
@socket.on("exit")
def exit_logger():

View File

@ -0,0 +1,42 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Ecu Watcher</title>
<script src="/static/vue.js"></script>
<script src="/static/socket.io.js"></script>
</head>
<body>
<div id="app">
<div>
<div v-for="(key, index) in keys" :key="key">
{{ key }}: {{ values[index] }}
</div>
</div>
</div>
<script>
const socket = io();
const app = Vue.createApp({
data() {
return {
keys: [],
values: [],
};
},
methods: {},
mounted() {
socket.on("setKeys", (msg) => {
this.keys = msg.keys;
});
socket.on("frame", (msg) => {
this.values = msg.frame;
});
},
});
app.mount("#app");
</script>
</body>
</html>

View File

@ -4,8 +4,8 @@
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Ecu Watcher</title>
<script src="https://cdn.jsdelivr.net/npm/vue@3"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/4.0.1/socket.io.js"></script>
<script src="/static/vue.js"></script>
<script src="/static/socket.io.js"></script>
</head>
<body>
<div id="app">

File diff suppressed because it is too large Load Diff

21
pyren3/web_static/vue.js Normal file

File diff suppressed because one or more lines are too long