From 6b1447fb1794e08f8e5f580b83ae5eabe4e617d8 Mon Sep 17 00:00:00 2001
From: 张世豪 <979909237@qq.com>
Date: 星期三, 24 十二月 2025 16:28:46 +0800
Subject: [PATCH] 登录页面启用
---
src/zhuye/celiangmoshi.java | 2
src/user/Usr.java | 171 +++++++++++++
dikuai.properties | 8
src/homein/Homein.java | 71 -----
src/bianjie/shudongdraw.java | 2
set.properties | 10
src/udpdell/UDPServer.java | 5
src/zhuye/Shouye.java | 13 -
user.properties | 5
Obstacledge.properties | 2
src/user/Usrdell.java | 314 ++++++++++++++++++++++++
src/set/Sets.java | 43 +++
src/lujing/ObstaclePathPlanner.java | 2
src/bianjie/BoundaryLengthDrawer.java | 2
src/denglu/Denglu.java | 106 ++++++-
15 files changed, 642 insertions(+), 114 deletions(-)
diff --git a/Obstacledge.properties b/Obstacledge.properties
index 8588d73..2820614 100644
--- a/Obstacledge.properties
+++ b/Obstacledge.properties
@@ -1,5 +1,5 @@
# 鍓茶崏鏈哄湴鍧楅殰纰嶇墿閰嶇疆鏂囦欢
-# 鐢熸垚鏃堕棿锛�2025-12-23T18:40:37.614553600
+# 鐢熸垚鏃堕棿锛�2025-12-23T19:10:14.326740700
# 鍧愭爣绯伙細WGS84锛堝害鍒嗘牸寮忥級
# ============ 鍦板潡鍩哄噯绔欓厤缃� ============
diff --git a/dikuai.properties b/dikuai.properties
index ddb639d..d7a2ce5 100644
--- a/dikuai.properties
+++ b/dikuai.properties
@@ -1,8 +1,8 @@
#Dikuai Properties
-#Tue Dec 23 18:41:03 CST 2025
+#Tue Dec 23 19:10:14 CST 2025
LAND1.angleThreshold=-1
LAND1.baseStationCoordinates=3949.89151752,N,11616.79267501,E
-LAND1.boundaryCoordinates=-99.64,193.56;185.77,182.30;61.84,424.89;237.59,415.88;235.34,539.80;-26.03,544.31
+LAND1.boundaryCoordinates=-58.32,-476.37;85.99,-289.22;354.31,-329.80;293.43,-559.79
LAND1.boundaryOriginalCoordinates=39.831522,116.279873,49.25;39.831524,116.279878,49.25;39.831525,116.279878,49.24;39.831524,116.279912,49.30;39.831524,116.279911,49.29;39.831523,116.279911,49.23;39.831521,116.279915,49.31;39.831517,116.279925,49.34;39.831514,116.279940,49.30;39.831514,116.279957,49.28;39.831516,116.279974,49.28;39.831518,116.279991,49.29;39.831521,116.280008,49.24;39.831524,116.280025,49.30;39.831526,116.280042,49.24;39.831529,116.280059,49.29;39.831529,116.280076,49.26;39.831530,116.280093,49.32;39.831531,116.280110,49.28;39.831533,116.280127,49.28;39.831535,116.280144,49.26;39.831539,116.280161,49.27;39.831544,116.280175,49.25;39.831551,116.280190,49.24;39.831558,116.280204,49.26;39.831566,116.280219,49.26;39.831574,116.280234,49.22;39.831583,116.280248,49.24;39.831591,116.280260,49.24;39.831600,116.280272,49.23;39.831608,116.280285,49.18;39.831615,116.280298,49.12;39.831618,116.280312,49.11;39.831618,116.280328,49.12;39.831615,116.280342,49.15;39.831610,116.280356,49.21;39.831602,116.280369,49.23;39.831592,116.280379,49.25;39.831581,116.280388,49.25;39.831569,116.280394,49.19;39.831559,116.280395,49.23;39.831552,116.280387,49.28;39.831547,116.280373,49.32;39.831544,116.280357,49.33;39.831541,116.280340,49.29;39.831539,116.280324,49.27;39.831536,116.280307,49.24;39.831534,116.280290,49.25;39.831531,116.280273,49.26;39.831527,116.280257,49.28;39.831522,116.280242,49.21;39.831514,116.280232,49.28;39.831504,116.280229,49.24;39.831491,116.280230,49.33;39.831478,116.280233,49.34;39.831466,116.280236,49.31;39.831454,116.280239,49.31;39.831441,116.280242,49.26;39.831429,116.280244,49.23;39.831416,116.280247,49.25;39.831402,116.280250,49.22;39.831389,116.280253,49.25;39.831376,116.280256,49.26;39.831364,116.280258,49.24;39.831351,116.280261,49.25;39.831338,116.280265,49.26;39.831324,116.280268,49.20;39.831311,116.280271,49.16;39.831298,116.280274,49.17;39.831285,116.280277,49.22;39.831271,116.280278,49.16;39.831261,116.280273,49.23
LAND1.boundaryOriginalXY=-1
LAND1.boundaryPointInterval=-1
@@ -17,9 +17,9 @@
LAND1.mowingSafetyDistance=0.53
LAND1.mowingTrack=-1
LAND1.mowingWidth=200
-LAND1.plannedPath=-25.601252,543.772523;-98.992501,194.064867;184.886062,182.865285;60.950435,425.466300;237.049774,416.438391;234.819374,539.278905;-25.601252,543.772523;-24.583154,543.754955;-97.979107,194.024887;-95.952319,193.944926;-22.546959,543.719820;-20.510764,543.684685;-93.925532,193.864965;-91.898744,193.785004;-18.474569,543.649550;-16.438374,543.614415;-89.871956,193.705043;-87.845169,193.625082;-14.402179,543.579280;-12.365984,543.544145;-85.818381,193.545122;-83.791593,193.465161;-10.329789,543.509010;-8.293594,543.473875;-81.764806,193.385200;-79.738018,193.305239;-6.257399,543.438740;-4.221204,543.403605;-77.711230,193.225278;-75.684443,193.145317;-2.185009,543.368470;-0.148814,543.333335;-73.657655,193.065356;-71.630868,192.985396;1.887381,543.298200;3.923576,543.263065;-69.604080,192.905435;-67.577292,192.825474;5.959771,543.227930;7.995966,543.192795;-65.550505,192.745513;-63.523717,192.665552;10.032161,543.157660;12.068356,543.122525;-61.496929,192.585591;-59.470142,192.505630;14.104551,543.087390;16.140746,543.052255;-57.443354,192.425670;-55.416566,192.345709;18.176941,543.017120;20.213136,542.981985;-53.389779,192.265748;-51.362991,192.185787;22.249331,542.946850;24.285526,542.911715;-49.336204,192.105826;-47.309416,192.025865;26.321721,542.876580;28.357916,542.841445;-45.282628,191.945904;-43.255841,191.865944;30.394110,542.806310;32.430305,542.771175;-41.229053,191.785983;-39.202265,191.706022;34.466500,542.736040;36.502695,542.700905;-37.175478,191.626061;-35.148690,191.546100;38.538890,542.665770;40.575085,542.630635;-33.121903,191.466139;-31.095115,191.386178;42.611280,542.595500;44.647475,542.560365;-29.068327,191.306218;-27.041540,191.226257;46.683670,542.525230;48.719865,542.490095;-25.014752,191.146296;-22.987964,191.066335;50.756060,542.454960;52.792255,542.419825;-20.961177,190.986374;-18.934389,190.906413;54.828450,542.384690;56.864645,542.349555;-16.907601,190.826452;-14.880814,190.746491;58.900840,542.314420;60.937035,542.279285;-12.854026,190.666531;-10.827239,190.586570;62.973230,542.244150;65.009425,542.209015;-8.800451,190.506609;-6.773663,190.426648;67.045620,542.173880;69.081815,542.138745;-4.746876,190.346687;-2.720088,190.266726;71.118010,542.103610;73.154205,542.068475;-0.693300,190.186765;1.333487,190.106805;75.190400,542.033340;77.226595,541.998205;3.360275,190.026844;5.387063,189.946883;79.262790,541.963070;81.298985,541.927935;7.413850,189.866922;9.440638,189.786961;83.335180,541.892800;85.371375,541.857665;11.467425,189.707000;13.494213,189.627039;62.395060,422.638481;62.966825,425.362928;87.407570,541.822530;89.443765,541.787394;64.988641,425.259278;63.843573,419.803053;15.521001,189.547079;17.547788,189.467118;65.292086,416.967624;67.010457,425.155627;91.479960,541.752259;93.516155,541.717124;69.032273,425.051977;66.740598,414.132195;19.574576,189.387157;21.601364,189.307196;68.189111,411.296767;71.054089,424.948326;95.552350,541.681989;97.588545,541.646854;73.075906,424.844676;69.637623,408.461338;23.628151,189.227235;25.654939,189.147274;71.086136,405.625910;75.097722,424.741026;99.624740,541.611719;101.660935,541.576584;77.119538,424.637375;72.534648,402.790481;27.681726,189.067313;29.708514,188.987353;73.983161,399.955053;79.141354,424.533725;103.697130,541.541449;105.733325,541.506314;81.163170,424.430074;75.431674,397.119624;31.735302,188.907392;33.762089,188.827431;76.880186,394.284195;83.184986,424.326424;107.769520,541.471179;109.805715,541.436044;85.206802,424.222773;78.328699,391.448767;35.788877,188.747470;37.815665,188.667509;79.777211,388.613338;87.228618,424.119123;111.841910,541.400909;113.878105,541.365774;89.250434,424.015473;81.225724,385.777910;39.842452,188.587548;41.869240,188.507587;82.674236,382.942481;91.272250,423.911822;115.914300,541.330639;117.950495,541.295504;93.294066,423.808172;84.122749,380.107053;43.896028,188.427627;45.922815,188.347666;85.571262,377.271624;95.315882,423.704521;119.986690,541.260369;122.022885,541.225234;97.337698,423.600871;87.019774,374.436195;47.949603,188.267705;49.976390,188.187744;88.468287,371.600767;99.359514,423.497221;124.059080,541.190099;126.095275,541.154964;101.381330,423.393570;89.916799,368.765338;52.003178,188.107783;54.029966,188.027822;91.365312,365.929910;103.403146,423.289920;128.131470,541.119829;130.167665,541.084694;105.424962,423.186269;92.813824,363.094481;56.056753,187.947861;58.083541,187.867901;94.262337,360.259052;107.446778,423.082619;132.203860,541.049559;134.240055,541.014424;109.468594,422.978968;95.710850,357.423624;60.110329,187.787940;62.137116,187.707979;97.159362,354.588195;111.490410,422.875318;136.276250,540.979289;138.312445,540.944154;113.512226,422.771668;98.607875,351.752767;64.163904,187.628018;66.190691,187.548057;100.056387,348.917338;115.534042,422.668017;140.348640,540.909019;142.384835,540.873884;117.555858,422.564367;101.504900,346.081910;68.217479,187.468096;70.244267,187.388135;102.953412,343.246481;119.577674,422.460716;144.421030,540.838749;146.457225,540.803614;121.599490,422.357066;104.401925,340.411052;72.271054,187.308175;74.297842,187.228214;105.850437,337.575624;123.621306,422.253415;148.493420,540.768479;150.529615,540.733344;125.643122,422.149765;107.298950,334.740195;76.324630,187.148253;78.351417,187.068292;108.747463,331.904767;127.664938,422.046115;152.565810,540.698209;154.602005,540.663074;129.686754,421.942464;110.195975,329.069338;80.378205,186.988331;82.404993,186.908370;111.644488,326.233909;131.708570,421.838814;156.638200,540.627939;158.674395,540.592804;133.730386,421.735163;113.093000,323.398481;84.431780,186.828409;86.458568,186.748449;114.541513,320.563052;135.752203,421.631513;160.710590,540.557669;162.746785,540.522534;137.774019,421.527862;115.990025,317.727624;88.485355,186.668488;90.512143,186.588527;117.438538,314.892195;139.795835,421.424212;164.782980,540.487399;166.819175,540.452264;141.817651,421.320562;118.887051,312.056767;92.538931,186.508566;94.565718,186.428605;120.335563,309.221338;143.839467,421.216911;168.855370,540.417129;170.891565,540.381994;145.861283,421.113261;121.784076,306.385909;96.592506,186.348644;98.619294,186.268683;123.232588,303.550481;147.883099,421.009610;172.927760,540.346859;174.963955,540.311724;149.904915,420.905960;124.681101,300.715052;100.646081,186.188723;102.672869,186.108762;126.129613,297.879624;151.926731,420.802309;177.000150,540.276589;179.036345,540.241454;153.948547,420.698659;127.578126,295.044195;104.699657,186.028801;106.726444,185.948840;129.026639,292.208767;155.970363,420.595009;181.072540,540.206319;183.108735,540.171184;157.992179,420.491358;130.475151,289.373338;108.753232,185.868879;110.780019,185.788918;131.923664,286.537909;160.013995,420.387708;185.144930,540.136049;187.181125,540.100914;162.035811,420.284057;133.372176,283.702481;112.806807,185.708957;114.833595,185.628997;134.820689,280.867052;164.057627,420.180407;189.217320,540.065779;191.253515,540.030644;166.079443,420.076756;136.269201,278.031624;116.860382,185.549036;118.887170,185.469075;137.717714,275.196195;168.101259,419.973106;193.289710,539.995509;195.325905,539.960374;170.123075,419.869456;139.166227,272.360766;120.913958,185.389114;122.940745,185.309153;140.614739,269.525338;172.144891,419.765805;197.362100,539.925239;199.398295,539.890104;174.166707,419.662155;142.063252,266.689909;124.967533,185.229192;126.994320,185.149231;143.511764,263.854481;176.188523,419.558504;201.434490,539.854969;203.470685,539.819834;178.210339,419.454854;144.960277,261.019052;129.021108,185.069271;131.047896,184.989310;146.408789,258.183624;180.232155,419.351203;205.506880,539.784699;207.543075,539.749564;182.253971,419.247553;147.857302,255.348195;133.074683,184.909349;135.101471,184.829388;149.305815,252.512766;184.275787,419.143903;209.579270,539.714428;211.615465,539.679293;186.297603,419.040252;150.754327,249.677338;137.128259,184.749427;139.155046,184.669466;152.202840,246.841909;188.319419,418.936602;213.651660,539.644158;215.687855,539.609023;190.341235,418.832951;153.651352,244.006481;141.181834,184.589505;143.208622,184.509545;155.099865,241.171052;192.363051,418.729301;217.724050,539.573888;219.760245,539.538753;194.384867,418.625650;156.548377,238.335624;145.235409,184.429584;147.262197,184.349623;157.996890,235.500195;196.406683,418.522000;221.796439,539.503618;223.832634,539.468483;198.428499,418.418350;159.445403,232.664766;149.288984,184.269662;151.315772,184.189701;160.893915,229.829338;200.450316,418.314699;225.868829,539.433348;227.905024,539.398213;202.472132,418.211049;162.342428,226.993909;153.342560,184.109740;155.369347,184.029779;163.790940,224.158481;204.493948,418.107398;229.941219,539.363078;231.977414,539.327943;206.515764,418.003748;165.239453,221.323052;157.396135,183.949818;159.422923,183.869858;166.687965,218.487623;208.537580,417.900097;234.013609,539.292808;234.917706,533.863247;210.559396,417.796447;168.136478,215.652195;161.449710,183.789897;163.476498,183.709936;169.584991,212.816766;212.581212,417.692797;235.080431,524.901070;235.243156,515.938894;214.603028,417.589146;171.033503,209.981338;165.503286,183.629975;167.530073,183.550014;172.482016,207.145909;216.624844,417.485496;235.405881,506.976717;235.568606,498.014540;218.646660,417.381845;173.930528,204.310481;169.556861,183.470053;171.583648,183.390092;175.379041,201.475052;220.668476,417.278195;235.731331,489.052363;235.894056,480.090186;222.690292,417.174544;176.827553,198.639623;173.610436,183.310132;175.637224,183.230171;178.276066,195.804195;224.712108,417.070894;236.056781,471.128009;236.219507,462.165832;226.733924,416.967244;179.724578,192.968766;177.664011,183.150210;179.690799,183.070249;181.173091,190.133338;228.755740,416.863593;236.382232,453.203655;236.544957,444.241478;230.777556,416.759943;182.621604,187.297909;181.717587,182.990288;183.744374,182.910327;184.070116,184.462480;232.799372,416.656292;236.707682,435.279301;236.870407,426.317125;234.821188,416.552642
+LAND1.plannedPath=353.646421,-330.235669;86.219211,-289.790692;-57.399120,-476.043693;293.049800,-559.155132;353.646421,-330.235669;353.131597,-332.180552;84.822383,-291.602183;83.425556,-293.413674;352.616772,-334.125435;352.101948,-336.070317;82.028728,-295.225165;80.631901,-297.036656;351.587124,-338.015200;351.072299,-339.960083;79.235073,-298.848147;77.838246,-300.659638;350.557475,-341.904966;350.042650,-343.849848;76.441418,-302.471129;75.044591,-304.282620;349.527826,-345.794731;349.013002,-347.739614;73.647763,-306.094111;72.250936,-307.905602;348.498177,-349.684497;347.983353,-351.629379;70.854109,-309.717093;69.457281,-311.528584;347.468528,-353.574262;346.953704,-355.519145;68.060454,-313.340075;66.663626,-315.151566;346.438880,-357.464028;345.924055,-359.408910;65.266799,-316.963057;63.869971,-318.774548;345.409231,-361.353793;344.894406,-363.298676;62.473144,-320.586039;61.076316,-322.397529;344.379582,-365.243559;343.864758,-367.188441;59.679489,-324.209020;58.282661,-326.020511;343.349933,-369.133324;342.835109,-371.078207;56.885834,-327.832002;55.489006,-329.643493;342.320284,-373.023090;341.805460,-374.967972;54.092179,-331.454984;52.695351,-333.266475;341.290636,-376.912855;340.775811,-378.857738;51.298524,-335.077966;49.901697,-336.889457;340.260987,-380.802621;339.746163,-382.747503;48.504869,-338.700948;47.108042,-340.512439;339.231338,-384.692386;338.716514,-386.637269;45.711214,-342.323930;44.314387,-344.135421;338.201689,-388.582152;337.686865,-390.527034;42.917559,-345.946912;41.520732,-347.758403;337.172041,-392.471917;336.657216,-394.416800;40.123904,-349.569894;38.727077,-351.381385;336.142392,-396.361683;335.627567,-398.306565;37.330249,-353.192876;35.933422,-355.004367;335.112743,-400.251448;334.597919,-402.196331;34.536594,-356.815858;33.139767,-358.627349;334.083094,-404.141214;333.568270,-406.086096;31.742939,-360.438840;30.346112,-362.250331;333.053445,-408.030979;332.538621,-409.975862;28.949285,-364.061822;27.552457,-365.873313;332.023797,-411.920745;331.508972,-413.865627;26.155630,-367.684803;24.758802,-369.496294;330.994148,-415.810510;330.479324,-417.755393;23.361975,-371.307785;21.965147,-373.119276;329.964499,-419.700276;329.449675,-421.645158;20.568320,-374.930767;19.171492,-376.742258;328.934850,-423.590041;328.420026,-425.534924;17.774665,-378.553749;16.377837,-380.365240;327.905202,-427.479807;327.390377,-429.424689;14.981010,-382.176731;13.584182,-383.988222;326.875553,-431.369572;326.360728,-433.314455;12.187355,-385.799713;10.790527,-387.611204;325.845904,-435.259338;325.331080,-437.204220;9.393700,-389.422695;7.996873,-391.234186;324.816255,-439.149103;324.301431,-441.093986;6.600045,-393.045677;5.203218,-394.857168;323.786606,-443.038869;323.271782,-444.983751;3.806390,-396.668659;2.409563,-398.480150;322.756958,-446.928634;322.242133,-448.873517;1.012735,-400.291641;-0.384092,-402.103132;321.727309,-450.818399;321.212484,-452.763282;-1.780920,-403.914623;-3.177747,-405.726114;320.697660,-454.708165;320.182836,-456.653048;-4.574575,-407.537605;-5.971402,-409.349096;319.668011,-458.597930;319.153187,-460.542813;-7.368230,-411.160586;-8.765057,-412.972077;318.638363,-462.487696;318.123538,-464.432579;-10.161885,-414.783568;-11.558712,-416.595059;317.608714,-466.377461;317.093889,-468.322344;-12.955539,-418.406550;-14.352367,-420.218041;316.579065,-470.267227;316.064241,-472.212110;-15.749194,-422.029532;-17.146022,-423.841023;315.549416,-474.156992;315.034592,-476.101875;-18.542849,-425.652514;-19.939677,-427.464005;314.519767,-478.046758;314.004943,-479.991641;-21.336504,-429.275496;-22.733332,-431.086987;313.490119,-481.936523;312.975294,-483.881406;-24.130159,-432.898478;-25.526987,-434.709969;312.460470,-485.826289;311.945645,-487.771172;-26.923814,-436.521460;-28.320642,-438.332951;311.430821,-489.716054;310.915997,-491.660937;-29.717469,-440.144442;-31.114297,-441.955933;310.401172,-493.605820;309.886348,-495.550703;-32.511124,-443.767424;-33.907951,-445.578915;309.371523,-497.495585;308.856699,-499.440468;-35.304779,-447.390406;-36.701606,-449.201897;308.341875,-501.385351;307.827050,-503.330234;-38.098434,-451.013388;-39.495261,-452.824879;307.312226,-505.275116;306.797402,-507.219999;-40.892089,-454.636370;-42.288916,-456.447860;306.282577,-509.164882;305.767753,-511.109765;-43.685744,-458.259351;-45.082571,-460.070842;305.252928,-513.054647;304.738104,-514.999530;-46.479399,-461.882333;-47.876226,-463.693824;304.223280,-516.944413;303.708455,-518.889296;-49.273054,-465.505315;-50.669881,-467.316806;303.193631,-520.834178;302.678806,-522.779061;-52.066709,-469.128297;-53.463536,-470.939788;302.163982,-524.723944;301.649158,-526.668827;-54.860363,-472.751279;-56.257191,-474.562770;301.134333,-528.613709;300.619509,-530.558592;-53.103034,-477.062540;-29.560792,-482.645749;300.104684,-532.503475;299.589860,-534.448358;-6.018549,-488.228958;17.523693,-493.812168;299.075036,-536.393240;298.560211,-538.338123;41.065935,-499.395377;64.608178,-504.978586;298.045387,-540.283006;297.530562,-542.227889;88.150420,-510.561795;111.692662,-516.145005;297.015738,-544.172771;296.500914,-546.117654;135.234905,-521.728214;158.777147,-527.311423;295.986089,-548.062537;295.471265,-550.007420;182.319389,-532.894632;205.861631,-538.477841;294.956441,-551.952302;294.441616,-553.897185;229.403874,-544.061051;252.946116,-549.644260;293.926792,-555.842068;293.411967,-557.786951;276.488358,-555.227469
LAND1.returnPathCoordinates=-1
LAND1.returnPathRawCoordinates=-1
LAND1.returnPointCoordinates=-1
-LAND1.updateTime=2025-12-23 18\:41\:03
+LAND1.updateTime=2025-12-23 19\:10\:14
LAND1.userId=-1
diff --git a/set.properties b/set.properties
index a603295..b4f0f82 100644
--- a/set.properties
+++ b/set.properties
@@ -1,5 +1,5 @@
-#Mower Configuration Properties - Updated
-#Tue Dec 23 19:08:18 CST 2025
+#Current work land selection updated
+#Wed Dec 24 16:28:00 CST 2025
appVersion=-1
boundaryLengthVisible=false
currentWorkLandNumber=LAND1
@@ -8,12 +8,12 @@
handheldMarkerId=1872
idleTrailDurationSeconds=60
manualBoundaryDrawingMode=false
-mapScale=4.08
+mapScale=0.78
measurementModeEnabled=false
mowerId=860
serialAutoConnect=true
serialBaudRate=115200
serialPortName=COM15
simCardNumber=-1
-viewCenterX=-14.44
-viewCenterY=-332.04
+viewCenterX=-148.00
+viewCenterY=424.51
diff --git a/src/bianjie/BoundaryLengthDrawer.java b/src/bianjie/BoundaryLengthDrawer.java
index eca19e4..0d70d42 100644
--- a/src/bianjie/BoundaryLengthDrawer.java
+++ b/src/bianjie/BoundaryLengthDrawer.java
@@ -143,3 +143,5 @@
+
+
diff --git a/src/bianjie/shudongdraw.java b/src/bianjie/shudongdraw.java
index 0ff0486..cf4105f 100644
--- a/src/bianjie/shudongdraw.java
+++ b/src/bianjie/shudongdraw.java
@@ -205,3 +205,5 @@
+
+
diff --git a/src/denglu/Denglu.java b/src/denglu/Denglu.java
index 9db2124..d1af97c 100644
--- a/src/denglu/Denglu.java
+++ b/src/denglu/Denglu.java
@@ -3,6 +3,11 @@
import homein.WenJianSuo;
import ui.UIConfig;
import zhuye.Shouye;
+import gecaoji.Device;
+import chuankou.SerialPortNativeLoader;
+import set.Setsys;
+import udpdell.UDPServer;
+import user.Usrdell;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
@@ -151,11 +156,17 @@
// 涓昏〃鍗曞尯鍩�
JPanel formPanel = createFormPanel();
+ // 鍖呰鍦ㄦ粴鍔ㄧ獥鏍间腑锛屼互闃插唴瀹规樉绀轰笉鍏�
+ JScrollPane scrollPane = new JScrollPane(formPanel);
+ scrollPane.setBorder(null);
+ scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
+ scrollPane.getVerticalScrollBar().setUnitIncrement(16);
+
// 搴曢儴搴旂敤淇℃伅
JPanel appInfoPanel = createAppInfoPanel();
mainPanel.add(topPanel, BorderLayout.NORTH);
- mainPanel.add(formPanel, BorderLayout.CENTER);
+ mainPanel.add(scrollPane, BorderLayout.CENTER);
mainPanel.add(appInfoPanel, BorderLayout.SOUTH);
add(mainPanel);
@@ -430,10 +441,17 @@
usernameField.setText("");
}
- // 濡傛灉瀵嗙爜涓�-1锛屾竻绌哄瘑鐮佹
- String savedPassword = UserChuShiHua.getProperty("password");
- if (savedPassword != null && savedPassword.equals("-1")) {
- passwordField.setText("");
+ // 鍔犺浇璁颁綇鎴戠姸鎬�
+ String rememberPwd = UserChuShiHua.getProperty("rememberPassword");
+ boolean isRemember = "1".equals(rememberPwd);
+ rememberMe.setSelected(isRemember);
+
+ // 濡傛灉璁颁綇鎴戣閫変腑锛屽~鍏呭瘑鐮�
+ if (isRemember) {
+ String savedPassword = UserChuShiHua.getProperty("password");
+ if (savedPassword != null && !savedPassword.equals("-1")) {
+ passwordField.setText(savedPassword);
+ }
}
}
@@ -473,20 +491,18 @@
// 楠岃瘉鐢ㄦ埛鍚嶅拰瀵嗙爜
if (validateLogin(username, password)) {
- JOptionPane.showMessageDialog(this,
- "鐧诲綍鎴愬姛锛�",
- "鎴愬姛",
- JOptionPane.INFORMATION_MESSAGE);
-
// 鏇存柊鏈�鍚庣櫥褰曟椂闂�
UserChuShiHua.updateProperty("lastLoginTime", String.valueOf(System.currentTimeMillis()));
- // 濡傛灉璁颁綇鎴戣閫変腑锛屼繚瀛樼敤鎴峰悕
+ // 淇濆瓨璁颁綇鎴戠姸鎬�
if (rememberMe.isSelected()) {
+ UserChuShiHua.updateProperty("rememberPassword", "1");
UserChuShiHua.updateProperty("userName", username);
+ } else {
+ UserChuShiHua.updateProperty("rememberPassword", "0");
}
- // 杩欓噷鍙互娣诲姞璺宠浆鍒颁富鐣岄潰鐨勪唬鐮�
+ // 鍏抽棴鐧诲綍绐楀彛骞舵墦寮�棣栭〉
openMainApplication();
} else {
@@ -522,10 +538,10 @@
Shouye homePanel = new Shouye();
mainFrame.setContentPane(homePanel);
- mainFrame.pack();
- int targetWidth = Math.max(mainFrame.getWidth(), 480);
- int targetHeight = Math.max(mainFrame.getHeight(), 800);
- mainFrame.setSize(targetWidth, targetHeight);
+ // 璁剧疆涓庣櫥褰曢〉闈㈢浉鍚岀殑灏哄
+ mainFrame.setSize(UIConfig.DIALOG_WIDTH, UIConfig.DIALOG_HEIGHT);
+ mainFrame.setMinimumSize(new Dimension(UIConfig.DIALOG_WIDTH, UIConfig.DIALOG_HEIGHT));
+ mainFrame.setResizable(false);
mainFrame.setLocationRelativeTo(null);
mainFrame.setVisible(true);
@@ -540,5 +556,63 @@
RegistrationFrame registerFrame = new RegistrationFrame(this, currentLanguageCode);
registerFrame.setVisible(true);
}
+
+ /**
+ * 绋嬪簭鍏ュ彛鐐�
+ * 闆嗘垚Homein绫荤殑鍒濆鍖栭�昏緫
+ */
+ public static void main(String[] args) {
+ // 妫�鏌ョ▼搴忔槸鍚﹀凡缁忚繍琛�
+ if (WenJianSuo.isAlreadyRunning()) {
+ JOptionPane.showMessageDialog(null,
+ "绋嬪簭宸茬粡鍦ㄨ繍琛屼腑锛乗n涓嶈兘鍚屾椂鎵撳紑澶氫釜瀹炰緥銆�",
+ "璀﹀憡",
+ JOptionPane.WARNING_MESSAGE);
+ System.exit(0);
+ return;
+ }
+
+ // 娣诲姞鍏抽棴閽╁瓙锛岀‘淇濈▼搴忛��鍑烘椂閲婃斁閿�
+ Runtime.getRuntime().addShutdownHook(new Thread(() -> {
+ WenJianSuo.releaseLock();
+ }));
+
+ try {
+ SerialPortNativeLoader.ensureLibraryPresent();
+ // 鍒濆鍖栨暟鎹�
+ UserChuShiHua.initialize();
+ Usrdell.initialize(); // 鍒濆鍖栫敤鎴峰睘鎬�
+
+ Setsys setsys = new Setsys();
+ setsys.initializeFromProperties();
+ Device.initializeActiveDevice(setsys.getMowerId());
+
+ UDPServer.startAsync();//鍚姩鏁版嵁鎺ユ敹绾跨▼
+
+ // 鏄剧ず鍒濆鏁版嵁
+ System.out.println("鍒濆鐢ㄦ埛鍚�: " + UserChuShiHua.getProperty("userName"));
+ System.out.println("鍒濆瀵嗙爜: " + UserChuShiHua.getProperty("password"));
+
+ // 鍚姩鐧诲綍鐣岄潰
+ EventQueue.invokeLater(() -> {
+ try {
+ new Denglu().setVisible(true);
+ } catch (Exception e) {
+ e.printStackTrace();
+ JOptionPane.showMessageDialog(null,
+ "鐧诲綍鐣岄潰鍚姩澶辫触: " + e.getMessage(),
+ "閿欒",
+ JOptionPane.ERROR_MESSAGE);
+ }
+ });
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ JOptionPane.showMessageDialog(null,
+ "绋嬪簭鍚姩澶辫触: " + e.getMessage(),
+ "閿欒",
+ JOptionPane.ERROR_MESSAGE);
+ }
+ }
}
\ No newline at end of file
diff --git a/src/homein/Homein.java b/src/homein/Homein.java
index acd24f6..c7dd7ef 100644
--- a/src/homein/Homein.java
+++ b/src/homein/Homein.java
@@ -1,72 +1,11 @@
package homein;
-
-import denglu.UserChuShiHua;
-import gecaoji.Device;
-import chuankou.SerialPortAutoConnector;
-import chuankou.SerialPortNativeLoader;
-import set.Setsys;
-import udpdell.UDPServer;
import denglu.Denglu;
-import java.awt.EventQueue;
-import javax.swing.JOptionPane;
-
public class Homein {
+ /**
+ * 绋嬪簭鍏ュ彛鐐� - 宸茶縼绉诲埌Denglu绫�
+ * 淇濈暀姝ゆ柟娉曚互淇濇寔鍚戝悗鍏煎鎬э紝瀹為檯璋冪敤Denglu.main
+ */
public static void main(String[] args) {
- // 妫�鏌ョ▼搴忔槸鍚﹀凡缁忚繍琛�
- if (WenJianSuo.isAlreadyRunning()) {
- JOptionPane.showMessageDialog(null,
- "绋嬪簭宸茬粡鍦ㄨ繍琛屼腑锛乗n涓嶈兘鍚屾椂鎵撳紑澶氫釜瀹炰緥銆�",
- "璀﹀憡",
- JOptionPane.WARNING_MESSAGE);
- System.exit(0);
- return;
- }
-
- // 娣诲姞鍏抽棴閽╁瓙锛岀‘淇濈▼搴忛��鍑烘椂閲婃斁閿�
- Runtime.getRuntime().addShutdownHook(new Thread(() -> {
- WenJianSuo.releaseLock();
- }));
-
- try {
- SerialPortNativeLoader.ensureLibraryPresent();
- // 鍒濆鍖栨暟鎹�
- UserChuShiHua.initialize();
-
- Setsys setsys = new Setsys();
- setsys.initializeFromProperties();
- Device.initializeActiveDevice(setsys.getMowerId());
-
- UDPServer.startAsync();//鍚姩鏁版嵁鎺ユ敹绾跨▼
-// SerialPortAutoConnector.initialize();//鍚姩涓插彛鑷姩杩炴帴
-
- // 鏄剧ず鍒濆鏁版嵁
- System.out.println("鍒濆鐢ㄦ埛鍚�: " + UserChuShiHua.getProperty("userName"));
- System.out.println("鍒濆瀵嗙爜: " + UserChuShiHua.getProperty("password"));
-
- // 鍚姩鐧诲綍鐣岄潰
- startLoginInterface();
-
- } catch (Exception e) {
- e.printStackTrace();
- JOptionPane.showMessageDialog(null,
- "绋嬪簭鍚姩澶辫触: " + e.getMessage(),
- "閿欒",
- JOptionPane.ERROR_MESSAGE);
- }
- }
-
- private static void startLoginInterface() {
- // 鍦‥DT涓惎鍔ㄧ櫥褰曠晫闈�
- EventQueue.invokeLater(() -> {
- try {
- new Denglu().setVisible(true);
- } catch (Exception e) {
- e.printStackTrace();
- JOptionPane.showMessageDialog(null,
- "鐧诲綍鐣岄潰鍚姩澶辫触: " + e.getMessage(),
- "閿欒",
- JOptionPane.ERROR_MESSAGE);
- }
- });
+ Denglu.main(args);
}
}
\ No newline at end of file
diff --git a/src/lujing/ObstaclePathPlanner.java b/src/lujing/ObstaclePathPlanner.java
index 7ed61a9..bc93f34 100644
--- a/src/lujing/ObstaclePathPlanner.java
+++ b/src/lujing/ObstaclePathPlanner.java
@@ -542,3 +542,5 @@
+
+
diff --git a/src/set/Sets.java b/src/set/Sets.java
index ab09098..64377d9 100644
--- a/src/set/Sets.java
+++ b/src/set/Sets.java
@@ -97,15 +97,22 @@
// 鍒涘缓璁剧疆椤归潰鏉匡紙鍦嗚鐧借壊闈㈡澘锛�
JPanel settingsPanel = createSettingsPanel();
+ // 鍒涘缓婊氬姩闈㈡澘
+ JScrollPane scrollPane = new JScrollPane(settingsPanel);
+ scrollPane.setBorder(null); // 鍘婚櫎杈规
+ scrollPane.getViewport().setBackground(BACKGROUND_COLOR); // 璁剧疆瑙嗗彛鑳屾櫙鑹蹭笌涓昏儗鏅竴鑷�
+ scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); // 绂佹姘村钩婊氬姩
+ scrollPane.getVerticalScrollBar().setUnitIncrement(16); // 澧炲姞婊氬姩閫熷害
+
// 娣诲姞缁勪欢鍒颁富闈㈡澘
- mainPanel.add(settingsPanel, BorderLayout.CENTER);
+ mainPanel.add(scrollPane, BorderLayout.CENTER);
add(mainPanel, BorderLayout.CENTER);
}
private JPanel createSettingsPanel() {
// 鍒涘缓鍦嗚鐧借壊闈㈡澘瀹瑰櫒
- JPanel container = new JPanel() {
+ JPanel container = new ScrollablePanel() {
@Override
protected void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D) g.create();
@@ -1756,6 +1763,38 @@
timer.start();
}
+ /**
+ * 鍙粴鍔ㄧ殑闈㈡澘锛屽己鍒跺搴﹂�傚簲瑙嗗彛
+ */
+ private class ScrollablePanel extends JPanel implements Scrollable {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public Dimension getPreferredScrollableViewportSize() {
+ return getPreferredSize();
+ }
+
+ @Override
+ public int getScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction) {
+ return 16;
+ }
+
+ @Override
+ public int getScrollableBlockIncrement(Rectangle visibleRect, int orientation, int direction) {
+ return 16;
+ }
+
+ @Override
+ public boolean getScrollableTracksViewportWidth() {
+ return true; // 寮哄埗瀹藉害閫傚簲瑙嗗彛锛岄槻姝㈡按骞虫粴鍔�
+ }
+
+ @Override
+ public boolean getScrollableTracksViewportHeight() {
+ return false;
+ }
+ }
+
@Override
public void setVisible(boolean visible) {
if (visible) {
diff --git a/src/udpdell/UDPServer.java b/src/udpdell/UDPServer.java
index 65c9ffc..e63131c 100644
--- a/src/udpdell/UDPServer.java
+++ b/src/udpdell/UDPServer.java
@@ -1,5 +1,4 @@
package udpdell;
-
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
@@ -7,11 +6,8 @@
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.atomic.AtomicInteger;
-
-import Mqttmessage.Client;
import gecaoji.Device;
import zhuye.Coordinate;
-
import publicway.Gpstoxuzuobiao;
public class UDPServer {
@@ -37,7 +33,6 @@
thread.setDaemon(false); // 淇濇寔 JVM 鎸佺画瀛樻椿
thread.start();
serverThread = thread;
-// Client.test();
return thread;
}
diff --git a/src/user/Usr.java b/src/user/Usr.java
new file mode 100644
index 0000000..b9303e1
--- /dev/null
+++ b/src/user/Usr.java
@@ -0,0 +1,171 @@
+package user;
+
+/**
+ * 鐢ㄦ埛淇℃伅绫�
+ * 鍖呭惈user.properties鏂囦欢涓殑鎵�鏈夊睘鎬�
+ */
+public class Usr {
+ // 鐢ㄦ埛閭
+ private String email;
+ // 璇█璁剧疆
+ private String language;
+ // 鏈�鍚庣櫥褰曟椂闂�
+ private String lastLoginTime;
+ // 瀵嗙爜
+ private String password;
+ // 娉ㄥ唽鏃堕棿
+ private String registrationTime;
+ // 鐢ㄦ埛鐘舵��
+ private String status;
+ // 鐢ㄦ埛ID
+ private String userId;
+ // 鐢ㄦ埛鍚�
+ private String userName;
+ // 鏄惁璁颁綇鐧诲綍瀵嗙爜锛�1琛ㄧず璁颁綇锛�0琛ㄧず涓嶈浣�
+ private String rememberPassword;
+
+ /**
+ * 鑾峰彇鐢ㄦ埛閭
+ * @return 鐢ㄦ埛閭
+ */
+ public String getEmail() {
+ return email;
+ }
+
+ /**
+ * 璁剧疆鐢ㄦ埛閭
+ * @param email 鐢ㄦ埛閭
+ */
+ public void setEmail(String email) {
+ this.email = email;
+ }
+
+ /**
+ * 鑾峰彇璇█璁剧疆
+ * @return 璇█璁剧疆
+ */
+ public String getLanguage() {
+ return language;
+ }
+
+ /**
+ * 璁剧疆璇█璁剧疆
+ * @param language 璇█璁剧疆
+ */
+ public void setLanguage(String language) {
+ this.language = language;
+ }
+
+ /**
+ * 鑾峰彇鏈�鍚庣櫥褰曟椂闂�
+ * @return 鏈�鍚庣櫥褰曟椂闂�
+ */
+ public String getLastLoginTime() {
+ return lastLoginTime;
+ }
+
+ /**
+ * 璁剧疆鏈�鍚庣櫥褰曟椂闂�
+ * @param lastLoginTime 鏈�鍚庣櫥褰曟椂闂�
+ */
+ public void setLastLoginTime(String lastLoginTime) {
+ this.lastLoginTime = lastLoginTime;
+ }
+
+ /**
+ * 鑾峰彇瀵嗙爜
+ * @return 瀵嗙爜
+ */
+ public String getPassword() {
+ return password;
+ }
+
+ /**
+ * 璁剧疆瀵嗙爜
+ * @param password 瀵嗙爜
+ */
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+ /**
+ * 鑾峰彇娉ㄥ唽鏃堕棿
+ * @return 娉ㄥ唽鏃堕棿
+ */
+ public String getRegistrationTime() {
+ return registrationTime;
+ }
+
+ /**
+ * 璁剧疆娉ㄥ唽鏃堕棿
+ * @param registrationTime 娉ㄥ唽鏃堕棿
+ */
+ public void setRegistrationTime(String registrationTime) {
+ this.registrationTime = registrationTime;
+ }
+
+ /**
+ * 鑾峰彇鐢ㄦ埛鐘舵��
+ * @return 鐢ㄦ埛鐘舵��
+ */
+ public String getStatus() {
+ return status;
+ }
+
+ /**
+ * 璁剧疆鐢ㄦ埛鐘舵��
+ * @param status 鐢ㄦ埛鐘舵��
+ */
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ /**
+ * 鑾峰彇鐢ㄦ埛ID
+ * @return 鐢ㄦ埛ID
+ */
+ public String getUserId() {
+ return userId;
+ }
+
+ /**
+ * 璁剧疆鐢ㄦ埛ID
+ * @param userId 鐢ㄦ埛ID
+ */
+ public void setUserId(String userId) {
+ this.userId = userId;
+ }
+
+ /**
+ * 鑾峰彇鐢ㄦ埛鍚�
+ * @return 鐢ㄦ埛鍚�
+ */
+ public String getUserName() {
+ return userName;
+ }
+
+ /**
+ * 璁剧疆鐢ㄦ埛鍚�
+ * @param userName 鐢ㄦ埛鍚�
+ */
+ public void setUserName(String userName) {
+ this.userName = userName;
+ }
+
+ /**
+ * 鑾峰彇鏄惁璁颁綇鐧诲綍瀵嗙爜
+ * @return 鏄惁璁颁綇鐧诲綍瀵嗙爜锛�1琛ㄧず璁颁綇锛�0琛ㄧず涓嶈浣忥級
+ */
+ public String getRememberPassword() {
+ return rememberPassword;
+ }
+
+ /**
+ * 璁剧疆鏄惁璁颁綇鐧诲綍瀵嗙爜
+ * @param rememberPassword 鏄惁璁颁綇鐧诲綍瀵嗙爜锛�1琛ㄧず璁颁綇锛�0琛ㄧず涓嶈浣忥級
+ */
+ public void setRememberPassword(String rememberPassword) {
+ this.rememberPassword = rememberPassword;
+ }
+}
+
diff --git a/src/user/Usrdell.java b/src/user/Usrdell.java
new file mode 100644
index 0000000..7133439
--- /dev/null
+++ b/src/user/Usrdell.java
@@ -0,0 +1,314 @@
+package user;
+
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.Properties;
+
+/**
+ * 鐢ㄦ埛灞炴�х鐞嗙被
+ * 璐熻矗鍒濆鍖栧姞杞絬ser.properties涓殑灞炴�у�硷紝骞舵彁渚涜幏鍙栧拰淇敼鍔熻兘
+ */
+public class Usrdell {
+ private static final String PROPERTIES_FILE = "user.properties";
+ private static Properties userProperties;
+
+ // 灞炴�ч敭鍚嶅父閲�
+ private static final String KEY_EMAIL = "email";
+ private static final String KEY_LANGUAGE = "language";
+ private static final String KEY_LAST_LOGIN_TIME = "lastLoginTime";
+ private static final String KEY_PASSWORD = "password";
+ private static final String KEY_REGISTRATION_TIME = "registrationTime";
+ private static final String KEY_STATUS = "status";
+ private static final String KEY_USER_ID = "userId";
+ private static final String KEY_USER_NAME = "userName";
+ private static final String KEY_REMEMBER_PASSWORD = "rememberPassword";
+
+ /**
+ * 鍒濆鍖栨柟娉曪細浠巙ser.properties鏂囦欢鍔犺浇鎵�鏈夊睘鎬у�煎埌鍐呭瓨
+ */
+ public static void initialize() {
+ synchronized (Usrdell.class) {
+ userProperties = new Properties();
+ try (FileInputStream input = new FileInputStream(PROPERTIES_FILE)) {
+ userProperties.load(input);
+ System.out.println("鐢ㄦ埛灞炴�у垵濮嬪寲鎴愬姛锛�");
+ } catch (IOException e) {
+ System.err.println("鍒濆鍖栧け璐ワ紝鏂囦欢鏈壘鍒版垨璇诲彇閿欒: " + e.getMessage());
+ // 濡傛灉鏂囦欢涓嶅瓨鍦紝鍒涘缓榛樿灞炴��
+ userProperties = new Properties();
+ }
+
+ // 纭繚rememberPassword灞炴�у瓨鍦紝濡傛灉涓嶅瓨鍦ㄥ垯璁剧疆涓洪粯璁ゅ��"0"
+ if (!userProperties.containsKey(KEY_REMEMBER_PASSWORD)) {
+ userProperties.setProperty(KEY_REMEMBER_PASSWORD, "0");
+ // 淇濆瓨鍒版枃浠�
+ try (FileOutputStream output = new FileOutputStream(PROPERTIES_FILE)) {
+ userProperties.store(output, "Updated User Properties");
+ } catch (IOException e) {
+ System.err.println("淇濆瓨榛樿rememberPassword灞炴�уけ璐�: " + e.getMessage());
+ }
+ }
+ }
+ }
+
+ /**
+ * 鍒濆鍖栧苟鑾峰彇鎵�鏈夊睘鎬у�硷紝杩斿洖Usr瀵硅薄
+ * @return 鍖呭惈鎵�鏈夊睘鎬у�肩殑Usr瀵硅薄
+ */
+ public static Usr initializeAndGetAll() {
+ if (userProperties == null) {
+ initialize();
+ }
+
+ Usr usr = new Usr();
+ usr.setEmail(getProperty(KEY_EMAIL));
+ usr.setLanguage(getProperty(KEY_LANGUAGE));
+ usr.setLastLoginTime(getProperty(KEY_LAST_LOGIN_TIME));
+ usr.setPassword(getProperty(KEY_PASSWORD));
+ usr.setRegistrationTime(getProperty(KEY_REGISTRATION_TIME));
+ usr.setStatus(getProperty(KEY_STATUS));
+ usr.setUserId(getProperty(KEY_USER_ID));
+ usr.setUserName(getProperty(KEY_USER_NAME));
+ usr.setRememberPassword(getProperty(KEY_REMEMBER_PASSWORD));
+
+ return usr;
+ }
+
+ /**
+ * 鑾峰彇鎸囧畾灞炴�х殑鍊�
+ * @param key 灞炴�ч敭鍚�
+ * @return 灞炴�у�硷紝濡傛灉涓嶅瓨鍦ㄨ繑鍥瀗ull
+ */
+ public static String getProperty(String key) {
+ if (userProperties == null) {
+ initialize();
+ }
+ String value = userProperties.getProperty(key);
+ if (value == null || value.trim().isEmpty() || "-1".equals(value.trim())) {
+ return null;
+ }
+ return value.trim();
+ }
+
+ /**
+ * 鏇存柊灞炴�у�煎苟淇濆瓨鍒版枃浠�
+ * @param key 灞炴�ч敭鍚�
+ * @param value 灞炴�у��
+ */
+ public static void updateProperty(String key, String value) {
+ synchronized (Usrdell.class) {
+ if (userProperties == null) {
+ initialize();
+ }
+
+ if (value == null || value.trim().isEmpty()) {
+ userProperties.setProperty(key, "-1");
+ } else {
+ userProperties.setProperty(key, value.trim());
+ }
+
+ try (FileOutputStream output = new FileOutputStream(PROPERTIES_FILE)) {
+ userProperties.store(output, "Updated User Properties");
+ } catch (IOException e) {
+ System.err.println("鏇存柊澶辫触锛屾枃浠跺啓鍏ラ敊璇�: " + e.getMessage());
+ }
+ }
+ }
+
+ /**
+ * 鑾峰彇鐢ㄦ埛閭
+ * @return 鐢ㄦ埛閭
+ */
+ public static String getEmail() {
+ return getProperty(KEY_EMAIL);
+ }
+
+ /**
+ * 璁剧疆鐢ㄦ埛閭
+ * @param email 鐢ㄦ埛閭
+ */
+ public static void setEmail(String email) {
+ updateProperty(KEY_EMAIL, email);
+ }
+
+ /**
+ * 鑾峰彇璇█璁剧疆
+ * @return 璇█璁剧疆
+ */
+ public static String getLanguage() {
+ return getProperty(KEY_LANGUAGE);
+ }
+
+ /**
+ * 璁剧疆璇█璁剧疆
+ * @param language 璇█璁剧疆
+ */
+ public static void setLanguage(String language) {
+ updateProperty(KEY_LANGUAGE, language);
+ }
+
+ /**
+ * 鑾峰彇鏈�鍚庣櫥褰曟椂闂�
+ * @return 鏈�鍚庣櫥褰曟椂闂�
+ */
+ public static String getLastLoginTime() {
+ return getProperty(KEY_LAST_LOGIN_TIME);
+ }
+
+ /**
+ * 璁剧疆鏈�鍚庣櫥褰曟椂闂�
+ * @param lastLoginTime 鏈�鍚庣櫥褰曟椂闂�
+ */
+ public static void setLastLoginTime(String lastLoginTime) {
+ updateProperty(KEY_LAST_LOGIN_TIME, lastLoginTime);
+ }
+
+ /**
+ * 鑾峰彇瀵嗙爜
+ * @return 瀵嗙爜
+ */
+ public static String getPassword() {
+ return getProperty(KEY_PASSWORD);
+ }
+
+ /**
+ * 璁剧疆瀵嗙爜
+ * @param password 瀵嗙爜
+ */
+ public static void setPassword(String password) {
+ updateProperty(KEY_PASSWORD, password);
+ }
+
+ /**
+ * 鑾峰彇娉ㄥ唽鏃堕棿
+ * @return 娉ㄥ唽鏃堕棿
+ */
+ public static String getRegistrationTime() {
+ return getProperty(KEY_REGISTRATION_TIME);
+ }
+
+ /**
+ * 璁剧疆娉ㄥ唽鏃堕棿
+ * @param registrationTime 娉ㄥ唽鏃堕棿
+ */
+ public static void setRegistrationTime(String registrationTime) {
+ updateProperty(KEY_REGISTRATION_TIME, registrationTime);
+ }
+
+ /**
+ * 鑾峰彇鐢ㄦ埛鐘舵��
+ * @return 鐢ㄦ埛鐘舵��
+ */
+ public static String getStatus() {
+ return getProperty(KEY_STATUS);
+ }
+
+ /**
+ * 璁剧疆鐢ㄦ埛鐘舵��
+ * @param status 鐢ㄦ埛鐘舵��
+ */
+ public static void setStatus(String status) {
+ updateProperty(KEY_STATUS, status);
+ }
+
+ /**
+ * 鑾峰彇鐢ㄦ埛ID
+ * @return 鐢ㄦ埛ID
+ */
+ public static String getUserId() {
+ return getProperty(KEY_USER_ID);
+ }
+
+ /**
+ * 璁剧疆鐢ㄦ埛ID
+ * @param userId 鐢ㄦ埛ID
+ */
+ public static void setUserId(String userId) {
+ updateProperty(KEY_USER_ID, userId);
+ }
+
+ /**
+ * 鑾峰彇鐢ㄦ埛鍚�
+ * @return 鐢ㄦ埛鍚�
+ */
+ public static String getUserName() {
+ return getProperty(KEY_USER_NAME);
+ }
+
+ /**
+ * 璁剧疆鐢ㄦ埛鍚�
+ * @param userName 鐢ㄦ埛鍚�
+ */
+ public static void setUserName(String userName) {
+ updateProperty(KEY_USER_NAME, userName);
+ }
+
+ /**
+ * 鑾峰彇鏄惁璁颁綇鐧诲綍瀵嗙爜
+ * @return 鏄惁璁颁綇鐧诲綍瀵嗙爜锛�1琛ㄧず璁颁綇锛�0琛ㄧず涓嶈浣忥級锛屽鏋滄湭璁剧疆鍒欒繑鍥�"0"
+ */
+ public static String getRememberPassword() {
+ String value = getProperty(KEY_REMEMBER_PASSWORD);
+ return value != null ? value : "0"; // 榛樿杩斿洖"0"琛ㄧず涓嶈浣�
+ }
+
+ /**
+ * 璁剧疆鏄惁璁颁綇鐧诲綍瀵嗙爜
+ * @param rememberPassword 鏄惁璁颁綇鐧诲綍瀵嗙爜锛�1琛ㄧず璁颁綇锛�0琛ㄧず涓嶈浣忥級
+ */
+ public static void setRememberPassword(String rememberPassword) {
+ updateProperty(KEY_REMEMBER_PASSWORD, rememberPassword);
+ }
+
+ /**
+ * 鎵归噺鏇存柊鐢ㄦ埛灞炴��
+ * @param usr 鍖呭惈瑕佹洿鏂板睘鎬у�肩殑Usr瀵硅薄
+ */
+ public static void updateAll(Usr usr) {
+ if (usr == null) {
+ return;
+ }
+
+ synchronized (Usrdell.class) {
+ if (userProperties == null) {
+ initialize();
+ }
+
+ if (usr.getEmail() != null) {
+ userProperties.setProperty(KEY_EMAIL, usr.getEmail());
+ }
+ if (usr.getLanguage() != null) {
+ userProperties.setProperty(KEY_LANGUAGE, usr.getLanguage());
+ }
+ if (usr.getLastLoginTime() != null) {
+ userProperties.setProperty(KEY_LAST_LOGIN_TIME, usr.getLastLoginTime());
+ }
+ if (usr.getPassword() != null) {
+ userProperties.setProperty(KEY_PASSWORD, usr.getPassword());
+ }
+ if (usr.getRegistrationTime() != null) {
+ userProperties.setProperty(KEY_REGISTRATION_TIME, usr.getRegistrationTime());
+ }
+ if (usr.getStatus() != null) {
+ userProperties.setProperty(KEY_STATUS, usr.getStatus());
+ }
+ if (usr.getUserId() != null) {
+ userProperties.setProperty(KEY_USER_ID, usr.getUserId());
+ }
+ if (usr.getUserName() != null) {
+ userProperties.setProperty(KEY_USER_NAME, usr.getUserName());
+ }
+ if (usr.getRememberPassword() != null) {
+ userProperties.setProperty(KEY_REMEMBER_PASSWORD, usr.getRememberPassword());
+ }
+
+ try (FileOutputStream output = new FileOutputStream(PROPERTIES_FILE)) {
+ userProperties.store(output, "Updated User Properties");
+ } catch (IOException e) {
+ System.err.println("鎵归噺鏇存柊澶辫触锛屾枃浠跺啓鍏ラ敊璇�: " + e.getMessage());
+ }
+ }
+ }
+}
+
diff --git a/src/zhuye/Shouye.java b/src/zhuye/Shouye.java
index 8162334..6ec9021 100644
--- a/src/zhuye/Shouye.java
+++ b/src/zhuye/Shouye.java
@@ -4391,17 +4391,4 @@
visualizationPanel.repaint();
}
- // 娴嬭瘯鏂规硶
- public static void main(String[] args) {
- JFrame frame = new JFrame("AutoMow - 棣栭〉");
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- frame.setSize(400, 800);
- frame.setLocationRelativeTo(null);
-
- Shouye shouye = new Shouye();
- frame.add(shouye);
-
- frame.setVisible(true);
- UDPServer.startAsync();//鍚姩鏁版嵁鎺ユ敹绾跨▼
- }
}
\ No newline at end of file
diff --git a/src/zhuye/celiangmoshi.java b/src/zhuye/celiangmoshi.java
index 892fdd0..92668d8 100644
--- a/src/zhuye/celiangmoshi.java
+++ b/src/zhuye/celiangmoshi.java
@@ -90,3 +90,5 @@
+
+
diff --git a/user.properties b/user.properties
index ca5d233..8750e94 100644
--- a/user.properties
+++ b/user.properties
@@ -1,10 +1,11 @@
#Updated User Properties
-#Tue Dec 09 17:21:03 CST 2025
+#Wed Dec 24 16:28:00 CST 2025
email=789
language=zh
-lastLoginTime=-1
+lastLoginTime=1766564880280
password=123
registrationTime=-1
+rememberPassword=1
status=-1
userId=-1
userName=233
--
Gitblit v1.10.0